失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > ASP.Net Core WebAPI示例创建和配置Swagger

ASP.Net Core WebAPI示例创建和配置Swagger

时间:2024-06-03 04:41:55

相关推荐

ASP.Net Core WebAPI示例创建和配置Swagger

Core Web Api示例项目工程下载

一、创建 Core Web API项目

这是创建完成后的目录内容

二、编辑控制器

2.1、查看运行自带的天气预报信息

①查看控制器自带了关于天气预报的信息内容【只有Get方法】信息。

②运行该WebAPI程序

③运行效果

2.2、修改自带的天气预报为值控制器

①修改路由格式为【api/控制器/方法(api/[controller]/[action])】

[Route("api/[controller]/[action]")]

②值控制器包含Get、Post、Put 和 Delete四种方法

using Microsoft.AspNetCore.Mvc;using Microsoft.Extensions.Logging;using System;using System.Collections.Generic;using System.Linq;using System.Threading.Tasks;namespace Test_NETCoreWebAPI.Controllers{[ApiController][Route("api/[controller]/[action]")]public class ValuesController : ControllerBase{/// <summary>/// 获取文本/// </summary>/// <returns></returns>[HttpGet]public ActionResult<string> Get(){string str = $"Hello MyFirst WebAPI!";return str;}/// <summary>/// 两数相加/// </summary>/// <param name="num1"></param>/// <param name="num2"></param>/// <returns></returns>[HttpGet]public ActionResult<int> Sum(int num1,int num2){return num1 + num2;}/// <summary>/// 两数相减/// </summary>/// <param name="param">参数</param>/// <returns></returns>[HttpPost]public ActionResult<int> Subtract(Param param){int result = param.num1 - param.num2;return result;}//提交[HttpPut]public ActionResult<string> Submit(){return "提交资源成功!!!";}//删除[HttpDelete]public ActionResult<string> Delete(){return "删除资源成功";}}//Class_end/// <summary>/// 参数/// </summary>public class Param{/// <summary>/// 第一个数/// </summary>public int num1 { get; set; }/// <summary>/// 第二个数/// </summary>public int num2 { get; set; }}}

③运行配置

运行结果如下:

如果要查看两数相加,则将调试-->启动浏览器内容替换为【api/values/Sum】即可,然后点击Ctrl+S保存,运行结果如下所示:

加上参数如下所示:

至此就完成了基本的Web Api搭建实现。

三、配置Swagger流程

3.1、介绍Swagger

但是基本的Web Api接口测试查看管理不方便,为了方便管理使用Swagger。

Swagger 是一个规范和完整的框架,用于生成、描述、调用和可视化RESTful风格的 Web 服务。

3.2、安装配置Swagger

①在项目中引入【Swashbuckle.AspNetCore】包

②修改【Startup.cs文件】

首先所有引入的命名空间如下:

using Microsoft.AspNetCore.Builder;using Microsoft.AspNetCore.Hosting;using Microsoft.AspNetCore.Mvc;using Microsoft.Extensions.Configuration;using Microsoft.Extensions.DependencyInjection;using Microsoft.Extensions.Hosting;using System;using System.IO;using System.Reflection;

接着在ConfigureServices方法里加入下面的代码,注册Swagger生成器,定义一个文档,设置xml文档的注释路径。

//配置Swagger//注册Swagger生成器,定义一个Swagger 文档services.AddSwaggerGen(c =>{c.SwaggerDoc("v1", new Microsoft.OpenApi.Models.OpenApiInfo{Version = "v1",Title = "接口文档",Description = "RESTful API"});// 为 Swagger 设置xml文档注释路径var xmlFile = $"{Assembly.GetExecutingAssembly().GetName().Name}.xml";var xmlPath = bine(AppContext.BaseDirectory, xmlFile);c.IncludeXmlComments(xmlPath);});

最后在Configure方法里加入下面的代码,启用中间件服务使用生成Swagger和SwaggerUI,将SwaggerUI中的RoutePrefix设为空字符串,这样就能在根节点(http://localhost:port)直接显示SwaggerUI界面。

//启用中间件服务生成Swaggerapp.UseSwagger();//启用中间件服务生成SwaggerUI,指定Swagger JSON终结点app.UseSwaggerUI(c =>{c.SwaggerEndpoint("/swagger/v1/swagger.json", "Web App V1");c.RoutePrefix = string.Empty;//设置根节点访问});

编辑后Startup.cs完整代码如下:

using Microsoft.AspNetCore.Builder;using Microsoft.AspNetCore.Hosting;using Microsoft.AspNetCore.Mvc;using Microsoft.Extensions.Configuration;using Microsoft.Extensions.DependencyInjection;using Microsoft.Extensions.Hosting;using System;using System.IO;using System.Reflection;namespace Test_NETCoreWebAPI{public class Startup{public Startup(IConfiguration configuration){Configuration = configuration;}public IConfiguration Configuration { get; }// This method gets called by the runtime. Use this method to add services to the container.public void ConfigureServices(IServiceCollection services){services.AddControllers();services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_3_0);//配置Swagger//注册Swagger生成器,定义一个Swagger 文档services.AddSwaggerGen(c =>{c.SwaggerDoc("v1", new Microsoft.OpenApi.Models.OpenApiInfo{Version = "v1",Title = "接口文档",Description = "RESTful API"});// 为 Swagger 设置xml文档注释路径var xmlFile = $"{Assembly.GetExecutingAssembly().GetName().Name}.xml";var xmlPath = bine(AppContext.BaseDirectory, xmlFile);c.IncludeXmlComments(xmlPath);});}// This method gets called by the runtime. Use this method to configure the HTTP request pipeline.public void Configure(IApplicationBuilder app, IWebHostEnvironment env){if (env.IsDevelopment()){app.UseDeveloperExceptionPage();}app.UseRouting();app.UseAuthorization();app.UseEndpoints(endpoints =>{endpoints.MapControllers();});//启用中间件服务生成Swaggerapp.UseSwagger();//启用中间件服务生成SwaggerUI,指定Swagger JSON终结点app.UseSwaggerUI(c =>{c.SwaggerEndpoint("/swagger/v1/swagger.json", "Web App V1");c.RoutePrefix = string.Empty;//设置根节点访问});}}//Class_end}

④配置项目属性的生成和调试内容

⑤运行程序查看效果

3.3、使用Swagger

①打开第一个方法,点击Try it out按钮

②这个是无参的方法,直接点击Execute执行

③执行后可以看到Response body返回的内容

同样点击第二个方法,给出两个参数,输入执行,得到返回结果

同样第三个方法的参数是model,要传递json格式的,默认已经生成好了,我们只需要编辑改一下值,再执行就行了。

如果觉得《ASP.Net Core WebAPI示例创建和配置Swagger》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。