## Collection+JSON
- Presence of a template to create another user
- Link to external resources "manager" and "team"
- URL template for a query
- Embedded collection not included because it is another collection in itself
- Very verbose
- Not easy to convert from the original JSON object
- Queries and templates, which add the most verbosity, are optionnal
- Link to external resources "manager", "skills" and "team"
- But possibility to keep the "skills" included
- Documentation links to help understand the "manager", "team" and "skills" notions as defined by the company
- URL template for a query
- Easy to convert from the original JSON object
- Easily human-readable
- No information about the create/update/delete actions
- The file size can be reduced by not displaying the "skills" and only providing their links.
- Complete and precise definition for the next actions reachable from this state, with templates
- Choice to include the embedded resources or just link them
- Documentation links to help understand the "manager", "team" and "skills" notions as defined by the company
- Very verbose
- Links scattered around the document : not that easy to read by a human eye
- Not easy to convert from the original JSON object (still simpler than Cj)
### Pros
- Choice to include the embedded resources or just link them
- Very verbose and redundancies
- No built-in support for actions : need to read the JSON-API spec to know what actions can be performed
- Choice to include the embedded resources or just link them
- Documentation links to help understand the "manager", "team" and "skills" notions as defined by the company
- Template may be specified for a user creation, but optional
- Method definition for actions (via the knowledge of the spec to know what "append" & others refer to)
- Very verbose, especially because of the "name"/"value" data structure
- Easy to convert from the original JSON object
- Easily human-readable
- Documentation links to help understand the "manager", "team" and "skills" notions as defined by the company
- Link to external resources "manager" and "team"
- Choice to include the embedded resources or just link them
- No workflow information, about what action can be done from the current state
### Pros
- Easy to convert from the original JSON object (with a possible "JSON-LD only" step)
- Easily human-readable
- Difficult to document the operation information : the only possible URL for that is the current one.
- Need to put all additionnal info in specific documentation files. I wrote an example but this "doc" is by no way complete, it should contain the entire API, but my goal here was only to compare the representations of the same resource.
- Easy to convert from the original JSON object
- Easily human-readable
- Documentation links to help understand the "manager", "team" and "skills" notions as defined by the company
- Link to external resources "manager" and "team"
- Choice to include the embedded resources or just link them
- Clear definition for possible actions
- Template may be specified for a user creation, but optional
- Large, hard-to-read file if all features are used
- Easy to convert from the original JSON object
- Lots of information in the OData specification, but not that much in the returned document. For example to find the skills you need to know the URL.