在Asp.Net Core項目中,前后端分離的開發模式越來越普及。為了提升開發效率,減少溝通成本,自動生成清晰、易讀的API文檔變得尤為重要。Swagger作為一個流行的API開發工具,可以自動生成API文檔,并提供交互式界面進行測試,極大地簡化了API的開發和文檔化過程。本文將詳細介紹如何在Asp.Net Core項目中集成Swagger,并給出例子代碼。
Swagger是一個規范和完整的框架,用于生成、描述、調用和可視化RESTful風格的Web服務。Swagger遵循OpenAPI規范(原Swagger規范),允許開發人員設計、構建、記錄和使用RESTful Web服務。Swagger工具集包括Swagger Editor、Swagger UI和Swagger Codegen,分別用于API文檔的編寫、API文檔的展示和客戶端代碼的自動生成。
在Asp.Net Core項目中集成Swagger,主要分為以下幾個步驟:
Install-Package Swashbuckle.AspNetCore
或者使用Visual Studio的NuGet包管理器界面進行安裝。
public void ConfigureServices(IServiceCollection services){ services.AddControllers(); // 添加Swagger生成器,定義一個和多個Swagger文檔 services.AddSwaggerGen(c => { c.SwaggerDoc("v1", new OpenApiInfo { Title = "My API", Version = "v1" }); // 為Swagger UI設置XML注釋路徑 var xmlFile = $"{Assembly.GetExecutingAssembly().GetName().Name}.xml"; var xmlPath = Path.Combine(AppContext.BaseDirectory, xmlFile); c.IncludeXmlComments(xmlPath); });}
注意:為了讓Swagger顯示控制器和方法的注釋,你需要在項目屬性中啟用XML文檔生成,并確保生成的XML文件路徑正確。
public void Configure(IApplicationBuilder app, IWebHostEnvironment env){ if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); } app.UseHttpsRedirection(); app.UseRouting(); app.UseAuthorization(); // 啟用中間件服務生成Swagger作為JSON終結點 app.UseSwagger(); // 啟用中間件服務對swagger-ui,指定Swagger JSON終結點 app.UseSwaggerUI(c => { c.SwaggerEndpoint("/swagger/v1/swagger.json", "My API V1"); }); app.UseEndpoints(endpoints => { endpoints.MapControllers(); });}
/// <summary>/// 學生控制器/// </summary>[ApiController][Route("[controller]")]public class StudentsController : ControllerBase{ /// <summary> /// 獲取所有學生信息 /// </summary> /// <returns>學生列表</returns> [HttpGet] public IActionResult GetStudents() { // 實現邏輯 return Ok(new List<string> { "Tom", "Jerry" }); } // 其他動作方法...}
啟動你的Asp.Net Core應用程序,并在瀏覽器中訪問http://localhost:<your-port>/swagger(默認端口通常是5000或5001)。你將看到Swagger UI界面,列出了所有的API端點,包括方法、參數和響應類型等信息。你可以直接在這個界面上進行API的調用和測試。
通過集成Swagger到Asp.Net Core項目中,你可以自動生成清晰、易讀的API文檔,并提供交互式界面進行測試,極大地提升了開發效率和團隊協作效率。
本文鏈接:http://www.tebozhan.com/showinfo-26-112702-0.htmlAsp.Net Core實戰-Swagger接口文文檔
聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。郵件:2376512515@qq.com