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

Swagger、yaml和json文件,用于在Scala中使用Play框架开发的REST应用程序

田瀚
2023-03-14

我正在尝试为我的应用程序配置swagger。作为这个领域的新手,我去了不同的教程,尝试将下面的json转换为YAML,但它会产生错误,如缩进错误、响应缺失等。我面临的主要问题是识别语法以YAML格式表示列表数组,然后在YAML中添加块,显示特定块的预期值。

要转换为YAML的JSON格式:

  {
       "abc":[
          {
             "xyz":[ //array of list
                {
                   "id":"",
                   "name":"",
                   "relation":[ //array of list
                      {
                         "first":{
                            "xxx":"",
                            "xxx":"",
                            "xxx":[ //array of string
                               ""
                            ]
                         },
                         "second":{
                            "xxx":"",
                            "xxx":"",
                            "xxx":[
                               ""
                            ],
                            "type":""
                         }
                      },
                      {
                         "first":{
                            "xxx":"",
                            "xxx":"",
                            "xxx":[ //array of string
                               ""
                            ]
                         },
                         "second":{
                            "xxx":"",
                            "xxx":"",
                            "xxx":[
                               ""
                            ],
                            "type":""
                   }
                }
             ],
             "rows":[

             ]
          }
       ]
    }

YAML如下:

    swagger: "2.0"
    info:
      version: 1.0.0
      title: xxxx
      description: xxxx
    schemes:
      - https
    host: xxxx
    basePath: xxxx
    paths:
      /xxx:
        post:
         summary: xxxx
         consumes:
            - application/json
         produces:
            - application/json
         parameters:
    abc:
        - xyz:
            id: string
            name: string
            relation: string
        - first:
            id: string
            name: string
            relation: string
          second:
             id: string
            name: string
            relation: string
        - first:
            id: string
            name: string
            relation: string
          second:
            id: string
            name: string
            relation: string

    responses:
            '200':
              description: Created

共有1个答案

於英朗
2023-03-14

使用 YAML 时,您谈论的是序列(除了映射标量)。序列是映射到Python中的列表和其他一些语言中的数组的内容。

所以,如果你说的是“表示YAML列表的数组”,你实际上指的是一系列的序列。在YAML有三种方式来表达这一点。

块样式中的块样式:

- - a
  - b
- - c
  - d

即,块样式中的流样式:

- [a, b]
- [c, d]

,或flow样式中的flow样式:

[[a, b,], [c, d,],]

任何在线YAML解析器都会向您显示上述内容是相同的。

请注意:

  • 流样式中不能有块样式。
  • 您可以使用尾随逗号(JSON不允许这样做,这使得JSON不必要地难以编辑)

在您的示例YAML输出(正确的YAML)中,没有序列序列(或术语中的列表数组)。

 类似资料:
  • 一个应用程序开发框架。作者实现了很多控件效果,方便其他开发者各取所需。所实现的效果包括:打分星星、响应点击动作、旋转按钮效果、根据文字多少改变大小的UILabel等等效果。 [Code4App.com]

  • 我创建了yaml文件(openapi 3.0.0格式)作为API的文档。我想在应用程序运行的URL处显示这个(静态)swagger-ui yaml文件。类似于http://localhost:8080/swagger-ui。其中显示了yaml文件的图形表示(与此处相同)。Yaml文件放在Project的根文件夹中。 我在Java11,springboot 2.1.5上运行应用程序,用Maven构建

  • 我正在使用Play框架1.2.5和Hibernate3.25来开发我的Web应用程序。我遇到应用程序启动问题,速度很慢:( 对于任何JavaEE servlet驱动的应用程序,我们使用来初始化会话工厂(这确实是一项耗时的工作),一旦部署了应用程序,会话工厂就会被初始化,并且所有这一切都必须在应用程序准备好为最终用户使用之前完成。这样,当用户触发第一个请求时,第一个请求的响应时间更快。 但是,对于P

  • 问题内容: 我有一个用Swift编写的应用程序(简称MyApp),其目标如下: :主要目标 :一个目标,用于为应用及其扩展程序(主要是API后端和数据库处理)之间共享的代码构建框架 :使用框架的Today View小部件(或现在称为的小部件)。 该框架链接到使用它的每个目标,即和。输入Cocoapods:我以前具有以下Podfile结构: 这里的目的是仅将框架公开给其他部分,而不是将其所有pod

  • 使用Django REST框架的通用,我创建了一个我认为应该能够通过POST请求上传照片的终端。 到目前为止,我尝试使用Android和curl将文件发布到此endpoint,并观察到相同的行为:创建了一条新记录,但没有附加该文件。因为该文件是必填字段,服务器然后返回500错误。 这个问题看起来很相似,但是他没有使用REST框架的通用视图,我不知道为什么...我想在适当的时候利用它们。 这是我的D

  • 如果我错了,请纠正我,我需要使用一个抽象层的公共服务,对吗?例如,如果我需要使用IAP,我需要一个包装器类来决定使用GMS或HMS,这取决于设备类型。如果我这样做,我需要这样的东西: > 需要一个接口,该接口需要在HmsIAP和GmsIAP类上实现,用于requestProduct方法、PurchaseMethod等常见方法。等 创建这些类并管理要使用的类的父类。这将称为“Appiap”类。逻辑层