我正在为搜索功能设计RESTful API,如下所示:
http://example.com/books/?author=John+Smith&title=Brain+Surgery+For+Dummies
查看此URI,我不会立即知道客户端正在执行哪两个查询:
a)约翰史密斯的所有书籍,以及所有题为“傻瓜脑外科手术”的书籍
b)约翰史密斯撰写的所有版本的“傻瓜脑手术”。我如何重新设计我的URI以使其更明确?
答案 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