實作

以下是實作 JSON:API 的專案。如果您想將您的專案列出,請發送 Pull Request

注意:此規格於 2015 年 5 月 29 日標記為 1.0。以下實作尚未驗證是否符合規範,但目前正在組建測試套件來進行審核。

用戶端函式庫

JavaScript

  • ember-data 是最初的範例實作之一。現在有一個官方轉接器來支援 json-api。
  • backbone-relational-jsonapi 是 Backbone.Relational 的解析層。以 JSON:API 指定的實體會自動解析並注入 Backbone.Relational 關聯中。
  • orbit.js 是一個獨立的函式庫,用於協調對資料來源的存取並保持其內容同步。Orbit 的通用函式庫包含JSONAPISource,用於存取 JSON:API 伺服器。Orbit 可以獨立使用,也可以透過ember-orbit整合函式庫與 Ember.js 一起使用。
  • YAYSON 是一個用於序列化和讀取 JSON:API 資料的同構函式庫。您可以擴充它以適應您的模型,或者直接將其與純物件一起使用。
  • Ember JSON API Resources 是一個Ember CLI 附加元件,提供輕量級的解決方案,用於在Ember.js應用程式中進行資料持久化。
  • hapi-json-api 是 hapi framework 的插件;強制執行 Accept/Content-type 規則,並將 Boom 錯誤重寫為符合規格。
  • jsonapi-datastore 是一個輕量級的獨立函式庫,用於讀取、序列化和同步關聯式 JSON:API 資料。
  • superagent-jsonapify 是一個非常輕量級(50 行)的 JSON-API 用戶端附加元件,適用於同構 ajax 用戶端superagent
  • angular-jsonapi 是一個 AngularJS JSON:API 用戶端
  • redux-json-api 是一個將 JSON:API 與 Redux store 整合的函式庫
  • devour-client 是一個輕量級、與框架無關、高度靈活的 JSON:API 用戶端
  • json-api-normalizer 將 JSON:API 文件正規化,適用於 Redux 和 Mobx 等狀態管理解決方案
  • jsona 是一個資料格式化程式,可以從 JSON 或儲存的 reduxObject(json-api-normalizer的結果物件)建立可自訂的簡化物件,並從相同的簡化物件建立正確的 JSON。
  • active-resource 是一個獨立的、慣例驅動的 JavaScript ORM,它映射到您的 JSON:API 伺服器,並允許透過流暢的介面進行進階查詢和關聯式管理。
  • redux-bees 一種簡潔、具宣告性的方式,可在 React+Redux 中與 JSON:API 互動
  • Coloquent Javascript/Typescript 函式庫,將物件及其相互關係映射到 JSON:API,並使用簡潔、流暢的 ActiveRecord-like(例如類似於 Laravel 的 Eloquent)語法來建立、擷取、更新和刪除模型物件。
  • kitsu 是一個簡單、輕量級且與框架無關的 JSON:API 用戶端
  • Sarala JSON API data formatter 是一個簡單且流暢的框架無關 javascript 函式庫,可將標準 JSON:API 回應轉換為簡單的 JSON 物件,反之亦然。
  • Sarala 是一個 javascript 套件,它提供類似Laravel Eloquent的語法,可以針對根據JSON:API 規格建構的 JSON:API 執行 CRUD 操作。
  • jsonapi-client 一個方便的模組,用於使用 jsonapi 服務
  • JSORM 是一個同構的 ActiveRecord 複製,它發出 JSON:API 請求而不是 SQL,並且是更大的 JSONAPI Suite 的一部分。
  • jsonapi-vuex 一個使用 Vuex 儲存與 jsonapi 服務互動的模組,重新構建/正規化記錄以簡化生活。
  • heather-js 一個將 JSONAPI 解析為 ES6 類別物件的函式庫。
  • @hyral/core - 一個先進的、有文件說明的、易於擴展且輕量級的 (JSON:)API 抽象函式庫,具有類似 ORM 的 CRUD 支援、自動關係處理和多個(不同)後端支援。
  • @hyral/vue - @hyral/core 的 Vue(x) 整合,用於建立 Store 模組和 mixins
  • jsonapi-redux-data - 一個使 jsonapi 與 react + redux 的整合變得輕鬆容易的函式庫。
  • jsonapi-fractal 受 Fractal (PHP) 啟發的 JSON:API 序列化器
  • ts-japi - 一個零依賴、高度模組化、js/ts 友好、可遞迴、框架無關的函式庫,用於將資料序列化為 JSON:API 規範。序列化整個規範。
  • mobx-async-store - 一個基於 Mobx 的儲存,用於 JSON:API 規範的非同步資料擷取和狀態管理。
  • spraypaint - 類似於 ActiveRecord 的 Graphiti JS 用戶端。使用 Typescript 編寫,但也適用於普通的 ES5。這個函式庫是同構的 - 可以從瀏覽器或使用 NodeJS 的伺服器使用它。
  • json-api-models - 一個用於處理 JSON:API 資料的輕量級層。
  • fetchja - 一個超級簡單、現代且輕量級的函式庫,用於處理 JSON:API(類似 Kitsu,但使用 Fetch API 而不是 Axios)。

