gpt4 book ai didi

java - GET 请求使用哪些映射?

转载 作者:行者123 更新时间:2023-11-29 07:27:05 26 4
gpt4 key购买 nike

我对应该代表我的 RESTful 应用程序的 URI 有疑问。我已经阅读了很多关于不同资源的主题,但我仍然不确定我应该如何实现以下情况:

我的 Controller 中有 3 个方法:

List<Books> getAllBooks()
List<Books> getBooksByTitle(String title)
List<Books> getBooksByAuthor(String author)

很明显,我应该为第一种方法选择 "/books" URI,但是如果我映射 "/books/title?""/books/author?" 对于下一个方法,抛出异常“模糊映射”。 "/books/title/""/books/author/" 似乎不是一个好的选择。

我可以建议什么解决方案?

最佳答案

  • GET/book - 获取所有书籍
  • GET/book/{id} - 获取一本具有特定 id
  • 的书
  • GET/book?title={title}&author={author} - 获取给定 titleauthor 的所有书籍

我预测,您可以有更多的搜索选项,所以我更喜欢另一个端点:

  • POST/book/search BODY: {"author": "aaa", "title": "bbb"} - 根据给定的搜索请求获取所有书籍(我们这里使用了body,所以我们不能在这里使用GET,因为GET请求在存活期间可以被网络的任何部分兑现) .

注意: 在我看来titleauthor 不是域对象,因此我不使用像 GET/book/author/{author}GET/book/title/{title} 这样的端点。 但是我不介意为一本书使用端点,例如:

  • GET/book/{id}/author - 获取给定书籍的所有作者
  • GET/book/{id}/title - 获取给定书籍的标题

希望我已经回答了您的问题。

关于java - GET 请求使用哪些映射?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50062371/

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