我正在为一个看起来像这样的搜索功能设计一个 RESTful API:
http://example.com/books/?author=John+Smith&title=Brain+Surgery+For+Dummies
查看此 URI,我不立即知道客户端正在执行这两个查询:
a) John Smith 的所有书籍,以及所有题为“脑外科傻瓜”的书籍
b) 约翰·史密斯 (John Smith) 撰写的所有版本的“傻瓜脑外科手术”。
我该如何重新设计我的 URI 以使其更加明确?
我正在为一个看起来像这样的搜索功能设计一个 RESTful API:
http://example.com/books/?author=John+Smith&title=Brain+Surgery+For+Dummies
查看此 URI,我不立即知道客户端正在执行这两个查询:
a) John Smith 的所有书籍,以及所有题为“脑外科傻瓜”的书籍
b) 约翰·史密斯 (John Smith) 撰写的所有版本的“傻瓜脑外科手术”。
我该如何重新设计我的 URI 以使其更加明确?
正如我从示例中了解到的那样,“作者”是一种资源:
http://example.com/books/authors/John+Smith
或者
http://example.com/books/authors/john-smith
在作者的图书收藏中搜索图书
http://example.com/books/authors/John+Smith?title=Brain+Surgery+For+Dummies
或者
http://example.com/books/authors/john-smith?title=Brain+Surgery+For+Dummies
在图书收藏中搜索图书:
http://example.com/books?title=Brain+Surgery+For+Dummies
在任何一种情况下搜索都意味着不知道该书的确切名称/标题,并且搜索可能会返回多个项目,尽管特定的书本身也是一种资源。在这种情况下,您需要为书定义 URI:
图书资源:
http://example.com/books/brain-surgery-for-dummies