Typescript

  • ts-angular-jsonapi 一個為 AngularJS 開發的 JSON:API 函式庫,使用 Typescript
  • 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 一個用 TypeScript 編寫的 JSON:API 用戶端函式庫,強調根據 HATEOAS 原則對資源進行 RESTful 遍歷。
  • DatX 是一個用於 MobX 狀態管理函式庫的自以為是的資料儲存,它使用 datx-jsonapi mixin 添加了 JSON:API 支援。
  • jsonapi-fractal 受 Fractal (PHP) 啟發的 JSON:API 序列化器
  • ts-japi - 一個零依賴、高度模組化、js/ts 友好、可遞迴、框架無關的函式庫,用於將資料序列化為 JSON:API 規範。序列化整個規範。
  • drupal-jsonapi-params 一個用於在連接到 Drupal CMS 的 JSON:API 時構建查詢參數的函式庫。
  • EntityStore.TS - 類似於 TypeScript 的 ORM 抽象層,其中包含用於存取 JSON:API 伺服器的可擴展 provider

iOS

  • jsonapi-ios 是一個用於從 JSON:API 資料來源載入資料的函式庫。將 JSON:API 資料解析為模型,支援資源自動連結和自定義模型類別。
  • Spine 是一個用於處理 JSON:API API 的 Swift 函式庫。它支援映射到自定義模型類別、擷取、進階查詢、連結和持久化。
  • Vox 是一個 Swift JSON:API 用戶端框架,支援自定義模型類別和良好的網路介面。
  • Japx 是一個輕量級的 JSON:API 解析器,它可以扁平化複雜的 JSON:API 結構並將其轉換為簡單的 JSON,反之亦然。它的工作原理是將 Dictionary 傳輸到 Dictionary,因此您可以使用 Codable、Unbox、Wrap、ObjectMapper 或您喜歡的任何其他物件映射工具。它也支援 Objective-C。
  • mattpolzin / JSONAPI 是一個 Swift Codable 函式庫,非常強調類型安全。它是平台無關的,因此可以在用戶端和伺服器端使用。
  • IzzyParser 是一個用於序列化和反序列化 JSON:API 物件的輕量級函式庫。
  • Datadog/swift-jsonapi 是一個 Swift 函式庫,它提供巨集來簡化 JSON:API 回應的編碼和解碼。

Ruby

  • jsonapi-consumer 一個用於使用 JSONAPI 有效負載的 ruby 函式庫。
  • JsonApiClient 嘗試為您提供一個易於理解的查詢構建框架(類似於 ActiveRecord 範圍)。
  • Munson 是一個 ruby JSONAPI 用戶端,可以充當 ORM 或透過細粒度的不可知論與您的模型整合。易於配置和自定義。包括一個可鏈式/可自定義的查詢構建器、屬性 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:API 結構扁平化為簡單的 JSON,反之亦然。

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 是一個用於使用 JSON:API 的 R 用戶端程式庫。

Elm

  • elm-jsonapi 為接收 JSON:API 酬載的用戶端提供了解碼器和輔助函式。
  • elm-jsonapi-http 封裝了 elm-jsonapi 並處理與 JSON:API 相容伺服器的内容協商細節,為使用者提供更順暢的介面。

