網站首頁 編程語言 正文
前言:
本文使用 .NET Core SDK 3.1 的版本。
在我們使用微服務的時候,各個微服務之間會經常調用接口,但是手動寫Http請求的代碼非常繁瑣,在 Visual Studio 2019 的 .NET Core 項目中提供了添加連接的服務的功能,使得我們的工作變得簡單容易。
一、將 Swagger 引入 WebAPI 項目
將 Swagger 引入 ASP.NET Core 項目可以使用Swashbuckle 和 ASP.NET Core 入門這篇微軟官方文檔。
創建一個 ASP.NET Core Web API 服務
執行以下命令引入對應的包:
Install-Package Swashbuckle.AspNetCore -Version 5.6.3
將 Swagger 生成器添加到 Startup.ConfigureServices 方法中的服務集合中:
public void ConfigureServices(IServiceCollection services)
{
services.AddControllers();
services.AddSwaggerGen();
}
在 Startup.Configure 方法中,啟用中間件為生成的 JSON 文檔和 Swagger UI 提供服務:
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
app.UseSwagger();
app.UseSwaggerUI(c => c.SwaggerEndpoint("/swagger/v1/swagger.json", "My API V1"));
app.UseRouting();
app.UseEndpoints(endpoints => endpoints.MapControllers());
}
配置完成后啟動項目訪問 Swagger 頁面,
點擊頁面上的 /swagger/v1/swagger.json 即可跳轉到我們的URL,
例如我這里的是:http://localhost:5000/swagger/v1/swagger.json
二、添加 OpenAPI 服務引用
在解決方案中另新建一個項目 .NET Core 的項目,我這里新建的是控制臺項目。
在項目中右鍵點擊依賴項,選擇 添加連接的服務 ,
在出現的新選項卡中的 服務引用(OpenAPI, gRPC) 中點擊添加按鈕。
然后選擇 OpenAPI 點擊下一步,
重新啟動步驟一中的 WebAPI 項目,
選擇URL并填入先前的 Swagger 描述文件URL
http://localhost:5000/swagger/v1/swagger.json,點擊完成等待完成即可。
(如果將swagger.json下載后,在這里使用文件也是可行的)
添加后項目中多了一個 ~/OpenAPIs/swagger.json 文件。
然后即可在代碼中直接調用接口:
static async Task Main(string[] args)
{
var http = new HttpClient();
var client = new swaggerClient("http://localhost:5000/", http);
var result = await client.WeatherForecastAsync();
foreach (var item in result)
{
Console.WriteLine($"{item.Date}, {item.TemperatureF}, {item.Summary}");
}
Console.WriteLine("Hello World!");
}
對于已配置的服務引用由于已經更改需要進行更新,則直接在更多列表中的刷新選項即可。
參考文檔
Swashbuckle 和 ASP.NET Core 入門
原文鏈接:https://blog.csdn.net/Upgrader/article/details/114219673
相關推薦
- 2022-07-30 Redis實現訂單過期刪除的方法步驟_Redis
- 2023-04-06 Android基準配置文件Baseline?Profile方案提升啟動速度_Android
- 2022-04-17 css制作一個簡單的上下跳動 動畫
- 2022-05-22 在Centos?8.0中安裝Redis服務器的教程詳解_Redis
- 2022-05-13 C++ DeviceIoControl 獲取硬盤序列號
- 2023-01-30 VMware?Tools?啟動腳本未能在虛擬機中成功運行的兩種解決方法_VMware
- 2022-03-29 jquery實現頁面彈球效果_jquery
- 2022-04-07 C語言的線性表之順序表你了解嗎_C 語言
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支