Swashbuckle简介Swashbuckle有两个核心组件:Swashbuckle.SwaggerGen:提供生成描述对象、方法和返回类型的JSONSwagger文档的功能。Swashbuckle.SwaggerUI:SwaggerUI工具的嵌入式版本,可以使用上述文档创建可定制WebAPI的功能描述,包括内置的公共方法测试工具。在中间件中添加配置Swagger首先在项目中的project.json中添加Swashbuckle:"Swashbuckle":"6.0.0-beta902"然后在Configure方法中将SwaggerGen添加到services集合中,然后在ConfigureServices方法中,Allowsmiddleware为生成的JSON文档和SwaggerUI提供服务。执行dotnetrun命令并导航到http://localhost:5000/swagger/v1/swagger.json以查看描述端点的文档。在中间件中添加配置Swagger首先在项目中的project.json中添加Swashbuckle:"Swashbuckle":"6.0.0-beta902"然后在Configure方法中将SwaggerGen添加到services集合中,然后在ConfigureServices方法中,Allowsmiddleware为生成的JSON文档和SwaggerUI提供服务。执行dotnetrun命令并导航到http://localhost:5000/swagger/v1/swagger.json以查看描述端点的文档。{"swagger":"2.0","info":{"version":"v1","title":"APIV1"},"basePath":"/","paths":{"/api/User":{"get":{"tags":["User"],"operationId":"ApiUserGet","consumes":[],"produces":["text/plain","application/json","text/json"],"responses":{"200":{"description":"Success","schema":{"type":"array","items":{"$ref":"#/definitions/UserItem"}}}},"deprecated":false},"post":{"tags":["User"],"operationId":"ApiUserPost","consumes":["application/json","text/json","application/json-patch+json"],"produces":[],"parameters":[{"name":"item","in":"body","re??quired":false,"schema":{"$ref":"#/definitions/UserItem"}}],"responses":{"200":{"描述":"Success"}},"deprecated":false}},"/api/User/{id}":{"get":{"tags":["User"],"operationId":"ApiUserByIdGet"“消费”:[],“生产”:[],“参数”:[{“名称”:“id”,“in”:“路径”,“required”:true,“type”:“string”}],"responses":{"200":{"description":"Success"}},"deprecated":false},"put":{"tags":["User"],"operationId":"ApiUserByIdPut","consumes":["application/json","text/json","application/json-patch+json"],"produces":[],"parameters":[{"name":"id","in":"path","re??quired":true,"type":"string"},{"name":"item","in":"body","re??quired":false,"schema":{"$ref":"#/definitions/UserItem"}}],"responses":{"200":{"description":"Success"}},“弃用”:false},“删除”:{“标签”:[“用户”],“operationId”:“ApiUserByIdDelete”,“消费”:[],“生产”:[],“参数”:[{"name":"id","in":"path","re??quired":true,"type":"string"}],"responses":{"200":{"description":"Success"}},"弃用":false},"patch":{"tags":["User"],"operationId":"ApiUserByIdPatch","consumes":["application/json","text/json","application/json-patch+json"],"produces":[],"parameters":[{"name":"item","in":"body","re??quired":false,"schema":{"$ref":"#/definitions/UserItem"}},{"name":"id","in":"path","re??quired":true,"type":"string"}],"responses":{"200":{"description":"Success"}},"deprecated":false}},"/api/值":{"get":{"tags":["Values"],"operationId":"ApiValuesGet","consumes":[],"produces":["text/plain","application/json""文本/json"],"响应":{"200":{"描述":"成功","模式":{"类型":"数组","items":{"type":"string"}}}},"deprecated":false},"post":{"tags":["Values"],"operationId":"ApiValuesPost","消费":["application/json","text/json","application/json-patch+json"],"生产":[],"参数":[{"name":"value","in":"body","re??quired":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success"}},"已弃用":false}},"/api/Values/{id}":{"get":{"tags":["Values"],"operationId":"ApiValuesByIdGet","consumes":[],"produces"":["text/plain","application/json","text/json"],"parameters":[{"name":"id","in":"路径","re??quired":true,"type":"integer","format":"int32"}],"responses":{"200":{"description":"Success","架构”:{“类型”:“字符串”}}},”弃用“:false},”put“:{“标签”:[”Values“],”operationId“:”ApiValuesByIdPut“,”consumes“:["application/json","text/json","application/json-patch+json"],"produces":[],"parameters":[{"name":"id","in":"path","re??quired":true,"type":"integer","format":"int32"},{"name":"value","in":"body","re??quired":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"苏ccess"}},"deprecated":false},"delete":{"tags":["Values"],"operationId":"ApiValuesByIdDelete","consumes":[],"produces":[],"parameters":[{"name":"id","in":"path","re??quired":true,"type":"integer","format":"int32"}],"responses":{“200”:{“描述”:“成功”}},“弃用”:假}}},“定义”:{“UserItem”:{“类型”:“对象”,“属性”:{“键”:{"type":"string"},"name":{"type":"string"},"age":{"format":"int32","type":"integer"}}}},"securityDefinitions":{}}该文档用来驱动SwaggerUI,可以导航http://localhost:5000/swagger/ui来查看SwaggerUIUserController中的每个方法都可以在此页面上通过单击“尝试一下!”进行测试。自定义&扩展API描述信息services.ConfigureSwaggerGen(options=>{options.SingleApiVersion(newInfo{Version="v1",Title="UserWebAPI",Description="ASP.NETCoreWebAPI",TermsOfService="None",Contact=newContact{Name="CharlieChu",Email="charlie.thinker@aliyun.com",Url="http://zhuchenglin.me/"},License=newLicense{Name="TheMITLicense",Url="http://zhuchenglin。我/”}});});通过向project.json添加"xmlDoc":true启用XML注释。ApplicationBasePath获取应用程序的根路径,它必须为XML注释设置一个完整路径,生成的XML注释名称是基于您的应用程序名称。注意这个接口是由之前生成的JSON文件驱动的,所有这些API描述信息和XML注释都会写入到这个文件中。【本文为专栏作家“朱成林”原创稿件,转载请联系原作者】点此阅读更多该作者好文
