実装
以下は、JSON:APIを実装したプロジェクトです。あなたのプロジェクトをリストに追加したい場合は、プルリクエストを送信してください。
注:この仕様は2015年5月29日に1.0となりました。以下の実装は準拠が検証されていませんが、現在、それらを検証するためのテストスイートが組み立てられています。
クライアントライブラリ
JavaScript
- ember-data は、初期の実装例の一つです。現在は、json-apiをサポートするための公式アダプターがあります。
- backbone-relational-jsonapi は、Backbone.Relationalの解析レイヤーです。JSON:APIで指定されたエンティティは、Backbone.Relationalリレーションに挿入されるように自動的に解析されます。
- orbit.js は、データソースへのアクセスを調整し、それらの内容を同期するためのスタンドアロンライブラリです。OrbitのCommon Libraryには、JSON:APIサーバーにアクセスするためのJSONAPISourceが含まれています。Orbitは、単独で使用することも、ember-orbit統合ライブラリを介してEmber.jsで使用することもできます。
- YAYSON は、JSON:APIデータのシリアライズと読み取りを行うための同型ライブラリです。モデルに合わせて拡張することも、プレーンオブジェクトで使用することもできます。
- Ember JSON API Resources は、Ember CLIアドオンで、Ember.jsアプリケーションのデータ永続化のための軽量ソリューションです。
- hapi-json-api は、hapiフレームワークのプラグインです。Accept/Content-typeルールを適用し、Boomエラーを仕様に準拠するように書き換えます。
- jsonapi-datastore は、リレーショナルJSON:APIデータの読み取り、シリアライズ、同期を行うための軽量スタンドアロンライブラリです。
- superagent-jsonapify は、同型ajaxクライアントであるsuperagentのための非常に軽量な(50行)JSON:APIクライアントアドオンです。
- angular-jsonapi は、AngularJS JSON:APIクライアントです。
- redux-json-api は、JSON:APIをReduxストアと統合するライブラリです。
- devour-client は、軽量で、フレームワークに依存せず、非常に柔軟なJSON:APIクライアントです。
- json-api-normalizer は、ReduxやMobxなどの状態管理ソリューションのためにJSON:APIドキュメントを正規化します。
- jsona は、JSONまたは保存されたreduxObject(json-api-normalizerの結果オブジェクト)からカスタマイズ可能で簡略化されたオブジェクトを作成し、同じ簡略化されたオブジェクトから正しいJSONを作成するデータフォーマッターです。
- active-resourceスタンドアロンの、規約に基づいた JavaScript ORM で、JSON:API サーバーにマッピングし、スムーズなインターフェースを通じて高度なクエリとリレーショナル管理を可能にします。
- redux-bees React+Redux で JSON:API と対話するための、素晴らしく、短く、宣言的な方法です。
- Coloquent は、オブジェクトとその相互関係を JSON:API にマッピングする Javascript/Typescript ライブラリで、モデルオブジェクトの作成、取得、更新、削除のためのクリーンで流暢な ActiveRecord のような (例えば、Laravel の Eloquent に似た) 構文を備えています。
- kitsuシンプルで軽量、かつフレームワークに依存しない JSON:API クライアントです。
- Sarala JSON API data formatter は、標準的な JSON:API レスポンスをシンプルな JSON オブジェクトに変換し、その逆も可能な、シンプルで流暢なフレームワーク非依存の javascript ライブラリです。
- Sarala は、Laravel Eloquent のような構文で、JSON:API 仕様に従って構築された JSON:API に対して CRUD 操作を実行できる javascript パッケージです。
- jsonapi-client jsonapi サービスを利用するための便利なモジュールです。
- JSORM は、SQL の代わりに JSON:API リクエストを発行する同型 ActiveRecord クローンであり、より大きな JSONAPI Suite の一部です。
- jsonapi-vuex Vuex ストアを使用して jsonapi サービスと対話し、レコードを再構築/正規化して生活を楽にするためのモジュールです。
- heather-js JSONAPI を ES6 クラスのオブジェクトに解析するためのライブラリです。
- @hyral/core - ORM のような CRUD サポート、自動リレーションシップ処理、複数の (異なる) バックエンドのサポートを備えた、高度で、文書化され、簡単に拡張できる軽量な (JSON:)API 抽象化ライブラリです。
- @hyral/vue - ストアモジュールの作成とミックスインのための、@hyral/core の Vue(x) 統合です。
- jsonapi-redux-data - jsonapi と react + redux の統合を容易にするライブラリです。
- jsonapi-fractal Fractal (PHP) にインスパイアされた JSON:API シリアライザーです。
- ts-japi - 依存関係がなく、高度にモジュール化され、js/ts フレンドリーで、再帰可能で、フレームワークに依存しない、データを JSON:API 仕様にシリアライズするためのライブラリです。仕様全体をシリアライズします。
- mobx-async-store - JSON:API 仕様のための非同期データフェッチと状態管理のための Mobx ベースのストアです。
- spraypaint - ActiveRecord に似た Graphiti 用の JS クライアントです。Typescript で書かれていますが、古い ES5 でも動作します。このライブラリは同型であり、ブラウザから、または NodeJS を使用したサーバーから使用できます。
- json-api-models - JSON:API データを扱うための軽量レイヤーです。
- fetchja - JSON:API を扱うための、非常にシンプルで、モダンで、軽量なライブラリです (Kitsu のようなものですが、Axios の代わりに Fetch API を使用します)。
Typescript
- ts-angular-jsonapi Typescript で AngularJS 用に開発された JSON:API ライブラリです。
- ngrx-json-api Angular 2 ngrx ツールセット用の JSON:API クライアントです。
- ts-jsonapi Typescript での JSON:API (デ)シリアライザーです。
- ngx-jsonapi ストレージ+メモリキャッシュを備えた Angular 用の高速 JSON:API クライアントライブラリです。
- @crnk/angular-ngrx ngrx-json-api と (オプションで) crnk のための Angular ヘルパーライブラリです。UI コンポーネントの ngrx-json-api へのバインディングを容易にし、特にテーブルとフォームを容易にします。
- Grivet HATEOAS の原則に従ったリソースの RESTful トラバーサルに重点を置いた、TypeScript で書かれた JSON:API クライアントライブラリです。
- DatX は、MobX 状態管理ライブラリで使用するための、datx-jsonapi ミックスインで JSON:API サポートを追加する、意見のあるデータストアです。
- jsonapi-fractal Fractal (PHP) にインスパイアされた JSON:API シリアライザーです。
- ts-japi - 依存関係がなく、高度にモジュール化され、js/ts フレンドリーで、再帰可能で、フレームワークに依存しない、データを JSON:API 仕様にシリアライズするためのライブラリです。仕様全体をシリアライズします。
- drupal-jsonapi-params Drupal CMS の JSON:API に接続する際にクエリパラメータを構築するためのライブラリです。
- EntityStore.TS - JSON:API サーバーにアクセスするための拡張可能な プロバイダー を含む、TypeScript 用の ORM のような抽象化レイヤーです。
iOS
- jsonapi-ios は、JSON:API データソースからデータを読み込むためのライブラリです。リソースの自動リンクとカスタムモデルクラスのサポートを備えたモデルに JSON:API データを解析します。
- Spine は、JSON:API API を操作するための Swift ライブラリです。カスタムモデルクラスへのマッピング、フェッチ、高度なクエリ、リンク、永続化をサポートします。
- Vox は、カスタムモデルクラスのサポートと優れたネットワーキングインターフェースを備えた Swift JSON:API クライアントフレームワークです。
- Japx は、複雑な JSON:API 構造をフラット化してシンプルな JSON に変換し、その逆も可能な軽量 JSON:API パーサーです。Dictionary を Dictionary に転送することで動作するため、Codable、Unbox、Wrap、ObjectMapper、またはその他の好みのオブジェクトマッピングツールを使用できます。Objective-C もサポートしています。
- mattpolzin / JSONAPI は、型安全性を重視した Swift Codable ライブラリです。プラットフォームに依存しないため、クライアント側とサーバー側の両方で使用できます。
- IzzyParser は、JSON:API オブジェクトをシリアライズおよびデシリアライズするための軽量ライブラリです。
- Datadog/swift-jsonapi は、JSON:API レスポンスのエンコードとデコードを簡素化するためのマクロを提供する Swift ライブラリです。
Ruby
- jsonapi-consumer は、JSONAPI ペイロードを利用するための ruby ライブラリです。
- JsonApiClient は、理解しやすい (ActiveRecord スコープに似た) クエリ構築フレームワークを提供しようとします。
- Munson は、ORM として機能するか、きめ細かい不可知論を介してモデルと統合できる ruby JSONAPI クライアントです。設定とカスタマイズが簡単です。チェーン化/カスタマイズ可能なクエリビルダー、属性 API、ダーティトラッキングが含まれています。
- json-api-vanilla は、クラスを設定する必要のない、参照を認識する JSONAPI デシリアライゼーション用の ruby ライブラリです。
- SimpleJSONAPIClient は、API 操作のための低レベルのコントロールを提供しますが、モデルとそのリレーションシップは、ActiveRecord にインスパイアされた、きちんとしたインターフェースを維持します。
- jsonapi-unwrapper は、JSON:API ペイロードをデシリアライズするためのシンプルで軽量なライブラリです。
PHP
- Art4 / json-api-client は、シンプルな OOP の方法でレスポンス本文を検証および処理するためのライブラリです。
- woohoolabs / yang は、PSR-7 互換のライブラリで、リクエストの構築と送信、およびレスポンスの処理が可能です。
- enm/json-api-client は、enm/json-api-common に基づく、json:api 仕様の抽象的なクライアント側 PHP 実装です。独自の http クライアント実装、または buzz または guzzle クライアントを介して json:api リクエストを送信できます。
- floor9design-ltd/json-api-formatter JSON API リクエストの生成と対話 (作成と受信) に使用されるように設計されたオープンソースライブラリです。100% ユニットテスト済みで、作者によって積極的にメンテナンスされています。Laravel/Symfony などのフレームワークで簡単に使用できます。
- swisnl/json-api-client は、リモートの {json:api} リソースを Eloquent のようなモデルとコレクションにマッピングするためのパッケージです。
Dart
- json_api は、Flutter/Web/VM のための本格的なクライアントです。
- rest_data は、
ember-data
の概念に基づいた REST API クライアントで、JSON:API アダプターを含んでいます。 - jsonapi_client は、Dart で書かれたシンプルな JSON:API v1.0 クライアントです。
- japx は、複雑な JSON:API 構造をフラット化して単純な JSON に変換し、その逆も可能な軽量な JSON:API パーサーです。
Perl
- PONAPI::Client は、シンプルで拡張可能な JSON:API v1.0 クライアントです。
Java
- jsonapi-converter は、Java JSON:API v1.0 クライアントです。シリアライゼーション/デシリアライゼーションの手段を提供するだけでなく、Retrofit プラグインも付属しています。
- crnk.io は、クライアントとサーバー向けの JSON:API フレームワークです。クライアントサイドでは、Java と Android の両方の開発をターゲットとしています。バックエンド側では、豊富なモジュールセットがさまざまな Java フレームワークとの統合を支援します。
- jsonapi は、Square の Moshi をベースに構築された、Kotlin と Java を使用した JSON:API の効率的な利用のためのライブラリです。強力な API を備えており、JVM (Java/Kotlin) と Android をサポートしています。デシリアライゼーションとシリアライゼーションをサポートしており、クライアントとサーバーの両方で使用することを目的としています。
Android
- faogustavo/JSONApi は、自動デシリアライゼーションのためのライブラリです。Retrofit と統合できます。Morpheus と jsonapi-converter からいくつかのアイデアを取り入れていますが、追加機能もあります。
- moshi-jsonapi は、素晴らしい Moshi API を使用して JSON:API v1.0 をシリアライズ/デシリアライズします!使いやすい Java インターフェースと Retrofit との簡単な統合を提供します。
- Morpheus は、リレーションシップの自動マッピングによるリソースのデシリアライゼーションのためのライブラリです。gson を使用して属性内のオブジェクトをマッピングします。
- Izzy JSONAPI parser は、Gson と Jackson パーサーの両方をサポートするリソースのデシリアライゼーションとシリアライゼーションのためのライブラリです。シンプルな Retrofit 統合も備えています。
- JsonApiX は、Kotlin クラスのシリアライゼーションとデシリアライゼーションのためのアノテーションプロセッサライブラリです。使い方は簡単で、クラスにアノテーションを付けるだけで設定できます。Retrofit 統合が含まれています。
R
- rjsonapi は、JSONAPI を利用するための R クライアントです。
Elm
- elm-jsonapi は、JSON:API ペイロードを受信するクライアントのためのデコーダーとヘルパー関数を提供します。
- elm-jsonapi-http は、
elm-jsonapi
をラップし、JSON:API 準拠サーバーとのコンテンツネゴシエーションの詳細を処理することで、コンシューマーによりスムーズなインターフェースを提供します。
.NET
- Hypermedia.JsonApi.Client は、JSON:API ドキュメントの読み書きを可能にする HttpClient の拡張メソッドのセットです。
- JsonApiSerializer は、Json.NET
JsonSerializerSetting
として実装された、設定不要の JSON:API シリアライゼーションおよびデシリアライゼーションライブラリです。JSON:API と CLR オブジェクト間の適切なデフォルトマッピングを提供しながら、Json.NET の既存の能力と柔軟性を活用します。 - JsonApiFramework.Client は、*ポータブル*な .NET Standard/Core クライアントサイドフレームワークであり、開発者はハイパーメディア API サーバーのリソースのドメインモデルを、*サービスモデル*と呼ばれる設定または規約、あるいはその両方を通じて定義します。 *サービスモデル*を使用すると、開発者は JSON:API 複合*ドキュメント*とのセッションを表す*ドキュメントコンテキスト*を使用して、リソース、リソース識別子、リレーションシップ、リンク、メタ情報、エラーオブジェクト、バージョン情報など、すべて高レベルの CLR オブジェクトとしてシリアライズ/デシリアライズされるさまざまな JSON:API 抽象化を読み書きできます。
- FSharp.JsonApi は、F# を使用して JSON:API 仕様に準拠した柔軟で厳密に型指定された Web API を簡単に作成および利用できるライブラリです。
- jsonapi-consumer は、JSON:API ベースの API を利用するためのシンプルなクライアントサイド .NET Standard ラッパーフレームワークです。
Python
- jsonapi-requests は、Python 用のシンプルで楽しい高レベル JSONAPI クライアントです。API の利用を DRY な方法でさらに容易にする ORM を含んでいます。また、requests に似た低レベル API も備えており、必要なすべての柔軟性を提供します。
- jsonapi-client は、包括的でありながら使いやすい、Pythonic な、ORM のような JSON:API サービスへのアクセスを提供します。
- json-api-doc は、シンプルな Python 辞書を返す JSON:API パーサーです。
- json-api-smart は、ORM インターフェースを備えた JSON:API です。
サーバーライブラリ
Swift
- aonawale / JSONAPISerializer は、JSON:API v1.0 を実装した、サーバーサイドの Swift フレームワークに依存しないライブラリです。
- mattpolzin / JSONAPI は、型安全性を重視した Swift Codable ライブラリです。プラットフォームに依存しないため、クライアント側とサーバー側の両方で使用できます。
- Datadog/swift-jsonapi は、JSON:API レスポンスのエンコードとデコードを簡素化するためのマクロを提供する Swift ライブラリです。
PHP
- tobyz / json-api-server は、フレームワークに依存しない宣言型の JSON:API サーバー実装です。
- neomerx / json-api は、JSON:API v1.0 を完全に実装した、フレームワークに依存しないライブラリです。
- limoncello-php / app は、neomerx / json-api のための JSON:API v1.0 クイックスタートサーバーアプリケーションです。
- lode / jsonapi は、仕様を知らなくても JSON:API v1.1 を実装できる、人間に優しいライブラリです。
- woohoolabs / yin は、効率性とエレガンスを目指す上級ユーザー向けのライブラリです。
- nilportugues / json-api は、JSON および JSON:API 形式で有効な API レスポンスを出力するシリアライザートランスフォーマーです。
- nilportugues / symfony2-jsonapi-transformer は、JSON および JSON:API 形式で有効な API レスポンスを出力する Symfony 2 JSON:API Transformer バンドルです。
- nilportugues / laravel5-jsonapi-transformer は、JSON および JSON:API 形式で有効な API レスポンスを出力する Laravel 5 JSON:API Transformer パッケージです。
- tuyakhov / yii2-json-api は、Yii フレームワークのための JSON:API 仕様の実装です。
- json-api-php/json-api は、JSON:API 仕様を高品質のユニット/機能テストのセットに変換し、TDD および SOLID OOP 原則に厳密に従って PHP 7 で実装しようとする試みです。
- laravel-json-api/laravel は、JSON:API 仕様の Laravel 実装であり、完全な機能サポートと広範なドキュメントを備えています。
- FriendsOfCake/crud-json-api は、保守可能な JSON:API 準拠 API を構築するための CakePHP Crud リスナーです。
- thephpleague/fractal は、JSON:API 仕様の部分的な実装であり、簡単なドロップイン JSON レンダリングソリューションを提供します。
- oligus/jad は、doctrine エンティティを json:api リソース、またはリソースのコレクションに自動的に変換するライブラリです。
- enm/json-api-server は、enm/json-api-common に基づく、json:api 仕様の抽象的なサーバーサイド PHP (>= 7.2) 実装です。中央 집중형処理メソッドを介してリクエストハンドラーを介して json:api リクエストを処理します。psr-7-request/response または独自のリクエストおよびレスポンスロジックで使用できます。
- enm/json-api-server-bundle は、enm/json-api-server を Symfony アプリケーション (Symfony バージョン ^4.0) に統合する Symfony バンドルです。
- raml-json-api は、Laravel 用の RAML ベースの JSON:API コードジェネレーターです。コントローラー、ミドルウェア、モデル、ルート、マイグレーションを生成し、JSON:API を提供します。
- paknahad/jsonapi-bundle は、Symfony バンドルです。API を生成する最速の方法です。
- swisnl/json-api-server は、JSON:API を数分で稼働させるための Laravel パッケージです。
- hackerboy/json-api は、JSONAPI を簡単に実装するのに役立つ軽量ライブラリです。
- Drupal Drupal CMS は、JSON:API 仕様に従って管理するすべてのデータ (エンティティ) を公開することをサポートしています。jsonapi_extras は、リソースタイプの名前、フィールド名などを変更するためのオプションの追加モジュールです。
- bednic/json-api は、オブジェクトから有効な JSON API レスポンスドキュメントを作成するため
- pz/doctrine-rest ライブラリは、Doctrine 2 で JSON:API を実装するための基本的なツールを提供します。
- pz/jsonapi-resource PHP 8.0 属性を使用して、PHP クラスオブジェクトを JSON:API リソースオブジェクトにシリアライズします。
- binarcode/laravel-restify Laravel で強力な JSON:API 互換の Rest API を作成する最速の方法です。 リファレンスドキュメント。
- API Platform は、JSON:API をサポートする API ファーストフレームワークです。
Node.js
- Fortune.js は、JSON:API の包括的な実装を含むライブラリです。
- json-api は、Express + Mongoose アプリを JSON:API サーバーに変えます。
- endpoints は、Bookshelf を使用した JSON:API の実装です。
- YAYSON は、JSON:API データをシリアライズおよび読み取るための同型ライブラリです。プレーンオブジェクトで使用するか、ORM に合わせて拡張します (現在、Sequelize 用のアダプターがあります)。
- jsonapi-serializer は、データを JSON:API にシリアライズするための Node.js フレームワークに依存しないライブラリです。
- jsonapi-server は、機能豊富な設定駆動型の json:api フレームワークです。
- jsonapi-store-memoryhandler は、迅速なプロトタイピングのためのインメモリデータストアです。
- jsonapi-store-relationaldb は、jsonapi-server のためのリレーショナルデータベースハンドラーです。
- jsonapi-store-mongodb は、jsonapi-server のための mongodb ハンドラーです。
- jsonapi-store-elasticsearch は、jsonapi-server のための elasticsearch ハンドラーです。
- jagql は、{json:api} + GraphQL エンドポイントを記録的な速さでセットアップするためのリソース駆動型フレームワークです。
- jagql/store-sequelize は、jagql リソースを Postgres/MySQL/MSSQL/SQLite に永続化します。
- loopback-component-jsonapi は、loopback 高度に拡張可能なオープンソース Node.js フレームワークのための JSON:API サポートです。
- loopback-jsonapi-model-serializer は、loopback モデルのための JSON:API シリアライザーです。
- jsonapi-mapper は、Node ORM のための JSON:API 準拠のシリアライゼーションです。
- jaysonapi jaysonapiは、フレームワークに依存しないJSON:API v1.0.0シリアライザーです。jaysonapiは、データのシリアル化に対してより関数的なアプローチを提供します。型とスキーマを持つシリアライザーを定義し、プレーンオブジェクトとしてデータ、included、meta、errorsなどを渡してserializeを呼び出します。
- json-api-ify データを徹底的にシリアル化します。JSON:API v1.0に準拠しています。
- bookshelf-jsonapi-params JSON:APIのフィルタリング、ページネーション、スパースフィールドセット、インクルード、ソートをBookshelf.jsクエリに自動的に適用します。
- Lux は、超高速JSON:APIを構築するためのMVCスタイルのNode.jsフレームワークです。
- jsonapi-mock json-server にインスパイアされたJSON:APIモックサーバーです。lowdbを使用して、JSON:APIモックサーバーをほぼ瞬時にセットアップできます。
- DenaliJS 意欲的なAPIを構築するための階層化された規約フレームワークです。強力なアドオンシステム、クラス最高の開発者エクスペリエンス、そして広範なドキュメントが含まれています。
- jsonapi-fractal Fractal (PHP) にインスパイアされた JSON:API シリアライザーです。
- ts-japi - 依存関係がなく、高度にモジュール化され、js/ts フレンドリーで、再帰可能で、フレームワークに依存しない、データを JSON:API 仕様にシリアライズするためのライブラリです。仕様全体をシリアライズします。
- Kurier は、JSON:APIの1.1仕様 + Operations提案仕様 に従ってAPIを作成するためのTypeScriptフレームワークです。
- nestjs-json-api エンドポイント、クエリパラメータ、ボディパラメータ、検証、レスポンス変換などの機能をサポートするJSON APIを実装するための、NestJSとTypeORMのモジュールです。
Ruby
- プレーンRuby
- Yaks ハイパーメディアAPIを構築するためのライブラリで、JSON:API出力フォーマットが含まれています。
- JSONAPI::Serializers は、純粋なRubyの読み取り専用シリアライザー実装を提供します。
- JSONAPI::Realizer は、JSON:APIリクエストをモデルに変換するための純粋なRubyパターンを提供します(アクティブレコードのサポートとRailsの指示が含まれています)。
- Roar Rubyオブジェクトの表現をレンダリングおよび解析します。
- Jbuilder::JsonAPI Jbuilder用のシンプルで軽量な拡張機能です。
- jsonapi-rb RailsとHanamiの統合を備えた、JSON:APIドキュメントを効率的に構築および利用するためのRubyライブラリです。
- fast_jsonapi Rubyオブジェクト用の超高速JSON:APIシリアライザーです。
- jsonapi_parameters JSON:API入力を利用するためのRails流の方法です。
- Ruby on Rails
- Jsonapi-for-rails は、JSON:API準拠のRails APIを強化します。非常に少ないコーディングでAPIを実装できます。
- ActiveModel::Serializers は、元々の模範的な実装の1つですが、現時点では少し古くなっています。
- JSONAPI::Resources は、JSON:APIサーバーを開発するための完全なフレームワークを提供します。Railsで動作するように設計されており、ルート、コントローラー、シリアライザーを提供します。
- JSONAPI::Utils は、JSONAPI::Resources の上で動作し、そのリソース駆動型スタイルを活用して、学習曲線をほとんど、あるいはまったく必要とせずに最新のAPIを構築するためのRails流の方法を提供します。
- Caprese エンドポイントを設定するという面倒な作業ではなく、エンドポイントの動作のカスタマイズに集中できる、JSON:APIサーバーを作成するためのRailsライブラリです。ActiveModel::Serializerの力を活用しています。
- JSONAPI Suite は、深いクエリとネストされた書き込みが可能なサーバーを容易にします。あらゆるORMまたはデータストアで動作します。統合テストヘルパーと自動swaggerドキュメントが付属しています。
- JSONAPI.rb シリアル化(
fast_jsonapi
を使用)、エラー処理、インクルード、スパースフィールド、ページネーション、フィルタリング(ransack
を使用)、ソートのサポートを提供するプラグイン可能なmixinのセットです。JSON:API仕様のできるだけ多くの部分を、実装するように努めています。小規模なコードベース(〜500 sloc)、優れたドキュメントとテストカバレッジを備えています。 - Graphiti JSON:APIに基づくRESTfulリソース用のRubyライブラリです。Vanilla Ruby、Sinatra、Railsで動作します。
- Sinatra
- Sinja は、Sinatra を拡張し、JSONAPI::Serializers を活用して、選択したDAL/ORMを使用して、包括的で読み書き可能なJSON:API v1.0準拠のWebサービスの迅速な開発を可能にします。シンプルなロールベースの認証スキーム、クライアント生成IDのサポート、パッチレスクライアント、合体された検索リクエスト、例外処理などを含みます。
Python
- Hyp は、JSON:APIレスポンスを作成するためのライブラリです。
- SQLAlchemy-JSONAPI は、SQLAlchemyモデルのJSON:APIシリアル化を提供します。
- django-rest-framework-json-api は、Django REST FrameworkのJSON:APIの解析とレンダリングを提供します。
- jsoongia は、フレームワークに依存しないJSON:API実装です。
- ripozo は、Flask、DjangoなどでJSON:APIコンテンツ(他のハイパーメディアフォーマットの中でも)を提供するためのフレームワークを提供します。
- marshmallow-jsonapi は、あらゆるPython WebフレームワークにJSON:APIデータフォーマットを提供します。
- neoapi は、Neo4jデータのneomodel StructuredNodesからJSON:API準拠のレスポンスをシリアル化します。
- xamoom-janus は、FlaskやBottlyPyなどのPython WebフレームワークにJSON:API機能を簡単かつ迅速に拡張するためのPythonモジュールです。また、データマッピングのための柔軟なメカニズムと、プロジェクトのニーズに応じて機能を傍受および拡張するためのフックを提供します。
- pyramid-jsonapi pyramidフレームワークを使用して、sqlalchemyモデルからJSON:APIを自動的に構築します。
- Flask-REST-JSONAPI Flask、Marshmallow、そしてお好みのデータプロバイダー(SQLAlchemy、MongoDBなど)を使用して、JSON:API仕様に従ってWeb APIを作成するためのFlask拡張機能です。
- Flump FlaskとMarshmallowに依存する、データベースに依存しないJSON:APIビルダーです。
- SAFRS JSON API Framework 自動生成されたopenapi(旧swagger)インターフェースを備えたFlask-SQLAlchemy JSON:API実装です。
- pydantic-jsonapi pydantic を使用したPythonタイプヒントによるJSON:API検証です。
- pydanja OpenAPIドキュメントの簡素化のためのヘルパーを備えた、pydantic と FastAPI 用のジェネリック型を使用したJSON:API実装です。
- Flask-Restless-NG Flaskを使用してSQLAlchemyモデルからJSON:APIを構築します。
- starlette-jsonapi 非同期ORMをサポートするStarletteとmarshmallow-jsonapiをベースにしたマイクロフレームワークです。
- kt.jsonapi Zopeコンポーネントアーキテクチャを使用したJSON:APIレスポンス生成です。
- Flask-COMBO-JSONAPI REST APIを構築するためのJSON:API Flask拡張機能です。
- FastAPI-JSONAPI FastAPI-JSONAPI は、REST API を構築するための FastAPI 拡張機能です。
Go
- api2go は、GolangプロジェクトでJSON:APIを提供することをシンプルにするための本格的なライブラリです。
- jsonapi は、Golangプロジェクトに既に存在する構造体に注釈を付けるために構造体タグを使用して、JSON:API形式のペイロードをシリアル化および逆シリアル化します。Godoc
- go-json-spec-handler 既存のAPIでリクエストを処理し、レスポンスを送信するためのドロップインライブラリです。
- jsh-api は、JSON:APIリソースエンドポイントを構築するという面倒な作業を処理します。jshの上に構築されています。
- mfcochauxlaberge/jsonapi は、JSON:API準拠のサービスを構築するための大規模なツールセットを提供します。
- pieoneers/jsonapi-go Goで実装された軽量JSON APIです。クライアントとサーバーアプリケーションを、数か月ではなく数時間でJSON API対応にします。
.NET
- JsonApiDotNetCore は、.NET CoreとEntity Framework Coreを使用してJSON:API準拠のREST APIを構築するためのフレームワークです。ソート、フィルタリング、ページネーションなどのすぐに使える機能を提供することで、ボイラープレートをできるだけ排除します。リソースを定義し、カスタムビジネスロジックを実装することに集中するだけで済みます。
- JsonApiNet を使用すると、JSON:APIドキュメントをC#エンティティにすばやく逆シリアル化できます。複合ドキュメント、属性からの複雑な型マッピング、属性マッピングなどをサポートします。詳細については、READMEを参照してください。
- NJsonApi は、標準の.NETサーバー実装です。交換可能な規約とビルダー スタイルの構成で開発者にとって使いやすくしながら、優れた拡張性とパフォーマンスを目指しています。
- Migrap.AspNetCore.Hateoas ASP.NET CoreのHATEOAS(Hypermedia as the Engine of Application State)フレームワークです。現在の実装:Siren、JsonApi。
- Saule は、確立されたWeb API規約とよく統合する、小規模なJSON:API 1.0互換ライブラリです。完全なドキュメントとほぼ100%のテストカバレッジを備えています。
- Hypermedia.JsonApi.WebApi は、JSON:APIの読み取りと書き込みのためのWeb APIメディアタイプフォーマッターです。外部リソースモデル定義をサポートし、ネイティブに関連リソースを含みます。
- JsonApiSerializer は、Json.NET
JsonSerializerSetting
として実装された、設定不要の JSON:API シリアライゼーションおよびデシリアライゼーションライブラリです。JSON:API と CLR オブジェクト間の適切なデフォルトマッピングを提供しながら、Json.NET の既存の能力と柔軟性を活用します。 - JsonApiFramework.Server は、開発者が_サービ スモデル_と呼ばれる構成または規約、あるいはその両方を通じてハイパーメディアAPIサーバーのリソースのドメインモデルを定義する、_ポータブル_な.NET Standard / Coreサーバーサイドフレームワークです。_サービスモデル_を使用すると、開発者は、リソース、リソース識別子、関係、リンク、メタ情報、エラーオブジェクト、バージョン情報など、さまざまなJSON:API抽象化の読み取りまたは書き込みのためのJSON:API複合_ドキュメント_とのセッションを表す_ドキュメントコンテキスト_を使用できます。これらはすべて、JSON:APIハイパーメディアの自動生成を備えた高レベルのCLRオブジェクトとしてシリアル化/逆シリアル化されます。
- FSharp.JsonApi は、F# を使用して JSON:API 仕様に準拠した柔軟で厳密に型指定された Web API を簡単に作成および利用できるライブラリです。
- Felicity は、開発者の満足度を最適化した、関数型F#ドメインモデル用のボイラープレートのないJSON:APIフレームワークです。
Java
- crnk.io は、クライアントとサーバー向けのJSON:APIフレームワークです。 Katharsisが開発の勢いを失った 後、そのフォークとして開始されました。 Katharsisと同様の概念ですが、活発な開発サポートがあります。サーバー側では、とりわけ、豊富な統合セット(Servlet、JAX-RS、Spring、JPA、Bean Validation、Zipkinなど)、JSON Patchを使用した一括更新、自動化のためのメタモデル、TypeScriptのクライアントスタブ生成、サードパーティの貢献のためのモジュールAPIが付属しています。
- Elide は、JSON:APIをサポートするWebフレームワークです。注釈ベースのJSON:APIエンドポイント生成により、Elideを使用すると、データモデル、セキュリティモデル、およびビジネスロジックに集中しながら、不要なボイラープレートを回避できます。さらに、JSON:API Patch拡張機能を使用することで、Elideはデータベーストランザクションを完全にサポートします。
- JSON:API for Spring HATEOAS は、Spring HATEOAS表現モデルのシリアル化/逆シリアル化を提供します。このプロジェクトは、関係、含まれるリソースオブジェクト、ページネーションなどを簡単に作成するためのビルダーも提供します。
- jsonapi-rvp は、Jakarta EE 環境(旧 Java EE)で利用可能なプラットフォーム機能を活用し、JPA エンティティを JSON:API を介して公開します。クエリとエンティティの検証(Bean Validation を使用)、ページネーション、レコード識別子としてのサロゲートキーの使用、LEFT 外部結合条件のサポート、シンプルな JavaScript クライアントなどの機能が含まれています。
- JSON:API オブジェクトコンバーター は、ビューモデル(DTO)でのアノテーションを使用して、通常の Java オブジェクトを JSON:API 標準に変換します。
- Dashjoin ローコード開発プラットフォーム は、リレーショナル、ドキュメント、グラフデータベースに接続し、JSON:API を介してそれらを公開します。このプラットフォームは、強力なアクセス制御メカニズム、クエリ エディター、グラフィカルなレイアウト デザイナーを提供します。
Scala
- scala-jsonapi JSON:API 仕様に基づいて JSON 出力(および JSON 入力の逆シリアル化)を行うための Scala ライブラリです。
Elixir
- ja_serializer は、準拠する JSON を出力するためのビヘイビアと DSL です。Phoenix ビューまたは Plug スタックでの使用に適しています。
- jsonapi は、通常の関数で構築されたシリアライザーとクエリパーサーです。JSONAPI 準拠のクエリを解析および検証し、Ecto モデルまたは Elixir 構造体を準拠する JSON にシリアル化できます。Phoenix ビュー、Plug スタック、または関数を呼び出すことができる場所ならどこでも使用できます。
Haskell
- json-api JSON-API 仕様に従ってユーザー定義リソースを表すための関数とデータ型です。
Perl
- PONAPI::Server は、Plack ベースの Web サーバーであり、仕様に準拠した汎用サービスを提供します。データリポジトリを接続するだけで利用できます。
Vala
- JSON-API-GLib は、JSON-GLib を使用してペイロードのシリアル化および逆シリアル化が可能な GObject を提供します。
Rust
- jsonapi-rust JSON-API データのシリアル化、逆シリアル化、および操作のための Rust ライブラリです。
Dart
- json_api_server は、Dart VM 上で実行される JSON:API サーバーです。
Crystal
- jsonapi-serializer-cr は、Crystal Lang 用の JSON:API シリアライザーです。
例
関連ツール
プレイグラウンド
- json-api-document-viewer フラットな json:api 構造は、オブジェクト間の複雑な関係を表現するのに適した方法です。ただし、同じ平面性のために、人間がこれらの関係を「解析」することは困難です。このツールは、オブジェクトの関係を視覚的にネストすることで視覚化します。
- corroborate JSON:API リクエスト/レスポンスペイロードバリデーターです。仕様違反があった場合は警告し、推奨事項が守られていない場合は通知します。
Ruby
- json-patch JSON Patch (rfc6902) の実装です。
- hana JSON Patch および JSON ポインター仕様の実装です。
JavaScript
- json-api-merge インクルードされたリソースを元のデータにマージするための JSON:API 固有の重複排除アルゴリズムです。
- json-patch JSON Patch (rfc6902) の実装です。
Python
- jsonpatch JSON Patch (rfc6902) の実装です。
- drf-json-patch jsonpatch を Django REST Framework と統合します。