JSonApi
Since Camel 3.0
The JSonApi dataformat supports the following options which are listed below.
Message Body
The message body at each side of the JSonApi data format: Marshal input and Unmarshal input are the bodies marshal and unmarshal can take, and Marshal output and Unmarshal output the body after them.
| Side | Body | Description |
|---|---|---|
Marshal input |
| One resource object of a class dataFormatTypes names, annotated with @Type and @Id of JSONAPI-Converter. A Map or a List fails. |
Marshal output |
| The JSON:API document in the stream cache, or a byte array when stream caching is off. |
Unmarshal input |
| |
Unmarshal output |
| The primary data as an object of the class mainFormatType names, or no body when the data is null. A document whose data is an array fails. |
The bodies are the ones with the default options. A side that is not listed is not known, and tooling does not guess it. The carriers are described in the Camel Catalog.
Usage
The dataFormatTypes are the resource classes, separated by commas. They are annotated with @Type and @Id of the JSONAPI-Converter library. On unmarshal, mainFormatType is the class of the primary data of the document:
- route:
from:
uri: direct:marshal
steps:
- marshal:
jsonApi:
dataFormatTypes: com.example.Book,com.example.Author
- to:
uri: mock:marshal
- route:
from:
uri: direct:unmarshal
steps:
- unmarshal:
jsonApi:
dataFormatTypes: com.example.Book,com.example.Author
mainFormatType: com.example.Book
- to:
uri: mock:unmarshal Dependencies
To use JsonAPI in your Camel routes, you need to add the dependency on camel-jsonapi which implements this data format.
If you use Maven, you could add the following to your pom.xml, substituting the version number for the latest & greatest release.
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-jsonapi</artifactId>
<version>x.x.x</version>
<!-- use the same version as your Camel core version -->
</dependency>