Claus Ibsen created CAMEL-26000:
-----------------------------------
Summary: camel-jsonapi - support JSON:API collection documents,
whose data is an array
Key: CAMEL-26000
URL: https://issues.apache.org/jira/browse/CAMEL-26000
Project: Camel
Issue Type: Improvement
Reporter: Claus Ibsen
Fix For: 4.24.0
The jsonApi data format reads and writes only documents whose primary data is
one resource object: unmarshal calls {{readDocument}} ({{JsonApiDataFormat}},
main 50d17f9c2614, lines 92 and 95), and marshal wraps the body in one
{{JSONAPIDocument}} (line 77). A JSON:API collection document, whose {{data}}
is an array, is common: for example the answer to GET /articles. It cannot be
used:
* unmarshal fails with {{InvalidJsonApiResourceException: Primary data must be
either a single resource object, a single resource identifier object, or null}};
* marshal of a List of resource objects fails with
{{DocumentSerializationException}} ({{ClassCastException: ArrayNode cannot be
cast to ObjectNode}}).
jsonapi-converter has {{readDocumentCollection}} and
{{writeDocumentCollection}} for these documents.
Checked on 4.24.0-SNAPSHOT with {{camel run}}, with a {{@Type("books")}} class:
* a document with one book: the {{Book}};
* a document with an array of two books: the exception above;
* marshal of a List of two {{Book}} objects: the exception above.
*Proposed change*: read a document whose data is an array with
{{readDocumentCollection}}, giving a List, and write a Collection body with
{{writeDocumentCollection}}.
_Claude Code on behalf of davsclaus_
--
This message was sent by Atlassian Jira
(v10.3.26#10030026)