使用关系创建REST端点的正确方法是什么

Ale*_*sta 7 rest web-services

我想创建一些端点来检索每个国家/地区的异常,startTime和endTime,但我不知道构建端点的正确方法是什么,我一直在与我的同事交谈,我们对如何做到这一点有不同的意见:

选项1路径参数

  • / countries/{countryCode}/exceptions?startTime = {value}&endTime = {value} :在特定时间范围内获取每个国家/地区的所有例外情况

  • / countries/*/exceptions?startTime = {value}&endTime = {value} :获取特定时间范围内的所有异常

选项2查询参数

  • / exceptions?country = {countryCode}&startTime = {value}&endTime = {value}:在特定时间范围内获取每个国家/地区的所有例外情况

  • / exceptions?startTime = {value}&endTime = {value} :获取特定时间范围内的所有异常

选项3路径参数以不同的顺序排列

  • / exceptions/countries/{countryCode}?startTime = {value}&endTime = {value}:在特定时间范围内获取每个国家/地区的所有例外情况

  • / exceptions?startTime = {value}&endTime = {value}:获取特定时间范围内的所有异常

所有3个选项都有利有弊,但我们不同意哪个是最佳做法.问题是创建这些端点的最佳选择是什么.

cas*_*lin 3

如果例外需要一个国家存在,即例外是国家的子资源,请考虑:

/countries/{countryCode}/exceptions?startTime={value}&endTime={value}
Run Code Online (Sandbox Code Playgroud)

否则,您可以将异常作为单独的资源进行管理:

/exceptions?country={countryCode}&startTime={value}&endTime={value}
Run Code Online (Sandbox Code Playgroud)