正在尝试学招。为返回
的简单api创建模拟服务器A)一个{id:someid,name:some name}形式的对象
b)这些对象的数组
我的第一部分正在工作,但第二部分将无法工作。谁知道可以在下面查看我的YAML定义吗?
swagger: "2.0"
info:
version: 1.0.0
title: Simple API
description: A simple API to learn how to write OpenAPI Specification
schemes:
- http
host: localhost:8080
basePath: /
这里定义了两个路径,第一个(/ api / dataset)有效,第二个(/ api / datasets)不起作用。
paths:
/api/dataset:
get:
summary: summary
description: desc
responses:
200:
description: dataset
schema:
$ref: '#/definitions/dataset'
/api/datasets:
get:
summary: summary
description: desc
responses:
200:
description: datasets list
schema:
$ref: '#/definitions/datasets'
这些是定义,我怀疑我在这里做错了...
definitions:
dataset:
type: object
properties:
dataset_id:
type: string
name:
type: string
required:
- dataset_id
- name
example:
dataset_id: FunnyJokesData
name: FunnyJokesData
datasets:
type: array
items:
$ref: '#/definitions/dataset'
example:
- dataset_id: example_01
name: example_01
- dataset_id: example_02
name: example_02
- dataset_id: example_03
name: example_03
使用此定义生成存根服务器后,
/api/dataset
具有响应正文:
$ curl -X GET“ http://localhost:8080/api/dataset” -H“ accept:application / json” %总计%接收的%Xferd平均速度时间时间时间当前 Dload上传总花费左速度 100 64 0 64 0 0 4000 0-:-:--:-:--:-:-4000 { “ dataset_id”:“ FunnyJokesData”, “名称”:“ FunnyJokesData” }
但是'/ api / datasets'的curl响应为空:
$ curl -X GET“ http://localhost:8080/api/datasets” -H“ accept:application / json” %总计%接收的%Xferd平均速度时间时间时间当前 Dload上传总花费左速度 0 0 0 0 0 0 0 0-:-:--:-:--:-:-0
我不知道为什么一个有效,而另一个无效。
感谢您的光临
答案 0 :(得分:1)
我想“不起作用”仅适用于Node.js服务器存根,因为两个端点的Python / Flask存根都返回字符串"do some magic!"
而不是JSON。
看起来Swagger Codegen的Node.js生成器不支持数组级example
,这就是为什么相应的响应为空的原因。您可以在以下位置提交错误报告:https://github.com/swagger-api/swagger-codegen/issues。
似乎可以与Node.js生成器一起使用的一种解决方法是改用response examples:
/api/datasets:
get:
summary: summary
description: desc
responses:
200:
description: datasets list
schema:
$ref: '#/definitions/datasets'
examples:
application/json:
- dataset_id: example_01
name: example_01
- dataset_id: example_02
name: example_02
- dataset_id: example_03
name: example_03