java - Swagger - 如何使用相同的 http 方法和路径但内容类型不同的多个操作?
问题描述
如主题。我想在 swagger 中使用相同的路径和 http 方法但具有不同的内容类型进行不同的操作。示例:我目前在 2.0.5 版本中使用 Spring Boot,在 2.9.2 版本中使用 Swagger ui。在我的 API 中,我有两种注册用户的方法:
@RequestMapping(method = RequestMethod.POST, consumes = "application/customer+json", produces = MediaType.APPLICATION_JSON_VALUE)
@ApiOperation(value = "Registers a new application customer", notes = "Registers a new application customer.\n", response = CustomerResource.class)
@ApiResponses(value = {
@ApiResponse(code = 201, message = "Customer successfully registered"),
@ApiResponse(code = 409, message = "User with such email is already registered"),
@ApiResponse(code = 422, message = "Customer registration request contains validation errors. Response contains detailed field validation error message"),
@ApiResponse(code = 428, message = "Database error. Application log needs to be checked")})
public ResponseEntity<UserResource> registerCustomer(
@ApiParam(value = "Model representation of the transferred data to register a new customer") @Valid @RequestBody CustomerDto customerDto,
UriComponentsBuilder uriComponentsBuilder, BindingResult bindingResult)
{
...
}
和
@RequestMapping(method = RequestMethod.POST, consumes = "application/partner+json", produces = MediaType.APPLICATION_JSON_VALUE)
@ApiOperation(value = "Registers a new application partner", notes = "Registers a new Easy Parking partner.\n", response = PartnerResource.class)
@ApiResponses(value = {
@ApiResponse(code = 201, message = "Partner successfully registered"),
@ApiResponse(code = 409, message = "User with such email is already registered"),
@ApiResponse(code = 422, message = "Partner registration request contains validation errors. Response contains detailed field validation error message"),
@ApiResponse(code = 428, message = "Database error. Application log needs to be checked")})
public ResponseEntity<UserResource> registerPartner(
@ApiParam(value = "Model representation of the transferred data to register a new user") @Valid @RequestBody PartnerDto partnerDto,
UriComponentsBuilder uriComponentsBuilder, BindingResult bindingResult)
{ ... }
我想要一个 POST 路径:/api/users 来注册两种类型的用户:客户和合作伙伴。需要两个操作,因为合作伙伴的属性与客户的属性略有不同。我想使用内容类型(消耗)进行不同的操作,但招摇似乎只适用于路径和 http 方法。不是bug吗??有没有办法在 Spring Boot Swagger 中配置它?
解决方案
推荐阅读
- php - 验证输入字段中的值是否是 Blade.php 中的 Instagram URL
- r - 按功能滚动申请,按组不能工作
- python - Python网页抓取Zacks网站错误:[WinError 10054]一个现有的连接被远程主机强行关闭
- sql - 为指向同一个表的两个 id 字段显示两个链接值
- jsonschema - 顶级 JSON-SCHEMA 任意名称
- webpack - 运行 ng build --prod 时无法读取未定义的属性“替换”
- zabbix - zabbix如何监控服务器打开文件的数量
- r - 在R中使用ggplot填充行之间的区域
- ag-grid - Ag-Grid React:行闪存而不是单元闪存
- r - 在 Visual Studio Code 中为 R 定义键绑定