我在Web服务中拥有RESTful API,其中包含用户,帖子等某种资源。当我请求帖子列表(GET / posts)时,我只想检索每个帖子的数据减少了部分的帖子数组(即主题,作者姓名)。当我请求具体帖子(GET / posts / 42)时,我想检索帖子对象字段的完整列表,包括大型帖子正文,有关喜欢计数,评论计数的其他信息。
我想有很多方法可以解决这个问题。在我看来,最明显的3个是:
(/ posts?fileds = subject,author_name和
/ posts / 42?fields = subject,body,createaAt,author_name,comments_count,likes_count等)。
字段列表。
如果所需的字段设置与默认值不同,则从(到)默认字段设置为(或包括)。
我该如何为客户构建清晰实用的API。我应该选择哪种方式?
最佳答案
我会选择选项2恕我直言。
因此,如果使用者仅请求资源url(/posts/42
),他们将收到默认字段。
然后,使用者可以通过在查询字符串中定义值来更改默认响应,例如:/posts/42/fields?subject,author_name
过去,这对我来说效果很好,也是其他一些众所周知的API的工作原理,例如Facebook
编辑:回顾一下,我将请求更改为:/posts/42?fields=subject,author_name
/post/42
是资源,而不是字段。
关于api - 在RESTful API请求中指定资源的字段列表的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18235546/