Asp.net

帶有 ASP.NET v5 Azure Api 應用程序的 Swagger

  • August 17, 2021

我正在嘗試使用 Swagger + Swashbuckle 設置 Api 應用程序(Azure),正如 Scott Hanselman 在 //Build 會議上所展示的那樣:http: //channel9.msdn.com/Events/Build/2015/2-628

我已經安裝(使用 NuGet)包 Swagger.Api 和 Swashbuckle.Core。它沒有添加任何我期望的控制器或設置,以便擁有一個招搖頁面。當我導航到 {baseUrl}\swagger 時,我收到 404 錯誤。

我認為,由於它有一個 UI,除了 Api 應用程序之外,它還需要一個 Web 應用程序,但我重新觀看了展示,Scott 明確表示您可以將 Swagger + Swashbuckle 添加到任何 Api 應用程序。在第二個應用程序中,雖然我認為 Api 發現可能存在問題。有人設置成功了嗎?

大搖大擺的項目

這個答案現在已經過時了。看另一個答案。

有一篇很好的博文描述了您遇到的問題:https ://alexanderzeitler.com/articles/Deploying-a-ASP-NET-MVC-6-API-as-Azure-API-App-in-Azure-App-Services /

這描述瞭如何添加 Ahoy!打包到 ASP.NET v6 Web Api 項目並將其作為 API 應用程序添加到 Azure。

這是另一個來源:http ://devmeetsbi.ghost.io/help-and-test-page-for-asp-net-web-api-asp-net-5-and-mvc-6/

時間流逝,現在 Swashbuckle 適用於 vNext(對我來說是 beta8,可能還有其他版本) - 感謝團隊和貢獻者!

在 project.json 添加包:

   "Swashbuckle": "6.0.0-*",

在 ConfigureServices() 的 startup.cs 中:

       services.AddSwaggerGen();
       services.ConfigureSwaggerDocument(options =>
       {
           options.SingleApiVersion(new Info
           {
               Version = "v1",
               Title = "My Super API",
               Description = "A Super API using Swagger and Swashbuckle",
               TermsOfService = ""
           });

       });
       services.ConfigureSwaggerSchema(options =>{
           options.DescribeAllEnumsAsStrings = true;
       });

在 Configure() 的 startup.cs 中:

       app.UseSwaggerGen();
       app.UseSwaggerUi();

現在您可以訪問您的 API doco - http://domain:port/swagger/ui/index.html

訪問您的 Swagger 定義 - http://domain:port/swagger/v1/swagger.json

然後假設您至少有一個面向網際網路的 dev/uat/staging/prod 環境,獲取定義 URL,然後在http://editor.swagger.io/處執行 File-> Import URI - 現在您有大約 20 個程式碼生成客戶也是:)

如果您也願意,也可以設置自己的程式碼生成伺服器(https://github.com/swagger-api/swagger-codegen),但是我利用了現有的線上生成器。線上編輯器也有完整的模型和關係定義,至少在我使用 EF7 完全定義模型的情況下(我知道,我知道……但它比 <= EF6 好得多,而且 ServiceStack 還不支持 CoreCLR) . 根據您項目的大小,這可以為您節省幾個小時到幾週的工作文件編制,而且它會隨著您編寫更多程式碼而動態更新。你也可以用它來測試你的端點,但我還是更喜歡 PostMan。

完整範例項目位於https://github.com/mrsheepuk/ASPNETSelfCreatedTokenAuthExample/tree/beta8

MrSheepUK 的大事

高溫高壓

引用自:https://stackoverflow.com/questions/30056230