HttpAPI, new in Remoting SDK 9.3 is a simple way to add Http-based interfaces to exisitng Remoting SDK servers or to develop new servers. Considering the open and well documented communication protocol used client applications can be created on a vast array of languages and platforms. Client-side Remoting SDK libraries are no longer required to communicate with the server.
Some highlights of HttpAPI:
- Automatically generated OpenAPI (also known as 'Swagger') service definition that allows to create client applications for any language and platform that is supported by the code generation tools, from C# to Go or React Native
- No Remoting SDK client-side libraries are required to communicate with the server. Any platform and language that can send out a Http request and receive the answer can talk to a Remoting SDK server now
- Minimal changes are required to make the existing SDK server apps able to server HttpAPI request
- Fast and reliable Remoting SDK server-side code
- The overhead is minimal and is mostly caused only by the request text parsing. This overhead is barely, if at all, noticeable considering the inevitable network delays
- Methods exposed via HttpAPI support the same parameter types as ordinary Remoting SDK service methods do
- Service method parameters can be passed as a part of the Url, via the query string or via the request body
- String, Number, Boolean, Enumeration parameters can be passed via Url, query string or Http request headers. Arrays of values and complex type structures can be passed via request body only.
- So called "Raw Method Result" feature that allows the service method to return result stream that is sent to the caller AS IS, without any additional formatting. This feature also allows to set the
Content-Dispositionresponse headers from within the service method code, as well as the Http response code.
Note HttpAPI won't force you to rigorously follow the REST-ful rules, such as not using server-side sessions, for example. HttpAPI is just a new way to expose service methods and to provide access to these methods via HTTP. In this documentation section, the REST acronym will be used for the way of accessing service methods via HTTP.