project-status.md

September 20, 2020 ยท View on GitHub

Project Status

JSON:API

Document

  • data
  • included
  • errors
  • meta
  • jsonapi (i.e. API Information)
  • links

Resource Object

  • id
  • type
  • attributes
  • relationships
  • links
  • meta

Relationship Object

  • data
  • links
  • meta
Resource Identifier Object
  • id
  • type
  • meta
  • href
  • meta

Misc

  • Support transforms on Attributes values (e.g. to support different representations of Date)
  • Support validation on Attributes.
  • Support sparse fieldsets (encoding only). A client can likely just define a new model to represent a sparse population of another model in a very specific use case for decoding purposes. On the server side, sparse fieldsets of Resource Objects can be encoded without creating one model for every possible sparse fieldset.

Testing

Resource Object Validator

  • Disallow optional array in Attribute (should be empty array, not null).
  • Only allow TransformedAttribute and its derivatives as stored properties within Attributes struct. Computed properties can still be any type because they do not get encoded or decoded.
  • Only allow MetaRelationship, ToManyRelationship and ToOneRelationship within Relationships struct.

Potential Improvements

These ideas could be implemented in future versions.