Simple Swagger.v2 array definition not responding
我正在努力学习招摇。为返回
的简单 api 创建一个模拟服务器
A) {id: someid, name: some name}
形式的对象
b) 这些对象的数组
我有第一部分工作,但第二部分将无法工作。知道的人可以看看我下面的 YAML 定义吗?
1 2 3 4 5 6 7 8 9 10 11 | 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)无效。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | 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' |
这些是定义,我怀疑我在这里做错了...
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | 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 |
使用此定义生成Stubbing服务器后,curl 响应
$ curl -X GET"http://localhost:8080/api/dataset" -H "accept: application/json"
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 64 0 64 0 0 4000 0 --:--:-- --:--:-- --:--:-- 4000{
"dataset_id":"FunnyJokesData",
"name":"FunnyJokesData"
}
但 \\'/api/datasets\\' 的 curl 响应为空:
$ curl -X GET"http://localhost:8080/api/datasets" -H "accept: application/json"
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0
我不明白为什么一个有效而另一个无效。
感谢收看
我猜"不会工作"只适用于 Node.js 服务器Stubbing,因为 Python/Flask Stubbing为两个端点返回字符串
看起来 Swagger Codegen 的 Node.js 生成器不支持数组级别的
似乎与 Node.js 生成器一起使用的一种解决方法是改用响应示例:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | /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 |