Skip to content

v0.8.0 - Rails 5, Processors, performance improvements, bug fixes and more

Compare
Choose a tag to compare
@lgebhardt lgebhardt released this 15 Sep 21:07
· 416 commits to master since this release

This is a large release and includes the 0.7.1.beta1 and 0.7.1.beta2 features. Note that there was not a 0.7.1 release. There were several breaking changes introduced so the project was moved to 0.8.0.

Breaking changes are called out below

Features:

  • Rails 5 support
  • Breaking change: Operation Processing - OperationsProcessor replaced with Resource specific processors
  • Breaking change: Support for Ruby 2.0 was removed
  • Documentation expanded
  • always_include_linkage_data for relationships
  • i18n to easily customize errors messages
  • Adds jsonapi:controllers generator
  • Validation errors can have metadata added to them
  • Custom links defined per resource
  • Allow Hash values for filter params
  • Whitelisted exceptions now work with a base class
  • Support for sorting on relationship fields
  • Attribute Delegation
  • Ability to specify validation context
  • Add page_count to metadata
  • Ensures media type of Accept header is valid according to the JSON API spec
  • Caching of formatters for performance
  • ResourceControllerMetal
  • Add count_records method
  • belongs_to method now supported as a deprecated alias for has_one. Helpful for new users transitioning to the project
  • Adds allow_transactions configuration option for use with backends that do not support transactions such as MongoDB
  • Default sorting
  • Relationship Reflection
  • eager_load_on_include relationship option

Bug fixes:

  • Many documentation fixes
  • Error code representation from integers to strings
  • Returns a relation instead of a class from Resource.records
  • Fix issues with filters involving relationships
  • Offset and paged paginators links consistent with JSON API spec e.g. prev instead of previous
  • Accept nil data when updating polymorphic to_one relationship
  • Fix dasherized paths for scoped routes
  • Removes a git dependency in gemspec
  • ids now respect creatable_fields
  • Several polymorphic behavior fixes
  • Add warnings for duplicate attributes and relationship names
  • Adds missing context to get_related_resources
  • Cleans up the accepted media types.
  • Fixes resources missing relationship data when serialized with complex includes.