ASP.NET Core中引用OpenAPI服务添加示例

目录

文章目录 前言:一、将 Swagger 引入 WebAPI 项目二、添加 OpenAPI 服务引用参考文档

前言:

本文使用 .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 入门
Welcome to .NET Conf: Focus on Microservices

(0)

相关推荐

  • .NetCore使用Swagger+API多版本控制的流程分析

    目录 一.Swagger基本使用 二.Swagger结合版本控制 本文实例环境及版本.NetCore3.1.Swagger6.1 现在的开发大部分都是前后端分离的模式了,后端提供接口,前端调用接口.后端提供了接口,需要对接口进行测试,之前都是使用浏览器开发者工具,或者写单元测试,再或者直接使用Postman,但是现在这些都已经out了.后端提供了接口,如何跟前端配合说明接口的性质,参数等这也是一个问题.有没有一种工具可以根据后端的接口自动生成接口文档,说明接口的性质,参数等信息,又能提供接口调用

  • ASP.NetCore使用Swagger实战

    踩坑不背锅,.NET Core 试深浅 关于Swagger什么是swagger所带来的帮助 使用Swagger 关于Swagger 什么是swagger 使人和计算机在看不到源码或者看不到文档或者不能通过网络流量检测的情况下能发现和理解各种服务的功能. Swagger™ 的目标是为 REST APIs 定义一个标准的,与语言无关的接口.只需要按照它的规范去定义接口及接口相关的信息.再通过Swagger衍生出来的一系列项目和工具,就可以做到生成各种格式的接口文档,生成多种语言的客户端和服务端的代码

  • ASP.NET Core中引用OpenAPI服务添加示例

    目录 文章目录 前言:一.将 Swagger 引入 WebAPI 项目二.添加 OpenAPI 服务引用参考文档 前言: 本文使用 .NET Core SDK 3.1 的版本.在我们使用微服务的时候,各个微服务之间会经常调用接口,但是手动写Http请求的代码非常繁琐,在 Visual Studio 2019 的 .NET Core 项目中提供了添加连接的服务的功能,使得我们的工作变得简单容易. 一.将 Swagger 引入 WebAPI 项目 将 Swagger 引入 ASP.NET Core

  • 在 ASP.NET Core 中为 gRPC 服务添加全局异常处理

    目录 一.咨询区 Dmitriy 二.回答区 valentasm 三.点评区 以下文章来源于公众号:DotNetCore实战 一.咨询区 Dmitriy 在 ASP.NET Core 中使用GRPC.ASPNETCore 工具包写 gRPC 服务,想实现 gRPC 的异常全局拦截, 代码如下: app.UseExceptionHandler(configure => {     configure.Run(async e =>     {         Console.WriteLine(&

  • 使用VS2022在ASP.NET Core中构建轻量级服务

    目录 1. 使用 VS2022 创建 ASP.NET Core 项目 2. 在 ASP.NET Core 中启用一个轻量级的服务 3. 在 ASP.NET Core 中使用 IEndpointConventionBuilder 扩展方法 4. 在 ASP.NET Core 中使用轻量级服务检索记录 5. 在 ASP.NET Core 中使用轻量级服务创建记录 6. 在 ASP.NET Core 中使用轻量级服务删除记录 7. ASP.NET Core 中轻量级服务的配置方法 8. 在 ASP.N

  • asp.net Core中同名服务注册的实现代码

    目录 1.使用.net Core自带容器 2.AutoFac中的实现 通常情况下,在使用注入时一个服务接口对应一个实现类,注入方式采用构造函数注入即可,但如果存在多个类实现同一个接口的情况下,则需要根据实际情况来选择不同的实现类. 如以下代码中的MyEmailService和EmailService都实现了IEmailService接口: public class MyEmailService : IEmailService { public string Send(string Email)

  • Asp.Net Core中基于Session的身份验证的实现

    在Asp.Net框架中提供了几种身份验证方式:Windows身份验证.Forms身份验证.passport身份验证(单点登录验证). 每种验证方式都有适合它的场景: 1.Windowss身份验证通常用于企业内部环境,Windows Active Directory就是基于windows平台的身份验证实现: 2.Forms身份验证是Asp.Net框架中提出的另一种验证方式: 3.passport身份验证是微软提供的基于自己的lives账号实现的单点认证服务. Asp.net Core验证码登录遇到

  • 解析Asp.net Core中使用Session的方法

    前言 2017年就这么悄无声息的开始了,2017年对我来说又是特别重要的一年. 元旦放假在家写了个Asp.net Core验证码登录, 做demo的过程中遇到两个小问题,第一是在Asp.net Core中引用dll,以往我们引用DLL都是直接引用,在Core里这样是不行的,必须基于NuGet添加,或者基于project.json添加,然后保存VS会启动还原类库. 第二就是使用Session的问题,Core里使用Session需要添加Session类库. 添加Session 在你的项目上基于NuG

  • 详解ASP.NET Core 中的框架级依赖注入

    1.ASP.NET Core 中的依赖注入 此示例展示了框架级依赖注入如何在 ASP.NET Core 中工作. 其简单但功能强大,足以完成大部分的依赖注入工作.框架级依赖注入支持以下 scope: Singleton - 总是返回相同的实例 Transient - 每次都返回新的实例 Scoped - 在当前(request)范围内返回相同的实例 假设我们有两个要通过依赖注入来进行工作的工件: PageContext - 自定义请求上下文 Settings - 全局应用程序设置 这两个都是非常

  • Asp.Net Core中服务的生命周期选项区别与用法详解

    前言 最近在做一个小的Demo中,在一个界面上两次调用视图组件,并且在视图组件中都调用了数据库查询,结果发现,一直报错,将两个视图组件的调用分离,单独进行,却又是正常的,寻找一番,发现是配置依赖注入服务时,对于服务的生命周期没有配置得当导致,特此做一次实验来认识三者之间(甚至是四者之间的用法及区别). 本文demo地址(具体见WebApi控制器中):https://gitee.com/530521314/koInstance.git (本地下载)  一.服务的生命周期 在Asp.Net Core

  • 谈谈如何在ASP.NET Core中实现CORS跨域

    CORS(Cross-origin resource sharing)是一个W3C标准,翻译过来就是 "跨域资源共享",它主要是解决Ajax跨域限制的问题. CORS需要浏览器和服务器支持,现在所有现代浏览器都支持这一特性.注:IE10及以上 只要浏览器支持,其实CORS所有的配置都是在服务端进行的,而前端的操作浏览器会自动完成. 在本例中,将演示如何再ASP.NET Core中实现CORS跨域. 前期准备 你需要windows系统. 你需要安装IIS. 推荐使用VS2015 Upda

  • 详解如何在ASP.Net Core中实现健康检查

    健康检查 常用于判断一个应用程序能否对 request 请求进行响应,ASP.Net Core 2.2 中引入了 健康检查 中间件用于报告应用程序的健康状态. ASP.Net Core 中的 健康检查 落地做法是暴露一个可配置的 Http 端口,你可以使用 健康检查 去做一个最简单的活性检测,比如说:检查网络和系统的资源可用性,数据库资源是否可用,应用程序依赖的消息中间件或者 Azure cloud service 的可用性 等等,这篇文章我们就来讨论如何使用这个 健康检查中间件. 注册健康检查

随机推荐