我的REST Web服务中有一个使用GET方法的函数,它有两个可选参数.
我尝试在Swagger中定义它但在设置as 后遇到错误,不是有效的参数定义.requiredfalse
我发现如果我设置required值,因为true错误将消失.这是我的Swagger代码示例.
...
paths:
'/get/{param1}/{param2}':
get:
...
parameters:
- name: param1
in: path
description: 'description regarding param1'
required: false
type: string
- name: param2
in: path
description: 'description regarding param2'
required: false
type: string
Run Code Online (Sandbox Code Playgroud)
我没有使用body中的参数或查询中的参数来体验这一点.我认为这个问题只与路径中的参数有关.我也无法在swagger规范文件中找到任何解决方案.
有没有其他方法可以在Swagger中定义可选参数,或者我的代码中是否有任何错误?
任何帮助,将不胜感激.
我有一个REST服务来记录,其中一些接受简单的数组,如:
[
{ "name":"a" },
{ "name":"b" },
{ "name":"c" }
]
Run Code Online (Sandbox Code Playgroud)
我如何在Swagger模型部分中描述这一点?我只能创建'命名数组'
model {
properties: { "arr": { "type":"array", ......
Run Code Online (Sandbox Code Playgroud)
但它描述了这样的数据:
"arr": [
{ "name":"a" },
{ "name":"b" },
{ "name":"c" }
]
Run Code Online (Sandbox Code Playgroud) 有没有人能够在swaggger 2.0版的Model选项卡中定义可能的'enum'值?示例:http : //petstore.swagger.wordnik.com/#!/pet/addPet具有"status"属性的枚举选项,但该示例使用的是swagger 1.0版(根据JSON对象中定义的swagger版本).我试图在版本2.0中实现相同但没有运气,不确定文档是否正确.
有什么暗示吗?
我继承了现有的API,我想用swagger记录它,但我还不知道它的全部范围.Swagger(或其他中间件/工具)可以根据现有的快速路线自动神奇地生成yaml(swagger)吗?
对于我在其他问题上看到的情况,似乎这主要是一个手工工作,但我仔细检查是否有人在这里找到了办法.
我有一个POST请求,它使用以下JSON请求体.如何使用OpenAPI(Swagger)描述此请求体?
{
"testapi": {
"testapiContext": {
"messageId": "kkkk8",
"messageDateTime": "2014-08-17T14:07:30+0530"
},
"testapiBody": {
"cameraServiceRq": {
"osType": "android",
"deviceType": "samsung555"
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
到目前为止,我尝试了以下内容,但我仍然坚持定义身体schema.
swagger: "2.0"
info:
version: 1.0.0
title: get camera
license:
name: MIT
host: localhost
basePath: /test/service
schemes:
- http
consumes:
- application/json
produces:
- application/json
paths:
/getCameraParameters:
post:
summary: Create new parameters
operationId: createnew
consumes:
- application/json
- application/xml
produces:
- application/json
- application/xml
parameters:
- name: pet
in: body
description: The pet JSON you …Run Code Online (Sandbox Code Playgroud) 我从一些JSON文件创建了一个API规范,我试图测试文件是否根据API规范进行验证.
有一些很好的工具可以验证JSON Schema,但我没有机会找到一个工具来验证Swagger中创建的规范(用于创建API模式的工具).我找到的唯一解决方案是在Swagger-Editor中生成客户端/服务器,这非常麻烦.
是否已有一个现有工具来验证针对Swagger Schema的JSON?
我在我的应用程序中嵌入了swagger ui.当我在本地运行我的节点应用程序时,UI工作得很好.
然而,当我将UI部署到我的"真正的"服务器时,我在我的招摇ui的右下方得到一个错误图像:

我确信这是我正在做的事情,它搞砸了,但我不知道.当我通过http访问swagger ui时,再次在本地工作.
但是当我部署时,我通过apache运行并通过https服务,我看到一个错误.更糟糕的是,在部署时,我的"试用"调用都没有.似乎没有提出请求.
看起来UI使用我的swagger.json调用验证器,但该调用在本地工作.
我究竟做错了什么?
当我点击错误图标时,我得到:

我有一个类,其中有一个属性 List<String>
public class MyClass {
....
@ApiModelProperty(position = 2)
private List<String> productIdentifiers;
....
}
Run Code Online (Sandbox Code Playgroud)
此代码生成示例值,如下所示:
{
"customerId": "1001",
"productIdentifiers": [
"string"
],
"statuses": [
"NEW"
]
}
Run Code Online (Sandbox Code Playgroud)
此处显示的示例值无效.我期望的示例值应该是:
{
"customerId": "1001",
"productIdentifiers": [
"PRD1",
"PRD2",
"PRD3"
],
"statuses": [
"NEW"
]
}
Run Code Online (Sandbox Code Playgroud)
我尝试将示例属性传递如下,但它没有生成正确的值:
@ApiModelProperty(position = 2, example = "PRD1, PRD2, PRD3")
// This generates -> "productIdentifiers": "PRD1, PRD2, PRD3" // Its not json array
@ApiModelProperty(position = 2, example = "[\"PRD1\", \"PRD2\", \"PRD3\"]")
// This generates -> "productIdentifiers": "[\"PRD1\", \"PRD2\", …Run Code Online (Sandbox Code Playgroud) 我无法获得Swashbuckle.AspNetCore(1.0.0)包来生成任何输出.我读过swagger.json文件应该写成'〜/ swagger/docs/v1'.但是,我没有得到任何输出.
我从一个全新的ASP.NET Core API项目开始.我应该提到这是ASP.NET Core 2. API工作,我能够从值控制器中检索值就好了.
我的启动类具有完全如本文所述的配置(GitHub上的Swashbuckle.AspNetCore).
public class Startup
{
public Startup(IConfiguration configuration)
{
Configuration = configuration;
}
public IConfiguration Configuration { get; }
// This method gets called by the runtime. Use this method to add services to the container.
public void ConfigureServices(IServiceCollection services)
{
services.AddMvc();
services.AddSwaggerGen(c =>
{
c.SwaggerDoc("v1", new Info { Title = "My API", Version = "v1" });
});
}
// This method gets called by the runtime. Use this method …Run Code Online (Sandbox Code Playgroud) 我在文档中读到“.NET 的两个主要 OpenAPI 实现是 Swashbuckle 和 NSwag”,但它们之间有什么区别?
swagger ×10
rest ×3
swagger-ui ×3
json ×2
swashbuckle ×2
.net ×1
asp.net-core ×1
c# ×1
express ×1
java ×1
javascript ×1
jsonschema ×1
node.js ×1
nswag ×1
openapi ×1
springfox ×1
swagger-2.0 ×1
web-services ×1