如何使用JSON为OpenAPI绘制表

问题描述 投票:2回答:1

我想在JSON文件中创建一个表

  • 我使用Swagger UI(2.0)来描述API。 opneapi.json托管在Gitlab中。
  • Swagger Spec表示GFM语法可用于富文本表示。
  • 表的Gitlab风格Markdown(GFM)语法包括“回车”。
  • 但是JSON没有处理“回车”。

是否有任何解决方法在openapi.json中包含表?

json markdown swagger-ui github-flavored-markdown openapi
1个回答
4
投票

OpenAPI 2.0

OpenAPI 2.0使用GitHub Flavored Markdown,它支持表格的常用Markdown语法,例如:

| One | Two | Three |
|-----|-----|-------|
| a   | b   | c     |

(例子来自this answer

在JSON中,您可以将其写为:

// JSON example
"description": "Sample table:\n\n| One | Two | Three |\n|-----|-----|-------|\n| a   | b   | c     |"

获得JSON的最简单方法是使用http://editor.swagger.io格式化和预览文本,然后将定义下载为JSON。

在YAML中,确保缩进正确(多行文本中的所有行都需要缩进与键名相关):

# YAML example
swagger: '2.0'
info:
  version: 0.0.0
  title: Table demo
  description: |
    Sample table:

    | One | Two | Three |
    |-----|-----|-------|
    | a   | b   | c     |
paths: {}

OpenAPI 3.0

OpenAPI 3.0规范states that工具必须至少支持CommonMark v. 0.27+,并且可能在CommonMark之上支持额外的Markdown语法。

CommonMark本身does not have table syntax,但您可以使用HTML <table>元素作为解决方法:

// JSON example
"description": "Sample table:\n\n<table><tr><td>One</td><td>Two</td><td>Three</td></tr><tr><td>a</td><td>b</td><td>c</td></tr></table>"

而在YAML:

openapi: 3.0.0
info:
  version: 0.0.0
  title: Table demo
  description: |
    Sample table:

    <table>
      <tr>
        <td>One</td>
        <td>Two</td>
        <td>Three</td>
      </tr>
      <tr>
        <td>a</td>
        <td>b</td>
        <td>c</td>
      </tr>
    </table>
paths: {}

也就是说,Swagger UI v.3.22.0+和Swagger Editor v.3.6.27+支持OAS3的GFM表语法(除了CommonMark),因此这些工具的用户可以使用熟悉的Markdown表语法:

# Works in Swagger UI and Swagger Editor
openapi: 3.0.0
info:
  version: 0.0.0
  title: Table demo
  description: |
    Sample table:

    | One | Two | Three |
    |-----|-----|-------|
    | a   | b   | c     |
paths: {}
© www.soinside.com 2019 - 2024. All rights reserved.