Implementations

The following are projects implementing JSON API. If you’d like your project listed, send a pull request.

Note: This specification marked 1.0 on May 29th, 2015. The implementations below have not been verified for compliance, but a test suite is now being assembled to vet them.

Client libraries

JavaScript

  • ember-data is one of the original exemplar implementations. There is now an offical adapter to support json-api.
  • backbone-jsonapi is a Backbone adapter for JSON API. Supports fetching Models & Collections from a JSON API source.
  • backbone-relational-jsonapi is a parsing layer for Backbone.Relational. Entities specified in JSON API are automatically parsed to be injected into Backbone.Relational relations.
  • orbit.js is a standalone library for coordinating access to data sources and keeping their contents synchronized. Orbit’s Common Library includes JSONAPISource for accessing JSON API servers. Orbit can be used independently or with Ember.js through the ember-orbit integration library.
  • YAYSON is an isomorphic library for serializing and reading JSON API data. Extend it to fit your models or just use it with plain objects.
  • Ember JSON API Resources is an Ember CLI Addon for a lightweight solution for data persistence in an Ember.js application.
  • hapi-json-api Plugin for the hapi framework; enforces Accept/Content-type rules and rewrites Boom errors to be spec compliant.
  • jsonapi-datastore is a lightweight standalone library for reading, serializing, and synchronizing relational JSON API data.
  • json-api-store A lightweight JavaScript library for using JSON API in the browser.
  • superagent-jsonapify A really lightweight (50 lines) JSON-API client addon for superagent, the isomorphic ajax client.
  • angular-jsonapi An Angular JSON API client
  • redux-json-api A library which integrated JSON APIs with Redux store
  • devour-client A lightweight, framework agnostic, highly flexible JSON API client

iOS

  • jsonapi-ios is a library for loading data from a JSON API datasource. Parses JSON API data into models with support for auto-linking of resources and custom model classes.
  • Spine is a Swift library for working with JSON API APIs. It supports mapping to custom model classes, fetching, advanced querying, linking and persisting.

Ruby

  • jsonapi-consumer a ruby library for consuming JSONAPI payloads.
  • JsonApiClient attempts to give you a query building framework that is easy to understand (similar to ActiveRecord scopes).
  • JsonApiParser a ruby library for parsing/validating/handling JSONAPI documents.

PHP

Perl

Java

  • jsonapi-converter is a Java JSON API v1.0 client. Besides providing means for serialisation/deserialisation, client comes with Retrofit plugin.

Android

  • faogustavo/JSONApi library for deserializing automatic. It can be integrated with retrofit. It has some ideas from Morpheus and jsonapi-converter but has some aditionals.
  • moshi-jsonapi serialize/deserialize JSON API v1.0 using fantistic Moshi API! It provides a friendly Java interface to manipulate JSON document and elegant integration with AutoValue/Retrofit.
  • Morpheus library for deserializing your resources with automatic mapping for relationships. Uses gson to map objects in attributes.

Server libraries

PHP

Node.js

  • Fortune.js is a library that includes a comprehensive implementation of JSON API.
  • json-api turns an Express + Mongoose app into a JSON-API server.
  • endpoints is an implementation of JSON API using Bookshelf.
  • YAYSON is an isomorphic library for serializing and reading JSON API data. Simply use it with plain objects or extend it to fit your ORM (currently it has an adapter for Sequelize).
  • jsonapi-serializer is a Node.js framework agnostic library for serializing your data to JSON API.
  • jsonapi-server A feature-rich config-driven json:api framework.
  • loopback-component-jsonapi JSON API support for loopback highly-extensible, open-source Node.js framework
  • jsonapi-mapper JSON API-Compliant Serialization for your Node ORM.
  • jaysonapi jaysonapi is a framework agnostic JSON API v1.0.0 serializer. jaysonapi provides more of a functional approach to serializing your data. Define a serializer with a type and schema, and call serialize on it passing in the data, included, meta, errors, etc. as a plain object.
  • json-api-ify serialize the ** out of your data. json api v1.0 complaint.
  • simple-jsonapi A node.js module for serializing objects to JSON API compliant documents. Very flexible whilst not caring about your choice of framework or database layer. Aims to cover the latest published version of the spec, which is currently 1.0.
  • bookshelf-jsonapi-params automatically apply JSON API filtering, pagination, sparse fieldsets, includes, and sorting to your Bookshelf.js queries.
  • Lux is a MVC style Node.js framework for building lightning fast JSON APIs.

