我可以在其他地方而不是在方法调用中使用 Request Header 吗?

Can I use the Request Header somewhere else but not in method call?

是否可以在方法参数列表之外的其他任何地方设置@RequestHeader 注释?下面你可以看到我的代码:

@ApiOperation("Gather all details of a specific device, identified by its ID")
@ApiResponses(value = {
        @ApiResponse(code = 200, message = "OK", response = DeviceResource.class),
        @ApiResponse(code = 404, message = "Device not found", response = VndErrors.class),
        @ApiResponse(code = 500, message = "Printer shell execution error", response = VndErrors.class)
})
@GetMapping("/{id}")
public ResponseEntity<DeviceResource> getDeviceById(
        @ApiParam(value = "ID of the device", required = true)
        @PathVariable String id,
        @RequestHeader(name = "X-NANO-APIKEY") String auth
) {
    return ResponseEntity.ok(new DeviceResource(deviceAccessor.getDeviceById(id)));
}

问题是我也使用该方法进行其他调用,所以我必须在这种情况下设置 header。但我不想设置它。我只需要在 swagger-ui 中设置它。感谢您的帮助。

您也可以从 HttpServletRequest Object 检索请求 header。

public ResponseEntity<DeviceResource> getDeviceById(
@ApiParam(value = "ID of the device", required = true)
@PathVariable String id,
HttpServletRequest request
) {
String auth = request.getHeader("X-NANO-APIKEY");
}

希望对您有所帮助。