首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何根据OpenAPI 3.0中的path参数来改变requestBody类型?

如何根据OpenAPI 3.0中的path参数来改变requestBody类型?
EN

Stack Overflow用户
提问于 2019-12-08 18:29:01
回答 1查看 547关注 0票数 1

根据Swagger send body and formData parameterOpenAPI 2.0 Specification的规定,在OpenAPI 2.0中,对于同一操作,in: bodyin: formData参数不能同时存在。这事儿可以理解。

但是我使用的是OpenAPI 3.0,我想知道是否有一种方法可以根据路径参数来切换requestBody?当storepath1时,requestBody应对application/json使用content;当storepath2时,requestBody应对multipart/form-data使用content。

代码语言:javascript
运行
复制
  /customs/{store}:
    post:
      description: Customs server calls Nomad to receive the filing result of one
        order
      operationId: post_customs_callback
      parameters:
      - description: ID of the store.
        explode: true
        in: path
        name: store
        required: true
        schema:
          type: string
        style: simple
      requestBody:
        required: true
        content:
          multipart/form-data:
            schema:
              type: object
              properties: # Request parts
                openReq:
                  type: string

#          application/json:
#            schema:
#              type: string
        description: Order details
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-12-10 19:37:45

OpenAPI规范无法根据特定参数值更改请求/响应正文。但是,在您的场景中,您可以使用两个非参数化路径- /customs/path1用于JSON请求,/customs/path2用于多部分请求。

代码语言:javascript
运行
复制
openapi: 3.0.0
...

paths:
  /customs/path1:
    post:
      ...
      requestBody:
        required: true
        content:
          application/json:
            schema:
              ...

  /customs/path2:
    post:
      ...
      requestBody:
        required: true
        content:
          multipart/form-data:
            schema:
              ...
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59234495

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档