我正在为REST API做一个适配器.我已经将模型架构用于POST和PUT方法的主体.@RequestBody Model1 requestBody在适配器.
现在,我遇到body了需要数组的字段.
Swagger UI 正文输入
时间1)在Swagger负载上,模型启动:
{
"field1" : "",
"field2Optional" : "",
"fieldArray" : [
{ "field2a" : "input2a" }
]
}
Run Code Online (Sandbox Code Playgroud)
时间2)用户编辑:
{
"field1" : "input1",
"field2Optional" : "",
"fieldArray" : [
{ "field2" : "input2a" },
{ "field2" : "input2b-userAddition " }
]
}
Run Code Online (Sandbox Code Playgroud)
Model1.groovy
@XmlElement
String field1 = ''
@XmlElement
String fieldOptional = ''
@XmlElement
ArrayList<Model2> fieldArray = new ArrayList<>( Arrays.asList(new Model2()) ).get(0)
}
Run Code Online (Sandbox Code Playgroud)
Model2.groovy …
我正在使用Swagger Edtior为API生成客户端scala代码.我粘贴了json然后做了一个Generate Client/Scala.它给了我一个默认的root包
io.swagger.client
我看不出任何明显的方法来指定不同的东西.可以这样做吗?
我想向引用其定义的对象属性添加描述。像这样:
newCreditCard:
type: object
properties:
billingPhone:
description: Phone number of the card holder
$ref: "#/definitions/PhoneNumber"
Run Code Online (Sandbox Code Playgroud)
但是编辑器警告说description属性将被跳过:
Extra JSON Reference properties will be ignored: description
Run Code Online (Sandbox Code Playgroud)
我发现了一种不太优雅的解决方法,该方法适用于编辑器,但不适用于Swagger UI(不确定这可能是由于Swagger UI的3.0.2版本最近进行了更新)
newCreditCard:
type: object
properties:
billingPhone:
description: Phone number of the card holder
allOf:
- $ref: "#/definitions/PhoneNumber"
Run Code Online (Sandbox Code Playgroud)
您如何在Swaggers规范中做到这一点?
谢谢您的帮助!
有没有办法记录以下查询?
GET api/v1/users?name1=value1&name2=value
Run Code Online (Sandbox Code Playgroud)
其中查询参数名称是动态的,将从客户端接收.
我正在使用最新的Swagger API.
我的规范有一个带有 200 响应代码的路径,该响应代码可以访问多个内容类型,我想将 Content-Disposition 标头添加到这些内容类型之一。
这是一个示例:
openapi: '3.0.3'
info:
...
servers:
...
paths:
/examples:
...
get:
...
responses:
'200':
content:
application/json:
...
application/pdf:
encoding:
file:
headers:
Content-Disposition:
schema:
type: string
example: attachment; filename="name.pdf"
examples:
file:
summary: File
externalValue: https://www.w3.org/WAI/ER/tests/xhtml/testfiles/resources/pdf/dummy.pdf
Run Code Online (Sandbox Code Playgroud)
这是生成的视图:
这是添加标头的示例(对于另一个端点)
responses:
'201':
description: Success
headers:
Location:
schema:
type: string
format: uri
description: The URI to the newly created example
Run Code Online (Sandbox Code Playgroud)
这是生成的视图:
难道我做错了什么?
生成Nodejs代码使用editor.swagger和在体内我想发送10mb但无法发送,我收到此错误:
Error: request entity too large
at makeError (c:\apigee\dojo\nodeServer_2\node\node_modules\swagger-tools\node_modules\body-parser\node_modules\raw-body\index.js:154:15)
at readStream (c:\apigee\dojo\nodeServer_2\node\node_modules\swagger-tools\node_modules\body-parser\node_modules\raw-body\index.js:188:15)
at getRawBody (c:\apigee\dojo\nodeServer_2\node\node_modules\swagger-tools\node_modules\body-parser\node_modules\raw-body\index.js:95:12)
at read (c:\apigee\dojo\nodeServer_2\node\node_modules\swagger-tools\node_modules\body-parser\lib\read.js:64:3)
at jsonParser (c:\apigee\dojo\nodeServer_2\node\node_modules\swagger-tools\node_modules\body-parser\lib\types\json.js:116:5)
at c:\apigee\dojo\nodeServer_2\node\node_modules\swagger-tools\middleware\swagger-metadata.js:72:9
at urlencodedParser (c:\apigee\dojo\nodeServer_2\node\node_modules\swagger-tools\node_modules\body-parser\lib\types\urlencoded.js:91:37)
at bodyParser (c:\apigee\dojo\nodeServer_2\node\node_modules\swagger-tools\middleware\swagger-metadata.js:68:5)
at c:\apigee\dojo\nodeServer_2\node\node_modules\swagger-tools\middleware\swagger-metadata.js:258:5
at c:\apigee\dojo\nodeServer_2\node\node_modules\swagger-tools\node_modules\async\lib\async.js:356:13
Run Code Online (Sandbox Code Playgroud)
我已经尝试过这个选项但仍然是同样的错误.以下是index.js的示例代码:
swaggerTools.initializeMiddleware(swaggerDoc, function (middleware) {
// Interpret Swagger resources and attach metadata to request - must be first in swagger-tools middleware chain
app.use(middleware.swaggerMetadata());
/*app.use(middleware.swaggerMetadata(
bodyParser.json({limit: "50mb"}),
bodyParser.urlencoded({ limit: "50mb", extended: true })
)
);*/
// Validate Swagger requests
app.use(middleware.swaggerValidator());
// Route validated requests to appropriate controller
app.use(middleware.swaggerRouter(options)); …Run Code Online (Sandbox Code Playgroud) 我想在Vert.X应用程序中实现Swagger-UI.我列出了所有路线,我希望在SpringBoot中像swagger-ui一样看到它们.我也在swagger-editor中手动编辑它们.那么,如何从vert.x app打开localhost:8080/swagger-ui.html并在那里查看所有路由器.
我读到我需要从swagger-editor中保存json并将其放在src/resources中.那之后呢?
我也在这里发现了一个很棒的东西:https://github.com/phiz71/vertx-swagger和 http://vertx.io/blog/presentation-of-the-vert-x-swagger-project/
但是如何实现呢?
我将在线Swagger编辑器与OpenAPI 3.0结合使用,并且必须创建一个定义文件文件下载。我在服务器端进行开发,客户应该能够使用YAML描述来创建客户端,而无需我的“附加说明”。YAML的相关部分是:
/files/download/{fileName}:
get:
summary: download file
operationId: downloadFile
description: this API is for file download
parameters:
- in: path
name: fileName
schema:
type: string
required: true
description: The name of file to download
responses:
200:
description: Operation performed successfully.
content:
application/octet-stream:
schema:
type: string
format: binary
...
Run Code Online (Sandbox Code Playgroud)
问题是:
内容。当前,它被定义为八位字节流,这是最常见的类型,但是实际上,它取决于一些预定义的文件类型集中的文件类型。有什么方法可以定义这种映射(文件类型/内容类型)并将其与内容标签一起使用吗?
响应标头应包含键/值对附件或内联和文件名。文件名在路径-{fileName}中定义。有什么方法可以描述枚举{attachment,inline}和fileName值的串联吗?
我在 SwaggerHub 注册并使用 OpenAPI 3.0 创建了一个新的 API。在我的 API 中,/tasks路径有 2 个非必需参数,但我无法将它们设置为非必需 - 编辑器显示“不允许的值”错误。
这是我的 API 定义:
openapi: 3.0.0
info:
description: A Simple IP Address API
title: VTasks
version: v1
servers:
# Added by API Auto Mocking Plugin
- description: SwaggerHub API Auto Mocking
url: https://virtserver.swaggerhub.com/petrogromovo/Vtasks/1.0.0
- description: SwaggerHub API Auto Mocking
url: http://hosting.tk
paths:
/tasks:
get:
tags:
- tasks
summary: Get paginated / filtered tasks listing
operationId: tasks
parameters:
- name: page
in: path
description: The page number …Run Code Online (Sandbox Code Playgroud) 我正在尝试为 Webcase Create 会议创建 OpenAPI 定义。这是我的 YAML 代码:
openapi: '3.0.0'
info:
title: WebcastCreateMeeting
version: "1.1"
servers:
- url: https://api.webcasts.com/api
paths:
'/event/create':
post:
tags:
- CreateMeetingCallbody
summary: EventGM
parameters:
- in: path
name: event_title # >> line 15
description: name of the event from Cvent
required: true
schema:
type: string
responses:
200:
description: This would be the response.
content:
application/json;charset=utf-8:
schema:
type: array
items:
properties:
scheduled_duration:
type: integer
example: 30
event_id:
type: integer
example: 0000000
event_title:
type: string
example: Cvent Testing …Run Code Online (Sandbox Code Playgroud) swagger-editor ×10
swagger ×6
openapi ×4
swagger-ui ×3
swagger-2.0 ×2
annotations ×1
node.js ×1
scala ×1
vert.x ×1