.NET

  • Hypermedia.JsonApi.Client 是一組 HttpClient 的擴展方法,允許讀取和寫入 JSON:API 文件。
  • JsonApiSerializer 是一個無需配置的 JSON:API 序列化和反序列化函式庫,它作為 Json.NET 的 JsonSerializerSetting 實現。它利用了 Json.NET 現有的功能和彈性,同時在 JSON:API 和 CLR 物件之間提供合理的預設映射。
  • JsonApiFramework.Client 是一個*可移植的* .NET Standard/Core 用戶端框架,開發人員可以透過配置和/或約定(稱為*服務模型*)來定義超媒體 API 伺服器資源的領域模型。透過*服務模型*,開發人員可以使用代表與 JSON:API 複合*文件*會話的*文件上下文*來讀取或寫入各種 JSON:API 抽象概念,例如資源、資源識別碼、關聯關係、連結、詮釋資料、錯誤物件和版本資訊,所有這些都序列化/反序列化為高階 CLR 物件。
  • FSharp.JsonApi 是一個允許您使用 F# 輕鬆建立和使用符合 JSON:API 規範的彈性、強類型 Web API 的函式庫。
  • jsonapi-consumer 是一個簡潔的用戶端 .NET Standard 包裝框架,用於使用基於 JSON:API 的 API。

Python

  • jsonapi-requests 是一個簡潔且有趣的高階 JSONAPI Python 用戶端程式庫。包含 ORM,讓使用 API 更輕鬆,更 DRY。它也有一個類似於 requests 的低階 API,可提供您可能需要的彈性。
  • jsonapi-client 一個功能全面但易於使用、pythonic、類似 ORM 的 JSON:API 服務存取方式
  • json-api-doc JSON:API 解析器,返回一個簡單的 Python 字典
  • json-api-smart 具有 ORM 介面的 JSON:API

伺服器函式庫

Swift

  • aonawale / JSONAPISerializer 是一個伺服器端 Swift 框架獨立函式庫,它實作了 JSON:API v1.0。
  • mattpolzin / JSONAPI 是一個 Swift Codable 函式庫,非常強調類型安全。它是平台無關的,因此可以在用戶端和伺服器端使用。
  • Datadog/swift-jsonapi 是一個 Swift 函式庫,它提供巨集來簡化 JSON:API 回應的編碼和解碼。

PHP

Node.js

  • Fortune.js 是一個包含 JSON:API 完整實作 的函式庫。
  • json-api 將 Express + Mongoose 應用程式轉換為 JSON-API 伺服器。
  • endpoints 是一個使用 Bookshelf 的 JSON:API 實作。
  • YAYSON 是一個用於序列化和讀取 JSON:API 資料的同構函式庫。您可以將它與純物件一起使用,或擴展它以適應您的 ORM(目前它有一個適用於 Sequelize 的轉接器)。
  • jsonapi-serializer 是一個與 Node.js 框架無關的函式庫,用於將您的資料序列化為 JSON:API。
  • jsonapi-server 一個功能豐富、配置驅動的 json:api 框架。
  • jagql 一個資源驅動的框架,可在極短時間內設置 {json:api} + GraphQL 端點。
  • loopback-component-jsonapi JSON:API 支援 loopback 高度可擴展的開源 Node.js 框架。
  • loopback-jsonapi-model-serializer loopback 模型的 JSON:API 序列化器。
  • jsonapi-mapper 適用於 Node ORM 的 JSON:API 兼容序列化器。
  • jaysonapi jaysonapi 是一個與框架無關的 JSON:API v1.0.0 序列化器。jaysonapi 提供更偏向函數式的方法來序列化您的數據。使用類型和架構定義序列化器,並在其上調用 serialize,將數據、included、meta、errors 等作為純物件傳入。
  • json-api-ify 序列化你的數據。 兼容 json:api v1.0。
  • bookshelf-jsonapi-params 自動將 JSON:API 過濾、分頁、稀疏欄位集、包含和排序應用於您的 Bookshelf.js 查詢。
  • Lux 是一個 MVC 風格的 Node.js 框架,用於構建快速的 JSON:API。
  • jsonapi-mock 一個受 json-server 啟發的 jsonapi 模擬伺服器。幾乎可以立即設置 jsonapi 模擬伺服器,使用 lowdb。
  • DenaliJS 一個用於構建大型 API 的分層約定框架。包含強大的插件系統、一流的開發者體驗和豐富的文檔。
  • jsonapi-fractal 受 Fractal (PHP) 啟發的 JSON:API 序列化器
  • ts-japi - 一個零依賴、高度模組化、js/ts 友好、可遞迴、框架無關的函式庫,用於將資料序列化為 JSON:API 規範。序列化整個規範。
  • Kurier 是一個 TypeScript 框架,用於創建遵循 JSON:API 1.1 規範 + Operations 建議規範 的 API。
  • nestjs-json-api 一個用於 NestJS 和 TypeORM 的模組,用於實現 JSON API 支援的功能,例如端點、查詢參數、主體參數、驗證和轉換響應。

