AWS Api网关文档 - 无法创建架构

时间:2018-01-15 17:07:22

标签: aws-api-gateway swagger-ui swagger-2.0

今天,我开始大摇大摆地挥洒着ui来创建API的文档。

我们正在使用带有Lambda函数的AWS API Gateway,因为AWS正在使用内置选项来提供我们将要使用的文档。

可悲的是,我对这个选项很有限,或者我做错了。

作为一个例子

responses:
 '200':
   description: 200 response
   schema:
     $ref: '#/definitions/Empty'

我无法创建替代架构,也无法编辑现有的/Empty架构。

我的问题有解决方案吗?

例如

...不使用架构并在那里写完整个响应?

...告诉我如何创建替代架构?

修改

对我来说,这似乎是一个AWS问题,而不是我的通用文件。如果有人读过这篇文章,我会添加更多信息。

如果我使用“创建文档部分”并不重要 - > Type = Response(Body)或者我去Ressources - >我想设置Response(Body)的方法 - >方法响应并将Respone Body设置为Modell。

我的Modell看起来像这样

{
 {
  "$schema": "http://json-schema.org/draft-04/schema#",
  "description" : "Example Promotion",
  "title" : "Promotion",
  "type" : "object",
  "properties" : {
    "Status" : { "type" : "string"}
  }
 }
}

它没有给我任何错误,但是如果我转到“发布文档”,似乎没有把Respone(Body)设置在方法响应部分的swagger.json中,也不放在最后的Defenitions上。文件并将架构路径设置为正确。

1 个答案:

答案 0 :(得分:1)

我发现在开始时不使用$ ref更容易。在掌握了如何编写请求或响应定义之后,您可以使用$ ref轻松转换为引用模式。

架构声明之后会发生什么?这取决于您期望返回的内容 - 文本,数组,JSON对象或JSON对象数组等。通常它是后两者。所以这是每个例子。

schema:
  type: object
  description: This is a JSON object
  properties:
    fullName:
      type: string
    age:
      type: number

定义:{fullName:" Jane Smith",age:30}

schema:
  type: array
  description: This is an array of JSON object
  items:
    type: object
    properties:
      carMake:
        type: string
      carModel:
        type: string

定义:[{carMake:" Ford&#34 ;, carModel:" Mustang" } ...]

将github的swagger-ui克隆到您的计算机上并将其作为本地服务器运行。或者您可以免费使用SwaggerHub,如果您不介意将API定义公开(或者在试用期后,将您的API付费为私有)。

多年来规范发生了变化,因此了解您是在处理swagger v2还是openapi v3非常重要。 www.swagger.io有一个很好的多页教程。您可以在SwaggerHub网站上找到几个公共API示例。我不适用于Smartbear,它是原始的swagger spec和swaggerhub工具的创始人,但我发现它们在过去非常有帮助。他们的一些工作人员监控这个网站并回答问题。

祝你好运!