如何使用JSON for OpenAPI绘制表格

u91tlkcl  于 2023-03-13  发布在  其他
关注(0)|答案(1)|浏览(400)

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

  • 我使用Swagger UI(2.0)来描述API,opneapi.json托管在Gitlab中。
  • SwaggerSpec说GFM语法可以用于富文本表示。
  • Gitlab风格的Markdown(GFM)语法包含一个“回车”。
  • 但是JSON不处理“回车”。

有没有解决方法可以在openapi.json中包含表?

carvr3hs

carvr3hs1#

开放应用程序接口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: 1.0.0
  title: Table demo
  description: |
    Sample table:

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

OpenAPI 3.x

OpenAPI 3.x规范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: 1.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: 1.0.0
  title: Table demo
  description: |
    Sample table:

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

相关问题