当前位置: 首页 > 知识库问答 >
问题:

如何在swagger json中放置标头信息

章绪
2023-03-14

我按照 swagger 文档中的以下链接为我的 rest api 创建了 swagger json。

https://swagger . io/docs/specification/2-0/descripting-request-body/

在我的 rest API 中,我有与服务请求一起的请求正文和 http 标头,如内容类型和授权。

我想知道是否有办法在swagger json中包含请求正文和超文本传输协议标头信息?我在swagger文档中没有看到该信息。

共有1个答案

尚阳炎
2023-03-14

请求和响应的Content-Type头分别由消耗 keywords定义。它们可以在规范的操作级别或根级别上指定。

Authorization头是使用securityDefinition 关键字定义的。OpenAPI/Swagger 2.0支持基本身份验证、API密钥和OAuth 2。

其他标头可以定义为:标头参数。

例如,如果一个操作POST JSON并使用Basic auth,您可以如下描述:

swagger: '2.0'
...

securityDefinitions:   # Authorization, part 1
  basicAuth:
    type: basic

paths:
  /something:
    post:
      summary: POST some JSON
      consumes:
        - application/json  # Request Content-Type
      produces:
        - application/json  # Response Content-Type
      security:
        - basicAuth: []     # Authorization, part 2
      parameters:
        - in: body
          name: body
          required: true
          schema:
            $ref: '#/definitions/Something'
      responses:
        200:
          description: OK

相关留档:
MIME类型
身份验证
描述参数

 类似资料:
  • 我是新的放心,我试图做一个非常基本的测试来检查响应体和状态。我在这个API调用中按要求传递头部,但当我运行测试时,我得到了401个未经授权的消息,而不是在响应体中显示结果。当我使用Postman运行相同的API时,它的工作很好 下面是我得到的控制台消息,其中显示401 响应发送=>io.restassured.internal.restassuredresponseImpl@18cebaa5响应正

  • 我使用的是Apache camel 2.15.1版本。在本文中,我将servlet组件用于rest dsl。我的简单路线如下所示 我需要设置Cache-Control和Pragma头以进行响应。 但是骆驼忽略了这一点。我看了几个其他人的博客,建议使用自定义的HeaderFilterStrategy。我也尝试过这个。没有帮助。 https://access.redhat.com/documentat

  • 缓存-控制:私有内容-编码:gzip内容-长度:6544内容-类型:text/html;Charset=UTF-8日期:周二,2014年5月13日14:19:52格林威治时间ETAG:13.05.2014年17:01:02服务器:Microsoft-IIS/8.0变化:接受-编码X-ASPNET-版本:4.0.30319 X-ASPNETMVC-版本:4.0 x-Power-by:ASP.NET

  • 问题内容: 我正在尝试使用XMLHttpRequest在XSS请求中设置Cookie。 我找到了XMLHttpRequest规范,并且4.6.2-5节似乎确实建议不允许设置Cookie,Cookie2和其他一些标头,但我希望可以解决这一问题。 我的(jQuery)代码如下,但是由于未设置cookie,导致查询失败。 问题答案: 可以做到的。$ .ajax调用中需要以下内容: (请参阅jQuery文

  • 我使用的API使用授权方案,该方案需要设置特殊的“X-Authoration”标头来验证请求。例如,此Retrofit设置非常适合身份验证令牌为的用户: 我缓存了用户的X-Authorization令牌,所以我可以访问它,但是,我不能在@Headers声明中删除它。 我在这里得到一个编译错误: 有什么办法可以绕过这个吗?

  • 问题内容: 使用以下示例代码: 我们想用上面的代码在column_names中设置带有列名的标头,但是它不起作用。尽管正在创建表,但标题不可见。 问题答案: 为了能够看到标题,您应该将表放在JScrollPane中。 或者,如果您确实不希望使用滚动窗格,则可以将tableHeader专门添加到面板中(但是:通常,您不希望这种行为):