在设计RESTful API时如何正确公开布尔搜索函数?

时间:2011-12-08 05:22:50

标签: api rest restful-url

我正在为搜索功能设计RESTful API,如下所示:

http://example.com/books/?author=John+Smith&title=Brain+Surgery+For+Dummies

查看此URI,我不会立即知道客户端正在执行哪两个查询:

a)约翰史密斯的所有书籍,以及所有题为“傻瓜脑外科手术”的书籍

b)约翰史密斯撰写的所有版本的“傻瓜脑手术”。

我如何重新设计我的URI以使其更明确?

1 个答案:

答案 0 :(得分:1)

据我所知,“作者”是一个资源:

http://example.com/books/authors/John+Smith

OR

http://example.com/books/authors/john-smith

作者图书集中的搜索书

http://example.com/books/authors/John+Smith?title=Brain+Surgery+For+Dummies

OR

http://example.com/books/authors/john-smith?title=Brain+Surgery+For+Dummies

书籍收藏中的搜索书:

http://example.com/books?title=Brain+Surgery+For+Dummies

在任何一种情况下搜索都意味着书的确切名称/标题是未知的,搜索可能会返回多个项目,尽管特定书本身也是一种资源。在这种情况下,您需要为book定义URI:

图书资源:

http://example.com/books/brain-surgery-for-dummies