Ruby

  • Jsonapi-for-rails empowers your JSONAPI compliant Rails APIs. Implement your APIs with very little coding.
  • ActiveModel::Serializers is one of the original exemplar implementations, but is slightly out of date at the moment.
  • The rabl wiki has a page describing how to emit conformant JSON.
  • RestPack::Serializer implements the read elements of json-api. It also supports paging and side-loading.
  • Oat ships with a JSON API adapter.
  • JSONAPI::Resources provides a complete framework for developing a JSON API server. It is designed to work with Rails, and provides routes, controllers, and serializers.
  • Yaks Library for building hypermedia APIs, contains a JSON API output format.
  • JSONAPI::Serializers provides a pure Ruby, readonly serializer implementation.
  • Roar Renders and parses represenations of Ruby objects
  • Jbuilder::JsonAPI Simple & lightweight extension for Jbuilder
  • JSONAPI::Utils works on top of the awesome JSONAPI::Resources gem bringing to controllers a Rails way to render JSON API-compliant responses.

Python

  • Hyp is a library for creating json-api responses.
  • SQLAlchemy-JSONAPI provides JSON API serialization for SQLAlchemy models.
  • django-rest-framework-json-api provides JSON API parsing and rendering for the Django REST Framework
  • jsonapi is a Django module with JSON API implementation.
  • jsoongia is a framework agnostic JSON API implementation.
  • ripozo provides a framework for serving JSON API content (among other Hypermedia formats) in Flask, Django and more.
  • marshmallow-jsonapi provides JSON API data formatting for any Python web framework.
  • neoapi serializes JSON API–compliant responses from neomodel StructuredNodes for Neo4j data
  • py-jsonapi is a toolkit for building a JSON API. Can be extended easily to work with every web framework and database driver. Comes with support for flask, tornado, mongoengine and sqlalchemy.
  • xamoom-janus is a Python module to easily and fast extend Python web frameworks like Flask or BottlyPy with json:api functionality. Also offers a flexible mechanism for data mapping and hooks to intercept and extend its functionality according to your projects needs.
  • pyramid-jsonapi Auto-build a JSON API from sqlalchemy models using the pyramid framework.

Go

  • api2go is a full-fledged library to make it simple to provide a JSON API with your Golang project.
  • jsonapi serializes and deserializes jsonapi formatted payloads using struct tags to annotate the structs that you already have in your Golang project. Godoc
  • go-json-spec-handler drop-in library for handling requests and sending responses in an existing API.
  • jsh-api deals with the dirty work of building JSON API resource endpoints. Built on top of jsh

.NET

  • JsonApiNet lets you quickly deserialize JSON API documents into C# entities. Supports compound documents, complex type mapping from attributes, attribute mapping, and more. See the README for full details.

  • JSONAPI.NET is a .NET library that integrates with ASP.NET WebAPI, Json.NET, and (optionally) Entity Framework to help you quickly create JSON API compliant web services.

  • NJsonApi is a .NET server implementation of the standard. It aims at good extensibility and performance while maintaining developer-friendliness with interchangable convenions and builder-style configuration.

  • Migrap.AspNet.Mvc.Jsonapi is an ASP.NET 5 (vNext) library that allows for existing code to build JSON API responses through output formatters.

  • Saule is a small JSON API 1.0 compatible library that integrates well with established Web API conventions. It has complete documentation and near 100% test coverage.

Java

  • katharsis has comprehensive coverage of standard allowing to create JSON:API compatible resources with dynamic relation based routing.
    • katharsis-core is Java based core library for katharsis allowing to manage RESTful endpoints compliant with JSON API standard.
    • katharsis-rs is adapter for katharsis core module for all compatible JAX-RS based frameworks.
    • katharsis-spring is adapter for katharsis core module for Spring and Spring Boot framoworks.
    • katharsis-servlet is a generic servlet/filter adapter for katharsis core module. This module can be used in traditional servlet or filter based Java web applications, or even non-Servlet-API-based web applications such as Portal/Portlet, Wicket, etc.
  • Elide is a web framework supporting JSON API. Through annotation-based JSON API endpoint generation, Elide enables you to focus on your data model, security model, and business logic while avoiding unnecessary boilerplate. Moreover, through use of the JSON API Patch extension, Elide provides full support for database transactions.

Elixir

  • ja_serializer is a behaviour and DSL to emit conforming JSON. Suitable for use in a Phoenix view or in a Plug stack.
  • jsonapi is a serializer and query parser built with plain old functions. Can parse and validate a JSONAPI compliant query and serialize Ecto Models or Elixir Structs into conforming JSON. Suitable for use in a Phoenix view, Plug Stack or anywhere you can call functions.

Perl

  • PONAPI::Server is a Plack-based web server, providing a generic service adhering to the spec. just plug your data-repository & play.

Examples

Related Tools

Ruby

  • json-patch implementation of JSON Patch (rfc6902)
  • hana implementation of the JSON Patch and JSON pointer spec

Node.js

  • json-patch implementation of JSON Patch (rfc6902)

Python