Find below an overview on these attributes and what combinations make sense. Location | Direction | Attribute | Description | Adapter Implementation | ServiceAPI Implementation |
---|
Request
| Accepted Request Content Type | Define which Defines the content types of the endpoint acceptsrequest body. |
---|
Reject Other Request Content Types | Define if other content types should be rejected with HTTP 406 (Not Acceptable). | Response
| Blob Body Content TypeSpecify which content type you are sending with your request. The Runtime generates a matching "Content-Type" header to your request. | Define which content types the endpoint | can return to the clientaccepts. | Reject Other | Response Content TypeDefine if the service should reject the request with HTTP 415 (Unsupported Media Type) if the client request has divergent accept headers. | Adapter | Info |
---|
You can only change the settings for adapter calls once you have copied the REST interface from the connector to your own service implementation - or if you have defined it manually from the beginning. |
| Request | Accepted Request Content | TypeTypes | Specify Triggers a | list of content types you accept as a response. The Runtime generates a matching "Accept" header to your request.Reject Other Request Content Typescontent type check by the xUML Runtime. | Specifies if the REST adapter should reject calls to this endpoint if a request uses a custom content type that does not match the content types listed in Accepted Request Content Type. This can be the case if you set the | accept "Content-Type" header manually. If set to true, and the | accept "Content-Type" header does not match, the adapter does not contact the endpoint at all but rejects calls with an exception ( | Set "accept" header does not accept any of declared response content types Endpoint '<endpoint URL>' does not declare '<content type>' as accepted content type ).
| Define if other content types than defined with Accepted Request Content Type should be rejected with HTTP 415 (Unsupported Media Type). The Runtime reads the related "Content-Type" header and compares it to the content types that are accepted by the service (Accepted Request Content Type). | Response
| Blob Body Content Type | Defines the content type of the response body. | Specify a list of content types you accept as a response. Specify which content type you are sending with your request. The Runtime generates a matching "Content-TypeAccept" header to your request. | Define which content types the endpoint can return to the client. |
---|
Reject Other Response Content Type | Triggers a content type check by the xUML Runtime. | Specifies if the REST adapter should reject calls to this endpoint if a request uses a custom content type that does not match the content types listed in Blob Body Content Type. This can be the case if you set the | content-type "Accept" header manually. If set to true, and the | content-type "Accept" header does not match the content types the service can provide, the adapter does not contact the endpoint at all but rejects calls with an exception ( | Request content type not declared as accepted by the service Set "accept" header does not accept any of declared response content types ). | Define if the service should reject the request with HTTP 406 (Unsupported Media Type) if the client request has accept headers that differ from the ones defined with Blob Body Content Type. The Runtime reads the related "Accept" header and compares it to the content types that can be provided by the service (Blob Body Content Type). |
ExamplesThe RESTAPI_BlobContent_Example and the RESTAdapter_BlobContent_Example implement a server and a client that exchange blob content (pictures). They have the following blob content setup implemented: Server (RESTAPI_BlobContent_Example) | Content Type Settings | Description |
---|
Store a picture | POST /picture | Accepted Request Content Type | image/png;image/jpeg | The server can store PNGs and JPGs. | Return a picture by id | GET /picture/<an id> | Blob Body Content Type | image/png | The server returns PNGs upon request. | Client (RESTAdapter_BlobContent_Example) | Content Type Settings |
|
---|
Send a picture | POST /picture | Accepted Request Content Type | image/png | The client sends PNGs. | Retrieve a picture | GET /picture/<an id> | Blob Body Content Type | image/png;image/jpeg | The client accepts PNGs and JPGs as a response. | Good CasesThe following table shows some example calls and how they would be executed. Client | Generated Header | Server |
---|
1 | Store a picture
| POST /picture | Content-Type: image/png | → | accepts request |
|
| ← | returns id HTTP 201 | 2 | Retrieve a picture | GET /picture/123456 | Accept: image/png | → | accepts request |
| Content-Type: image/png | ← | returns picture PNG | Error CasesThe following table shows some error cases and their consequences if you do not rely on the automatically generated headers but set your own headers instead. Example | Client | Custom Header | Server |
---|
1 | Store a picture, wrong content type | POST /picture | Content-Type: image/svg+xml | → | accepts request |
|
|
| | 2 | Store a picture, wrong content type, server rejects other content types
| POST /picture | Content-Type: image/svg+xml | → | Reject Other Request Content Types = true |
|
| ← | | 406 (not acceptable)- 415(Unsupported Media Type)
| 3 | Store a picture, wrong content type, client rejects other content types
| POST /picture Reject Other Request Content Types = true | Content-Type: image/svg+xml | ↓ | not called at all | RESTLM/7: Endpoint '<endpoint URL>' does not declare '<content type>' as accepted content type
|
| ← |
| 4 | 3 | Retrieve a picture, wrong content type
| GET /picture/123456 | Accept: image/svg+xml | → | accepts request |
|
|
| - handles wrong content type internally
| | 54 | Retrieve a picture, wrong content type, server rejects other content types | GET /picture/123456 | Accept: image/svg+xml | → | Reject Other Response Content Type = true |
|
| ← | HTTP 415 (Unsupported Media Type) | RESTLM/10: Cannot generate any of the expected output formats (image/svg+xml - HTTP 406 (Not Acceptable)
|
|