Asp.net core Web Api配置swagger中文的實現(xiàn)
在你的 Web API 項目中使用 Swagger 的.NET Core 封裝 Swashbuckle 可以幫助你創(chuàng)建良好的文檔和幫助頁面,Swagger (OpenAPI) 是一個與語言無關(guān)的規(guī)范,用于描述 REST API。 它使計算機和用戶無需直接訪問源代碼即可了解 REST API 的功能
1、OpenAPI 與 Swagger
Swagger 項目已于 2015 年捐贈給 OpenAPI 計劃,自此它被稱為 OpenAPI。 這兩個名稱可互換使用。 不過,“OpenAPI”指的是規(guī)范。 “Swagger”指的是來自使用 OpenAPI 規(guī)范的 SmartBear 的開放源代碼和商業(yè)產(chǎn)品系列。
簡而言之:
OpenAPI 是一種規(guī)范。
Swagger 是一種使用 OpenAPI 規(guī)范的工具。 例如,OpenAPIGenerator 和 SwaggerUI
OpenAPI 規(guī)范是描述 API 功能的文檔。 該文檔基于控制器和模型中的 XML 和屬性注釋。 它是 OpenAPI 流的核心部分,用于驅(qū)動諸如 SwaggerUI 之類的工具
2、Swagger UI
Swagger UI 提供了基于 Web 的 UI,它使用生成的 OpenAPI 規(guī)范提供有關(guān)服務的信息。 Swashbuckle 和 NSwag 均包含 Swagger UI 的嵌入式版本,因此可使用中間件注冊調(diào)用將該嵌入式版本托管在 ASP.NET Core 應用中。 Web UI 如下所示:
3、開搞
打開啟動vs2019,
啟動項目,如圖:
原來是英文的,我們要中文的,WeatherForecastController.cs是一個示例,刪除即可,WeatherForecast.cs同時刪除,當然不刪除也行,這里是刪除,創(chuàng)建自己的控制器
1創(chuàng)建model實體
using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; namespace HouseSysWebApplication.Model { ///<summary> /// 圖片實體類 /// </summary> public class Book { /// <summary> /// 編號 /// </summary> public int id { get; set; } /// <summary> /// 書名 /// </summary> public string title { get; set; } /// <summary> /// 作者 /// </summary> public string author { get; set; } /// <summary> /// 價格 /// </summary> public float price { get; set; } /// <summary> /// 圖片地址 /// </summary> public string image { get; set; } } }
2 添加控制器BookController
Controller文件夾上右鍵,選擇“添加”,選擇“控制器”,選擇API,
using HouseSysWebApplication.Model; using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; namespace HouseSysWebApplication.Controllers { /// <summary> /// 圖書控制器 /// </summary> [Route("api/[controller]")] [ApiController] public class BookController : ControllerBase { List<Book> bookList = InitBookStore(); private static List<Book> InitBookStore() { List<Book> bookList = new List<Book>(); Book b1 = new Book(); b1.id = 101; b1.author = "楊康"; b1.title = "Java從入門到精通"; b1.price = 89.5f; b1.image = "img01.jpg"; bookList.Add(b1); Book b2 = new Book(); b2.id = 102; b2.author = "天涯"; b2.title = "Java項目開發(fā)實戰(zhàn)入門"; b2.price = 49.5f; b2.image = "img02.jpg"; bookList.Add(b2); Book b3 = new Book(); b3.id = 103; b3.author = "標貴"; b3.title = "Java編程思想"; b3.price = 76f; b3.image = "img03.jpg"; bookList.Add(b3); Book b4 = new Book(); b4.id = 104; b4.author = "西法"; b4.title = "web開發(fā)手冊"; b4.price = 78.3f; b4.image = "img04.jpg"; bookList.Add(b4); Book b5 = new Book(); b5.id = 105; b5.author = "海風"; b5.title = "唐詩宋詞"; b5.price = 29.5f; b5.image = "img05.jpg"; bookList.Add(b5); return bookList; } /// <summary> /// 獲取所有圖書 /// </summary> /// <returns>圖書列表</returns> [HttpGet("all")] public List<Book> BookStore() { return bookList; } /// <summary> /// 查詢指定名稱的圖書 /// </summary> /// <param name="bookName">圖書標題</param> /// <returns>圖書列表</returns> [HttpGet("search")] public IEnumerable<Book> BookStore(string bookName) { return bookList.FindAll(x => x.title.Contains(bookName)).AsEnumerable(); } } }
這里要注意的是代碼的完整注釋要寫上,既然是寫接口,生成的文檔所以要詳細,可讀性強,啟動后效果
3 生成xml文檔
項目右鍵,選擇屬性,點擊生成,勾選
將項目編譯生成,就會自動創(chuàng)建xml文檔
4修改Startup.cs
只要改一個地方就行
title是標題,具體描述自己決定
5編譯生成,啟動,看效果,立馬中文
選擇某個接口,比如第一個,點擊測試,沒有問題,說明一切杠杠的
注釋沒有問題,相當?shù)膸?,單獨訪問也正常
到此這篇關(guān)于Asp.net core Web Api配置swagger中文的實現(xiàn)的文章就介紹到這了,更多相關(guān)Asp.net core Web Api配置swagger內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
SqlDataReader生成動態(tài)Lambda表達式
這篇文章主要介紹了SqlDataReader生成動態(tài)Lambda表達式,需要的朋友可以參考下2017-04-04asp.net下通過泛解析和偽靜態(tài)實現(xiàn)二級域名的實現(xiàn)方法
當我們想做一個站群或想為每一個會員的主頁設(shè)置為一個二級域名時,總是想拼命的去找些組件來實現(xiàn)。2010-10-10asp.net中javascript的引用(直接引入和間接引入)
Asp.net 中引入Javascript的方法有很多,個人認為可以分為直接引入,和間接引入,下面是兩種具體的引用方法,感興趣的朋友可以參考下哈2013-06-06