简体   繁体   English

Spring rest控制器通过参数继承

[英]Spring rest controller inheritance by params

In our spring rest controller we would like to use the same mappings with different kind of parameters.在我们的弹簧休息控制器中,我们希望使用具有不同类型参数的相同映射。 To do this we created additional functions differentiated by mapping params.为此,我们创建了通过映射参数区分的附加功能。 By doing so we are duplicating the number of functions.通过这样做,我们正在复制函数的数量。 To avoid this I would like to use different controllers that should be loaded based on params values.为了避免这种情况,我想使用应根据参数值加载的不同控制器。

The question is can we问题是我们能不能

@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);
    }
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM