0

在我们的 spring rest 控制器中,我们希望使用具有不同类型参数的相同映射。为此,我们创建了通过映射参数区分的附加函数。通过这样做,我们复制了函数的数量。为避免这种情况,我想使用应根据参数值加载的不同控制器。

问题是我们能不能

@RequestMapping(value = "/v1")
@RestController
public class Controller { 
    @PostMapping(value = "/event-calendar", params = {"externalToken", "event_type"})
    public ResponseEntity createEntityOfTypeToken(@RequestHeader(name = "X-Application-Authentication") String externalToken,
                                                  @RequestParam(value = "event_type") String eventType) {

        MyEntity entity = service.createEntityOfType(
                userService.getTokenService(externalToken).getDeviceSerialNumber());
        return new ResponseEntity<>(entity, HttpStatus.OK);
    }

    @PostMapping(value = "/event-calendar", params = {"serialId", "event_type"})
    public ResponseEntity createEntityOfTypeSerial(@RequestParam(value = "serialId") String serialId,
                                                   @RequestParam(value = "event_type") String eventType) {

        MyEntity entity = service.createEntityOfType(serialId);
        return new ResponseEntity<>(entity, HttpStatus.OK);
    }
}
4

1 回答 1

1

请参考

为具有不同参数的相同 url 模式创建两个方法

Spring - 是否可以在 post 方法的请求映射中提供相同的 url?

PS 积分不够评论

于 2019-11-28T12:39:46.297 回答