jsonapi-resources est une gem pratique pour la construction d’API, incluant contrôleur et ressources.
Dans les journaux officiels publiés avec Rails 5, trois gems pour la construction d’API ont été recommandés : Jbuilder, Active Model Serializers et JSONAPI::Resources. Les deux premiers nécessitent d’être utilisés avec rails-api, tandis que seul jsonapi-resources fournit JSONAPI::ResourceController.
Nous avons finalement choisi jsonapi-resources principalement pour les raisons suivantes :
- Sa syntaxe de ressource est similaire à celle d’active_model_serializers, que nous utilisions auparavant.
- Active Model Serializers ne prend pas en charge la fonctionnalité abstraite et doit être basé sur un modèle, alors que certaines de nos ressources ne sont pas basées sur des modèles.
- jsonapi-resources a une option intégrée de champs, qui permet de spécifier facilement les champs à retourner côté demandeur, plutôt que de retourner tous les champs.
- La structure des données retournées est conforme à la spécification jsonapi.
- JSONAPI::ResourceController fournit une encapsulation RESTful, ce qui peut économiser beaucoup de code.
Ces raisons ne sont que les fonctionnalités les plus nécessaires pour le projet actuel, et il y a plus de fonctionnalités qui peuvent être vues dans la documentation officielle.
Liens de référence:
jsonapi-resources: https://github.com/cerebris/jsonapi-resources
jsonapi: https://jsonapi.org