JSONAPI::Resources, or "JR", provides a framework for developing an API server that complies with the
JSON:API specification.
Like JSON:API itself, JR's design is focused on the resources served by an API. JR needs little more than a definition of your resources, including their attributes and relationships, to make your server compliant with JSON API.
JR is designed to work with Rails 5.1+, and provides custom routes, controllers, and serializers. JR's resources may be backed by ActiveRecord models or by custom objects.
This is the Speee fork of jsonapi-resources.
- Modern Rails Support: Enable compatibility with the latest Rails versions (7.1, 7.2, 8.0, 8.1+)
- 0.9.x Backward Compatibility: Maintain compatibility with code written for jsonapi-resources 0.9.x
- Full support for Rails 7.1, 7.2, 8.0, and 8.1
- Rack 3.0 compatibility fixes
- Rails 8.2 deprecation warning fixes
result.resourceandresult.resourcesaccessors on operation resultsapply_filtersmethod made public for custom filter implementations- PORO (Plain Old Ruby Object) support in
find_fragments
- MySQL compatibility fix for the
quotemethod (uses database adapter) - Ruby 2.6/2.7 compatibility for
Psych.unsafe_load
- Docker support for multi-version Rails testing
- Comprehensive CI matrix covering Ruby 2.6-3.4 and Rails 5.1-8.1
- SimpleCov integration for test coverage measurement
Full documentation can be found at http://jsonapi-resources.com, including the v0.10 alpha Guide specific to this version.
We have a simple demo app, called Peeps, available to show how JR is used.
JSON:API maintains a (non-verified) listing of client libraries which should be compatible with JSON:API compliant server implementations such as JR.
To use this fork, add the following to your application's Gemfile:
gem 'jsonapi-resources', github: 'speee/jsonapi-resources', tag: 'v26.1.1'Then execute:
bundle installYou can find available tags at https://github.com/speee/jsonapi-resources/tags.
To use the original jsonapi-resources gem from RubyGems, add it to your application's Gemfile:
gem 'jsonapi-resources'And then execute:
bundleOr install it yourself as:
gem install jsonapi-resourcesFor further usage see the v0.10 alpha Guide
- Submit an issue describing any new features you wish it add or the bug you intend to fix
- Fork it ( https://github.com/speee/jsonapi-resources/fork )
- Create your feature branch (
git checkout -b my-new-feature) - Run the full test suite (
rake test) - Fix any failing tests
- Commit your changes (
git commit -am 'Add some feature') - Push to the branch (
git push origin my-new-feature) - Create a new Pull Request
-
Ensure the bug was not already reported by searching on GitHub under Issues(upstream) or Issues(speee).
-
If you're unable to find an open issue addressing the problem, open a new one. Be sure to include a title and clear description, as much relevant information as possible, and a code sample or an executable test case demonstrating the expected behavior that is not occurring.
-
If possible, use the relevant bug report templates to create the issue. Simply copy the content of the appropriate template into a .rb file, make the necessary changes to demonstrate the issue, and paste the content into the issue description or attach as a file:
Copyright 2014-2021 Cerebris Corporation. MIT License (see LICENSE for details).