rails-api/active_model_serializers


ActiveModel::Serializer implementation and Rails hooks

License: MIT

Language: Ruby

Keywords: json, resource-serializer, ruby


ActiveModelSerializers

About

ActiveModelSerializers is undergoing some renovations. See Development Status.

Getting Help

If you find a bug, please report an Issue and see our contributing guide.

If you have a question, please post to Stack Overflow.

If you'd like to chat, we have a community slack.

Thanks!

Documentation

If you're reading this at https://github.com/rails-api/active_model_serializers you are reading documentation for our master, which is not yet released.

0.10 (0-10-stable) Documentation Guides
0.9 (0-9-stable) Documentation
0.8 (0-8-stable) Documentation

Status of AMS

Status:

  • ❗️ All existing PRs against master will need to be closed and re-opened against 0-10-stable, if so desired
  • ❗️ Master, for the moment, won't have any released version of AMS on it.
  • 👀 See below for alternatives

Changes to 0.10.x maintenance:

  • The 0.10.x version has become a huge maintenance version. We had hoped to get it in shape for a 1.0 release, but it is clear that isn't going to happen. Almost none of the maintainers from 0.8, 0.9, or earlier 0.10 are still working on AMS. We'll continue to maintain 0.10.x on the 0-10-stable branch, but maintainers won't otherwise be actively developing on it.
    • We may choose to make a 0.11.x ( 0-11-stable) release based on 0-10-stable that just removes the deprecations.

What's happening to AMS:

  • There's been a lot of churn around AMS since it began back in Rails 3.2 and a lot of new libraries are around and the JSON:API spec has reached 1.0.
  • If there is to be a 1.0 release of AMS, it will need to address the general needs of serialization in much the way ActiveJob can be used with different workers.
  • The next major release is in development. We're starting simple and avoiding, at least at the outset, all the complications in AMS version, especially all the implicit behavior from guessing the serializer, to the association's serializer, to the serialization type, etc.
  • The basic idea is that models to serializers are a one to many relationship. Everything will need to be explicit. If you want to serialize a User with a UserSerializer, you'll need to call it directly. The serializer will essentially be for defining a basic JSON:API resource object: id, type, attributes, and relationships. The serializer will have an as_json method and can be told which fields (attributes/relationships) to serialize to JSON and will likely not know serialize any more than the relations id and type. Serializing anything more about the relations would require code that called a serializer. (This is still somewhat in discussion).
  • If this works out, the idea is to get something into Rails that existing libraries can use.

See PR 2121 where these changes were introduced for more information and any discussion.

Alternatives

  • jsonapi-rb is a highly performant and modular JSON:API-only implementation. There's a vibrant community around it that has produced projects such as JSON:API Suite.
  • fast_jsonapi is a lightning fast JSON:API serializer for Ruby Objects from the team of Netflix.
  • jsonapi-resources is a popular resource-focused framework for implementing JSON:API servers.
  • blueprinter is a fast, declarative, and API spec agnostic serializer that uses composable views to reduce duplication. From your friends at Procore.

For benchmarks against alternatives, see https://github.com/rails-api/active_model_serializers/tree/benchmarks

Semantic Versioning

This project adheres to semver

Contributing

See CONTRIBUTING.md

Project Statistics

Sourcerank 17
Repository Size 4.08 MB
Stars 4,850
Forks 1,313
Watchers 97
Open issues 172
Dependencies 0
Contributors 184
Tags 37
Created
Last updated
Last pushed

Top Contributors See all

Benjamin Fleischer João Moura Lucas Hosseini L. Preston Sego III Alexandre de Oliveira Steve Klabnik Ben Mills Yohan Robert Tema Bolshakov Guillermo Iguaran‮ Bruno Bacarini Mateo Murphy Mauro George Alexey Dubovskoy Gary Gordon Taylor Jones Josh Smith Eric Guo Aaron Renoir Ryunosuke Sato

Packages Referencing this Repo

active_model_serializers_custom
ActiveModel::Serializers allows you to generate your JSON in an object-oriented and convention-dr...
Latest release 0.10.90 - Published - 4.85K stars
cheap_ams
ActiveModel::Serializers allows you to generate your JSON in an object-oriented and convention-dr...
Latest release 0.10.11 - Updated - 4.85K stars
active_model_serializers
ActiveModel::Serializers allows you to generate your JSON in an object-oriented and convention-dr...
Latest release 0.10.10 - Updated - 4.85K stars

Recent Tags See all

v0.10.10 July 13, 2019
v0.10.9 February 08, 2019
v0.10.8 November 01, 2018
v0.10.7 November 15, 2017
v0.8.4 September 19, 2017
v0.9.7 May 01, 2017
v0.10.6 May 01, 2017
v0.10.5 March 07, 2017
v0.9.6 January 10, 2017
v0.10.4 January 06, 2017
v0.10.3 November 21, 2016
v0.10.2 July 05, 2016
v0.10.1 June 16, 2016
v0.10.0 May 17, 2016
v0.10.0.rc5 April 04, 2016

Interesting Forks See all

petejkim/active_model_serializers
ActiveModel::Serializer implementation and Rails hooks
Ruby - MIT - Updated - 3 stars
ahawkins/active_model_serializers
ActiveModel::Serializer implementation and Rails hooks
Ruby - MIT - Last pushed - 2 stars - 2 forks
fpauser/active_model_serializers
ActiveModel::Serializer implementation and Rails hooks
Ruby - MIT - Last pushed - 2 stars
ghempton/active_model_serializers
ActiveModel::Serializer implementation and Rails hooks
Ruby - MIT - Last pushed - 2 stars
BrushArtCorp/active_model_serializers
ActiveModel::Serializer implementation and Rails hooks
Ruby - MIT - Updated - 1 stars

Something wrong with this page? Make a suggestion

Last synced: 2019-07-13 11:17:00 UTC

Login to resync this repository