如何为其余部分建模 API URL
How to model the Rest API URL
有一个代表一本书的模型。
class Book {
String author;
String isbn;
String releaseDate;
}
我想创建一个 API returns 列表 isbn
的图书,其发布日期是用户提供的。这个 URL 应该是什么样子?
What how this URL should look like?
URL可以随便看,只要符合RFC 3986中定义的生产规则即可。
您可能需要 范围 的资源标识符,其中资源仅因发布日期而异。这表明您想要使用可以使用 URI template.
描述的标识符模式
如果用户使用 Web 浏览器与您的资源进行交互,那么您可能希望 URI 以 HTML 表单期望的方式工作,并将 application/x-www-form-urlencoded 键值对作为查询部分。
对于长期存在的资源,您需要不需要更改的 URI - 请参阅此 guidance from TBL in 1998
但除了像这些简单的机械规则之外,机器不关心你使用什么拼写约定——所以你应该选择让你关心的一些人的生活更轻松的拼写(即:选择一个符合OPS 需要审查 HTTP 访问日志,或选择易于记录的拼写,或选择在浏览器历史记录中易于识别的拼写....)
对于发布日期部分,您可能希望日期字段与 ISO 8601 格式之一相匹配;例如,请参阅 java.time.format.DateTimeFormatter.
的文档
如果 HTML 用例很重要,请务必查看 date inputs。
考虑到您正在使用 spring
和 rest
所以我的想法是:
@RestController(value="/getBooks")
public class Controller{
..
@GetMapping(value="/getIsbn")
public List<String> getIsbn(@RequestParam String releaseDate){
..
}
}
你的 URL 看起来像(考虑到你正在解析 YYYY-MM-DD
日期格式) GET
:
https://<your context root>/getBooks/getIsbn&releaseDate=2022-05-03
有一个代表一本书的模型。
class Book {
String author;
String isbn;
String releaseDate;
}
我想创建一个 API returns 列表 isbn
的图书,其发布日期是用户提供的。这个 URL 应该是什么样子?
What how this URL should look like?
URL可以随便看,只要符合RFC 3986中定义的生产规则即可。
您可能需要 范围 的资源标识符,其中资源仅因发布日期而异。这表明您想要使用可以使用 URI template.
描述的标识符模式如果用户使用 Web 浏览器与您的资源进行交互,那么您可能希望 URI 以 HTML 表单期望的方式工作,并将 application/x-www-form-urlencoded 键值对作为查询部分。
对于长期存在的资源,您需要不需要更改的 URI - 请参阅此 guidance from TBL in 1998
但除了像这些简单的机械规则之外,机器不关心你使用什么拼写约定——所以你应该选择让你关心的一些人的生活更轻松的拼写(即:选择一个符合OPS 需要审查 HTTP 访问日志,或选择易于记录的拼写,或选择在浏览器历史记录中易于识别的拼写....)
对于发布日期部分,您可能希望日期字段与 ISO 8601 格式之一相匹配;例如,请参阅 java.time.format.DateTimeFormatter.
的文档如果 HTML 用例很重要,请务必查看 date inputs。
考虑到您正在使用 spring
和 rest
所以我的想法是:
@RestController(value="/getBooks")
public class Controller{
..
@GetMapping(value="/getIsbn")
public List<String> getIsbn(@RequestParam String releaseDate){
..
}
}
你的 URL 看起来像(考虑到你正在解析 YYYY-MM-DD
日期格式) GET
:
https://<your context root>/getBooks/getIsbn&releaseDate=2022-05-03