REST protocol adapter bridges HTTP requests with the IoT Connector (i.e. AMQP destinations). It therefore allows you to expose your services via REST API.
REST protocol adapter matches HTTP URI to the AMQP queue destination:
http://example.com:8080/foo/bar => amqp:queue:foo.bar
Content posted with POST request are converted to the body of the message sent to the AMQP destination. JMS correlation ID can be used to match AMQP response with HTTP response.
In order to accept HTTP requests from the JavaScript clients, REST protocol adapter has to support CORS. The default CORS settings are as follows:
Access-Control-Allow-Origin: *
Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept, Authorization
This section describes how to start REST protocol adapter.
PaaS distribution of Cloud Platform has REST protocol adapter included by default (listening on port 8080).
In order to start REST protocol adapter in your Cloud Platform application, just add the following jar into your POM file.
<dependency>
<groupId>io.rhiot</groupId>
<artifactId>rhiot-cloudplatform-adapter-rest</artifactId>
<version>${rhiot.version}</version>
</dependency>
Spring Boot runtime automatically detects and starts REST protocol adapter as soon CloudPlatform instance is started:
new CloudPlatform().start();
By default REST connector listens on HTTP port 8080. You can change this port by setting rest.port property.
If you would like to specify the content type returned by the REST protocol adapter, set the value of the rest.contentType
property. By default application/json is returned.