首页 > 解决方案 > Restful:同一资源的多个案例(相同的 api 端点?)

问题描述

例如,我有两个创建用户的场景:

问题是它是同一个资源,一个用户。但是根据调用 api 的人(在哪里),预期的行为会有所不同。

在一种情况下,DTO 应该包含用户发布的密码,在另一种情况下则不应该。

我该怎么办 ?

我不确定如何正确执行此操作。

谢谢

标签: angularspringrestdto

解决方案


这种情况的最佳策略是在请求的标头中传递一个属性。使用此信息,您可以使用该属性创建 2 个端点来引导请求。

前任:

@PreAuthorize("hasRole('ROLE_USER')")
@PostMapping(headers = "X-YOUR-ORIGIN=user")
public ResponseEntity createUserByUser(){
   ...
}

@PreAuthorize("hasRole('ROLE_ADMIN')")
@PostMapping(headers = "X-YOUR-ORIGIN=admin")
public ResponseEntity createUserByAdmin(){
   ...
}

推荐阅读