gpt4 book ai didi

api - 在 REST API 设计中以多种方式处理集合项

转载 作者:行者123 更新时间:2023-12-04 07:22:45 24 4
gpt4 key购买 nike

我们的 API 设计中有一个资源集合,可以通过多种方式解决。例如说这些是书。


姓名
ISBN
ISSN
颜色



1
2
蓝色

酒吧
4
5
黑色的

巴兹
7
8
棕色的


书籍可以通过 ISBN、ISSN 进行唯一寻址,名称和颜色也是非唯一索引。我们如何对 REST API 进行建模,以允许对可以以多种方式指定的书籍集合/项目进行 PATCH 操作?
例如,我们可能希望客户通过以下任何一种方式来处理书籍

  • 按书名
  • 按书色
  • by book ISBN
  • 按书名和颜色

  • 如何在不创建多个端点的情况下执行此操作?

    最佳答案

    我会区分标识符和过滤器。 ISBN 和 ISSN 是标识符,因为它们是唯一的。所有非唯一的都是过滤器。标识符应该有自己的端点。这就是 ReST URL 的作用:唯一标识资源。

    /books/isbn/{id}
    /books/issn/{id}
    这两本书都保证返回一本关于成功的书。剩余的字段可以组合成第三个端点。
    /books?name=foo&color=blue&author=you
    这个返回一个集合。
    在 PATCHing 方面,这三个都可以调用相同的服务方法来做到这一点。第三个端点将迭代其结果以重复调用 PATCHing 逻辑。
    这确实意味着如果添加主键,端点的数量会增加。我认为这仍然是 ReSTful。

    关于api - 在 REST API 设计中以多种方式处理集合项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68392552/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com