Ruby

  • 純 Ruby
    • Yaks 用於構建超媒體 API 的函式庫,包含 JSON:API 輸出格式。
    • JSONAPI::Serializers 提供純 Ruby、唯讀的序列化器實現。
    • JSONAPI::Realizer 提供一個純 Ruby 模式,用於將 JSON:API 請求轉換為模型(具有 active record 支援和 rails 指令)。
    • Roar 渲染和解析 Ruby 物件的表示形式。
    • Jbuilder::JsonAPI 簡單輕巧的 Jbuilder 擴展。
    • jsonapi-rb Ruby 函式庫,用於高效構建和使用 JSON:API 文件 - 與 Rails 和 Hanami 集成。
    • fast_jsonapi 一個閃電般快速的 Ruby 物件 JSON:API 序列化器。
    • jsonapi_parameters Rails 使用 JSON:API 輸入的方式。
  • Ruby on Rails
    • Jsonapi-for-rails 為您的 JSONAPI 兼容 Rails API 提供支援。只需很少的程式碼即可實現您的 API。
    • ActiveModel::Serializers 是最初的範例實現之一,但目前略微過時。
    • JSONAPI::Resources 提供了一個用於開發 JSON:API 伺服器的完整框架。它設計用於與 Rails 配合使用,並提供路由、控制器和序列化器。
    • JSONAPI::Utils 建立在 JSONAPI::Resources 之上,利用其資源驅動的風格,並以 Rails 的方式構建現代 API,無需或只需很少的學習曲線。
    • Caprese 一個自以為是的 Rails 函式庫,用於創建 JSON:API 伺服器,讓您可以專注於自定義端點的行為,而不是設置它們的繁瑣工作。利用 ActiveModel::Serializer 的力量。
    • JSONAPI Suite 方便構建能夠進行深度查詢和巢狀寫入的伺服器。適用於任何 ORM 或資料儲存;附帶整合測試助手和自動 swagger 文件。
    • JSONAPI.rb 一組可插拔的 mixin,提供序列化(使用 fast_jsonapi)、錯誤處理、包含、稀疏欄位、分頁、過濾(使用 ransack)和排序的支援。 努力實現盡可能多的 JSONAPI 規範。程式碼庫小(約 500 行程式碼),良好的文件和測試覆蓋率。
    • Graphiti 一個基於 JSON:API 的 RESTful 資源 ruby 函式庫。適用於原生 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 是一個 Python 模組,可以輕鬆快速地使用 json:api 功能擴展 Python Web 框架,例如 Flask 或 BottlyPy。還提供了一個靈活的數據映射機制和鉤子,可以根據您的項目需求攔截和擴展其功能。
  • pyramid-jsonapi 使用 pyramid 框架從 sqlalchemy 模型自動構建 JSON:API。
  • Flask-REST-JSONAPI Flask 擴展,用於根據 jsonapi 規範使用 Flask、Marshmallow 和您選擇的數據提供程序(SQLAlchemy、MongoDB 等)創建 Web api。
  • Flump 依賴於 Flask 和 Marshmallow 的資料庫無關 JSON:API 建構器。
  • SAFRS JSON API Framework 具有自動生成的 openapi(fka swagger)界面的 Flask-SQLAlchemy jsonapi 實現。
  • pydantic-jsonapi 使用 pydantic 進行 python 類型提示的 JSON:api 驗證。
  • pydanja 使用泛型類型為 pydanticFastAPI 實現 JSON:API,並提供簡化 OpenAPI 文件的輔助工具。
  • Flask-Restless-NG 使用 Flask 從 SQLAlchemy 模型構建 JSON:API。
  • starlette-jsonapi 基於 Starlette 和 marshmallow-jsonapi 的微框架,支援非同步 ORM。
  • kt.jsonapi 使用 Zope 組件架構生成 JSON:API 回應。
  • Flask-COMBO-JSONAPI JSON:API flask 擴展,用於構建 REST API。
  • FastAPI-JSONAPI FastAPI-JSONAPI 是一個 FastAPI 擴展,用於構建 REST API。

