JsonAPI资源ID建议

时间:2017-02-07 18:27:38

标签: json web-services rest api

This页面说明,对于“id”的JSONAPI推荐类型是字符串。

identification

Every resource object MUST contain an id member and a type member. The values of the id and type members MUST be strings.

将它保持为字符串可以得到什么?换句话说,如果某些情况下ID只是数字,是否仍建议将它们保留为字符串?

1 个答案:

答案 0 :(得分:1)

他们不是在试图迎合'某些'案件。他们试图提出一个API框架,允许客户灵活地使用API​​。特别是,如果客户端符合此规范,那么它就可以开始处理任何符合要求的API实现。关键的想法是可移植性。它们都是关于描述API之间的共同特征。

现在,没有太多东西可以肯定对资源说什么,因为资源是给API一个目的的东西,但是(或许)知道哪个(或许)很重要你见过的资源以及它的类型。它们是任何API消费者都需要的信息(争论如下)。一旦你确定它们需要共同,你需要一个通用的JSON数据类型(因为整数看起来与JSON中的字符串不同)。

JSONAPI格式的设计使得一个编写良好的客户端可以实际处理多个不同的API,几乎不做任何改动。只有当它能够区分对客户端本身进行处理的重要事项与客户传递给第三方的重要事项(例如在UI中显示或操作的内容)时,它才能做到这一点。

在规范中,它还讨论了类型和id如何组合在一起,形成资源本身内任何字段的命名空间。因此,对于客户端以任何有意义的方式使用该信息,它需要知道id和type字段的类型。

最终,JSONAPI规范的编写者已经说过id和type字段在资源/ API本身中无论的值是什么,都是普遍有用的。因此,无论对任何单个API有何意义,它们都需要具有相当明确定义的语义。字符串和整数表现不同,因此您需要做出选择。并且字符串在API之间更加灵活,因此他们已经进行了调用。他们可能已经选择了整数,但他们可能认为在人们确实想要String作为id的情况下会有点限制。