REST API url和参数命名与Spring Boot?



对于Spring Boot项目,我看到了一些不同的用法,我想澄清以下几点。

1 -据我所知,以下使用kebab-case的url比camelCase更好。这是真的吗?

@RequestMapping("/api/v1/fraud-check")

2 -另一方面,如果我们使用参数,那么我认为最好在url中使用camelCase,如下所示(注意,我只对参数使用camelCase,其余的(security-check)是kebar -case)。这是一个正确的用法吗?

@GetMapping("/security-check/{customerId}/{jobId}")
public ResponseEntity<List<Customer>> getCustomerByDepartmentIdAndJobId(
@PathVariable int customerId,
@PathVariable int jobId
) {
}

另一方面,在某些情况下,两个参数都是相同的类型,例如getById()getByReferenceNumber()。在这种情况下,不能使用以下url映射:

@GetMapping("/{userId}")

@GetMapping("/{referenceId}")

在这种情况下,添加一个额外的形参('references')来引用一个形参是不是一个好的做法,如下所示:

@GetMapping("/references/{referenceId}")

你有什么建议吗?

你关于大小写的观点是完全有效的,它与api的一般编写方式很好。

我们有一篇很棒的文章,将帮助您开始了解REST api的最佳实践:https://stackoverflow.blog/2020/03/02/best-practices-for-rest-api-design/

关于端点的最终用例的最后:

@GetMapping("/references/{referenceId}")

这是非常主观的,将取决于您的用例。例如,添加"引用"还将取决于你的类级requestmapping字符串,该字符串表示控制器类的域。

假设我有一个专门为参考编写的控制器,我可以这样做:

@RequestMapping("/api/v1/reference")
@Controller
class ReferenceController {
@GetMapping("/{id}")
... getReferenceById (@PathVariable int id) {}
}

希望这一点澄清和帮助。谢谢。

相关内容

  • 没有找到相关文章

最新更新