搜索

利用Swashbuckle生成Web API Help Pages

发表于 2025-11-04 18:01:21 来源:全栈开发

Swashbuckle简介

Swashbuckle有两个核心组件:

Swashbuckle.SwaggerGen: 提供生成描述对象,利用方法,利用返回类型等JSON Swagger文档的利用功能。 Swashbuckle.SwaggerUI: 一个Swagger UI工具的利用嵌入式版本,可以使用上面的利用文档来创建可定制化的Web API的功能描述,包含内置的利用公共方法的测试工具。

在middleware中添加并配置Swagger

首先,利用要将Swashbuckle添加到项目中的project.json:

"Swashbuckle": "6.0.0-beta902" 

然后在Configure方法中添加SwaggerGen到services集合中,接着在ConfigureServices方法中,利用允许中间件(middleware)为生成的利用JSON文档和SwaggerUI提供服务。亿华云计算

执行dotnet run命令,利用并导航到http://localhost:5000/swagger/v1/swagger.json 查看描述终结点的利用文档。

在middleware中添加并配置Swagger 首先,利用要将Swashbuckle添加到项目中的project.json: "Swashbuckle": "6.0.0-beta902" 然后在Configure方法中添加SwaggerGen到services集合中,接着在ConfigureServices方法中,利用允许中间件(middleware)为生成的利用JSON文档和SwaggerUI提供服务。 执行dotnet run命令,利用并导航到http://localhost:5000/swagger/v1/swagger.json 查看描述终结点的文档。 {   "swagger": "2.0",   "info": {     "version": "v1",     "title": "API V1"   },   "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",             "required": false,             "schema": {               "$ref": "#/definitions/UserItem"             }           }         ],         "responses": {           "200": {             "description": "Success"           }         },         "deprecated": false       }     },     "/api/User/{id}": {       "get": {         "tags": [           "User"         ],         "operationId": "ApiUserByIdGet",         "consumes": [],         "produces": [],         "parameters": [           {             "name": "id",             "in": "path",             "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",             "required": true,             "type": "string"           },           {             "name": "item",             "in": "body",             "required": false,             "schema": {               "$ref": "#/definitions/UserItem"             }           }         ],         "responses": {           "200": {             "description": "Success"           }         },         "deprecated": false       },       "delete": {         "tags": [           "User"         ],         "operationId": "ApiUserByIdDelete",         "consumes": [],         "produces": [],         "parameters": [           {             "name": "id",             "in": "path",             "required": true,             "type": "string"           }         ],         "responses": {           "200": {             "description": "Success"           }         },         "deprecated": false       },       "patch": {         "tags": [           "User"         ],         "operationId": "ApiUserByIdPatch",         "consumes": [           "application/json",           "text/json",           "application/json-patch+json"         ],         "produces": [],         "parameters": [           {             "name": "item",             "in": "body",             "required": false,             "schema": {               "$ref": "#/definitions/UserItem"             }           },           {             "name": "id",             "in": "path",             "required": true,             "type": "string"           }         ],         "responses": {           "200": {             "description": "Success"           }         },         "deprecated": false       }     },     "/api/Values": {       "get": {         "tags": [           "Values"         ],         "operationId": "ApiValuesGet",         "consumes": [],         "produces": [           "text/plain",           "application/json",           "text/json"         ],         "responses": {           "200": {             "description": "Success",             "schema": {               "type": "array",               "items": {                 "type": "string"               }             }           }         },         "deprecated": false       },       "post": {         "tags": [           "Values"         ],         "operationId": "ApiValuesPost",         "consumes": [           "application/json",           "text/json",           "application/json-patch+json"         ],         "produces": [],         "parameters": [           {             "name": "value",             "in": "body",             "required": false,             "schema": {               "type": "string"             }           }         ],         "responses": {           "200": {             "description": "Success"           }         },         "deprecated": false       }     },     "/api/Values/{id}": {       "get": {         "tags": [           "Values"         ],         "operationId": "ApiValuesByIdGet",         "consumes": [],         "produces": [           "text/plain",           "application/json",           "text/json"         ],         "parameters": [           {             "name": "id",             "in": "path",             "required": true,             "type": "integer",             "format": "int32"           }         ],         "responses": {           "200": {             "description": "Success",             "schema": {               "type": "string"             }           }         },         "deprecated": false       },       "put": {         "tags": [           "Values"         ],         "operationId": "ApiValuesByIdPut",         "consumes": [           "application/json",           "text/json",           "application/json-patch+json"         ],         "produces": [],         "parameters": [           {             "name": "id",             "in": "path",             "required": true,             "type": "integer",             "format": "int32"           },           {             "name": "value",             "in": "body",             "required": false,             "schema": {               "type": "string"             }           }         ],         "responses": {           "200": {             "description": "Success"           }         },         "deprecated": false       },       "delete": {         "tags": [           "Values"         ],         "operationId": "ApiValuesByIdDelete",         "consumes": [],         "produces": [],         "parameters": [           {             "name": "id",             "in": "path",             "required": true,             "type": "integer",             "format": "int32"           }         ],         "responses": {           "200": {             "description": "Success"           }         },         "deprecated": false       }     }   },   "definitions": {     "UserItem": {       "type": "object",       "properties": {         "key": {           "type": "string"         },         "name": {           "type": "string"         },         "age": {           "format": "int32",           "type": "integer"         }       }     }   },   "securityDefinitions": {} } 

该文档用来驱动Swagger UI,可以导航http://localhost:5000/swagger/ui来查看Swagger UI。

在UserController里面的每个方法都可以在该页面上通过点击”Try it out!”进行测试。

定制&扩展

API描述信息

services.ConfigureSwaggerGen(options => {     options.SingleApiVersion(new Info     {         Version = "v1",         Title = "User Web API",         Description = "ASP.NET Core Web API",         TermsOfService = "None",         Contact = new Contact { Name = "Charlie Chu", Email = "charlie.thinker@aliyun.com", Url = "http://zhuchenglin.me/" },         License = new License { Name = "The MIT License", Url = "http://zhuchenglin.me/" }     }); }); 

XML注释

通过在project.json添加“xmlDoc”: true来启用XML注释。

ApplicationBasePath获取该应用的站群服务器根路径,它必须为XML注释设置一个完整的路径,生成的XML注释名称基于你的应用程序的名称。

注意这个界面是通过之前生成的JSON文件来驱动的,所有的这些API描述信息和XML注释都会写入到这个文件中。

【本文为专栏作者“朱成林”的原创稿件,转载请联系原作者】

戳这里,看该作者更多好文

云服务器提供商
随机为您推荐
版权声明:本站资源均来自互联网,如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

Copyright © 2016 Powered by 利用Swashbuckle生成Web API Help Pages,全栈开发  滇ICP备2023006006号-32sitemap

回顶部