Go

  • api2go 是一個功能齊全的函式庫,可以輕鬆地為您的 Golang 項目提供 JSON:API。
  • jsonapi 使用結構標籤註釋您在 Golang 項目中已有的結構來序列化和反序列化 jsonapi 格式的有效負載。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(超媒體作為應用程序狀態的引擎)框架。目前實現:Siren、JsonApi。
  • Saule 是一個小型 JSON:API 1.0 兼容函式庫,可與已建立的 Web API 約定良好集成。它有完整的文檔和接近 100% 的測試覆蓋率。
  • Hypermedia.JsonApi.WebApi 是一個 Web API 媒體類型格式化程序,用於讀取和寫入 JSON:API。它支援外部資源模型定義,並原生包含相關資源。
  • JsonApiSerializer 是一個無需配置的 JSON:API 序列化和反序列化函式庫,它作為 Json.NET 的 JsonSerializerSetting 實現。它利用了 Json.NET 現有的功能和彈性,同時在 JSON:API 和 CLR 物件之間提供合理的預設映射。
  • JsonApiFramework.Server 是一個*可移植的* .NET Standard/Core 伺服器端框架,開發人員可以通過稱為*服務模型*的配置和/或約定來定義超媒體 API 伺服器資源的域模型。使用*服務模型*,開發人員可以使用表示與 JSON:API 複合*文件*的會話的*文件上下文*來讀取或寫入各種 JSON:API 抽象概念,例如資源、資源標識符、關係、連結、元信息、錯誤對象和版本信息,所有這些都序列化/反序列化為高級 CLR 對象,並自動生成 JSON:API 超媒體。
  • FSharp.JsonApi 是一個允許您使用 F# 輕鬆建立和使用符合 JSON:API 規範的彈性、強類型 Web API 的函式庫。
  • Felicity 是一個適用於您的函數式 F# 域模型的無樣板 JSON:API 框架,針對開發人員的幸福感進行了優化。

Java

  • crnk.io 是一個適用於客戶端和伺服器的 JSON:API 框架。它最初是 Katharsis 的一個分支,在後者失去發展動力後開始發展。它具有類似的概念,但擁有積極的開發支援。在伺服器端,它帶有豐富的整合套件(Servlet、JAX-RS、Spring、JPA、Bean Validation、Zipkin 等),使用 JSON Patch 進行批量更新,用於自動化的元模型,為 TypeScript 生成客戶端 Stub,以及用於第三方貢獻的模組 API。
  • Elide 是一個支援 JSON:API 的 Web 框架。透過基於註釋的 JSON:API 端點生成,Elide 使您可以專注於您的數據模型、安全模型和業務邏輯,同時避免不必要的樣板程式碼。此外,透過使用 JSON:API Patch 擴展,Elide 提供了對資料庫事務的完整支援。
  • 適用於 Spring HATEOAS 的 JSON:API 提供 Spring HATEOAS 表示模型的序列化/反序列化。該專案還提供了一個構建器,可以輕鬆創建關聯、包含的資源物件、分頁等。
  • jsonapi-rvp 利用 Jakarta EE 環境(以前稱為 Java EE)中可用的平台功能,透過 JSON:API 公開 JPA 實體。功能包括查詢和實體驗證(使用 Bean Validators)、分頁、使用代理鍵作為記錄識別碼、支援 LEFT 外部聯接條件,以及一個簡單的 JavaScript 客戶端。
  • JSON:API 物件轉換器 使用 viewmodels (dtos) 中的註釋將普通的 Java 物件轉換為 JSON:API 標準。
  • Dashjoin 低程式碼開發平台 連接到關聯式、文件和圖形資料庫,並透過 JSON:API 使它們可用。該平台提供強大的存取控制機制、查詢編輯器和圖形佈局設計器。

Scala

  • scala-jsonapi 一個 Scala 函式庫,用於基於 JSON:API 規範產生 JSON 輸出(以及反序列化 JSON 輸入)。

Elixir

  • ja_serializer 是一種行為和 DSL,用於發出符合規範的 JSON。適用於在 Phoenix 視圖或 Plug 堆疊中使用。
  • jsonapi 是一個使用普通函數構建的序列化器和查詢解析器。可以解析和驗證符合 JSONAPI 的查詢,並將 Ecto 模型或 Elixir 結構序列化為符合規範的 JSON。適用於在 Phoenix 視圖、Plug 堆疊或任何可以呼叫函數的地方使用。

Haskell

  • json-api 函數和數據類型,用於根據 JSON-API 規範表示使用者定義的資源。

Perl

  • PONAPI::Server 是一個基於 Plack 的 Web 伺服器,提供符合規範的通用服務。只需插入您的數據儲存庫即可使用。

Vala

Rust

  • jsonapi-rust 一個 Rust 函式庫,用於序列化、反序列化和處理 JSON-API 數據。

Dart

Crystal

範例

Playground

  • 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