首页 > 解决方案 > 通过参数继承 Spring REST 控制器

问题描述

在我们的 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);
    }
}

标签: javaspringspring-mvc

解决方案



推荐阅读