api - 在RESTful API请求中指定资源的字段列表的方法

标签 api rest restful-architecture

我在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/

    相关文章:

    javascript - 使用 Web Audio API 使用 OscillatorNodes 演奏和弦

    api - 使用 Flutter 和 Dart 进行翻译

    具有多个主键的资源的 REST API URI

    rest - RESTful 端点的输入 DTO 是否应该与输出 DTO 匹配?

    ruby-on-rails - Rails - json.erb 模板

    javascript - 如何使用 SoundCloud API 添加上一个和下一个按钮

    rest - 使用 cURL 的 Powershell 2.0 POST 请求

    python - 有没有更好的方法来创建 Django REST Web 服务?

    json - 什么是 "representation"、 "state"和 "transfer"在具象状态传输 (REST) 中?

    java - RESTful Web 服务实际上做了哪些 HTTP 编程没有做的事情? RESTful WS的主要用途是什么