扩展和配置文件

JSON:API 规范提供了一种方法,可以使用扩展来定义基本规范未提供的功能。此外,它还提供了一种方法,可以使用配置文件在实现之间共享规范的特定用法。

一般来说,扩展提供了一种方法来标准化不需要作为基本规范的一部分但足够通用以至于社区将从标准中受益的功能。通常,该功能也过于困难和/或非传统,无法仅使用为实现保留的规范部分来实现(例如,实现可以将自己的成员添加到attributes 对象,但不能将新成员添加到资源标识符)。

另一方面,配置文件是一种标准化基本规范的常见用法的方法,这些用法可以仅使用为实现保留的规范部分来简单地实现(例如,处理分页的常见方法)。

扩展和配置文件之间的一个主要区别在于,扩展必须由客户端和服务器双方商定并理解,而配置文件如果客户端或服务器不识别,则可以安全地忽略。

下面列出了一些有用的扩展和配置文件。但是,扩展或配置文件不需要出现在下面才能有效。任何人都可以使用自己的域来编写和托管扩展或配置文件文档,作为其 URI。

为了保持 JSON:API 作为反争论工具的承诺,实现者强烈鼓励重用、改进和协作常见的扩展和配置文件,而不是因为琐碎或美学差异而创建新的扩展和配置文件。

此页面上列出的扩展和配置文件已由 JSON:API 规范编辑审核,并被认为

  • 与基本规范兼容
  • 能够在不发生向后不兼容的情况下发展
  • 广泛有用

并非所有扩展或配置文件都可以在或应该出现在此页面上。此列表以最大努力的方式维护。

扩展

  • 原子操作
    • URI: https://jsonapi.fullstack.org.cn/ext/atomic
    • 命名空间: atomic
    • 描述: 此扩展提供了一种方法,可以以线性且原子方式执行多个“操作”。

配置文件

  • 游标分页
    • URI: https://jsonapi.fullstack.org.cn/profiles/ethanresnick/cursor-pagination
    • 描述: 基于游标的分页(又名键集分页)是一种常见的分页策略,它避免了“偏移量-限制”分页的许多缺陷。