首页 > 其他分享 >.Net6添加Swagger

.Net6添加Swagger

时间:2022-09-02 18:14:24浏览次数:49  
标签:app 中间件 添加 Net6 WebApplication Swagger public

一.添加Swagger引用

添加Swashbuckle.AspNetCore
image

二.使用Swagger

1.新建TestController控制器

[ApiController]
[Route("[controller]/[action]")]
public class TestController : Controller
{
    /// <summary>
    /// 获取信息
    /// </summary>
    /// <returns></returns>
    [HttpGet]
    public string GetInfo()
    {
        return "OK";
    }

    /// <summary>
    /// 添加信息
    /// </summary>
    /// <param name="request">订单信息</param>
    /// <returns></returns>
    [HttpPost]
    public string AddInfo([FromBody] TestInfo request)
    {
        return "ok";
    }
}

2.新建TestInfo类

   public class TestInfo
{
    /// <summary>
    /// 名字
    /// </summary>
    public string Name { get; set; }
    /// <summary>
    /// 年纪
    /// </summary>
    public int Age { get; set; }
    /// <summary>
    /// 地址
    /// </summary>
    public decimal Adress { get; set; }
}

3.在Program.cs添加Swagger

using Microsoft.OpenApi.Models;
using System.Reflection;
//WebApplication表示整个Web应用程序,调用CreateBuilder()方法创建一个WebApplication对象
var builder = WebApplication.CreateBuilder(args);

// Add services to the container.
//WebApplication对象添加RazorPage服务,也可以添加其他服务,比如依赖注入,登录等
//builder.Services.AddRazorPages();
builder.Services.AddControllersWithViews();

//创建Swagger
builder.Services.AddSwaggerGen(options =>
{
	options.SwaggerDoc("v1", new OpenApiInfo
	{
		Version="v1",
		Title="API标题",
		Description="API描述"
	});
});
//构建一个WebApplication实例
var app = builder.Build();

// Configure the HTTP request pipeline.
//添加一个异常处理中间件,此中间件发生作用的条件是:当前运行环境必须是开发环境,如果Web应用程序出现问题,则跳转到Error.CSHTML页面
if (!app.Environment.IsDevelopment())
{
	//app.UseExceptionHandler("/Error");
	//The default HSTS value is 30 days.You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts.
	//app.UseHsts();
}

app.UseSwagger();
app.UseSwaggerUI(c =>
{
c.SwaggerEndpoint("/swagger/v1/swagger.json", "v1");
c.RoutePrefix = string.Empty;
c.DocExpansion(Swashbuckle.AspNetCore.SwaggerUI.DocExpansion.None);
c.DefaultModelsExpandDepth(-1);
});

app.UseHttpsRedirection();
//启用静态文件中间件,加上这行代码后,我们在浏览器中才能访问wwwroot目录下的文件,否则会报错
app.UseStaticFiles();
//启动路由中间件,启用后再浏览器中输入网址Web应用才能正确解析
app.UseRouting();
//启用权限校验中间件,当我们的网站是基于身份认证的话需要用到
app.UseAuthorization();
//启用RazorPages中间件,如果是Mvc应用,则使用app.UseMvc()中间件
//app.MapRazorPages();

app.MapControllerRoute(
	name: "default",
	pattern: "{controller=Home}/{action=Index}/{id?}");

//启动应用,当我们开始执行WebApp,浏览器就会帮我们打开网站Index页面,
//如果去掉这一行,就会提示没有此对象关联的进程
app.Run();

image
此时点击运行应该会出现如下效果
image

4.Swagger添加接口注释

右键选择编辑项目文件
image

添加<GenerateDocumentationFile>true</GenerateDocumentationFile>
image

在Program.CS中添加以下代码

var xmlFilename = $"{Assembly.GetExecutingAssembly().GetName().Name}.xml";
options.IncludeXmlComments(Path.Combine(AppContext.BaseDirectory, xmlFilename));

image

运行程序,效果如下:
image

5.修改默认端口

找到launchSettings.json文件
image
image

标签:app,中间件,添加,Net6,WebApplication,Swagger,public
From: https://www.cnblogs.com/Sx98/p/16650802.html

相关文章

  • Java 在Word文档中添加艺术字
    艺术字是以普通文字为基础,经过专业的字体设计师艺术加工的变形字体。字体特点符合文字含义、具有美观有趣、易认易识、醒目张扬等特性,是一种有图案意味或装饰意味的字体变......
  • 日常开发记录- git 添加多个远程仓库
    应用场景:同步不同服务器下的项目开发进度查看远程仓库:gitremote-v添加远程仓库:temp是新的远程仓库名,不能与master重名,这样就做好本地与远程的关联了gitremote......
  • 宝塔添加node,js项目
    第一步  第二步  第三步:数据库配置  第四步:增删改查…… ......
  • C#|在List集合为NULL时需要添加数据的处理方法
    最近写了一个循环往字典的Value值添加数据的程序(字典的Value为一个List),经常碰到“Objectreferencenotsettoaninstanceofanobject”,就自己去了解了一下空集合和......
  • C#|Dictionary 内含有 List 的添加操作
    最近在循环中给字典中的列表进行添加操作时,发现直接通过一个列表添加是不可行的,需要创建新的列表才可以,还是比较好理解的,如下所示:Dictionary<string,List<string>>myDic......
  • 技术分享| 基于RTM 实现的呼叫邀请如何添加推送功能?
    RTM实时消息服务,解决了在线实时信令的传递,如何配合推送服务,去做离线通知功能一直困扰着开发者,本文从RTM的功能以及响应机制入手,教大家如何通过RTM配合第三方推送服务来......
  • linux用户添加、删除、添加附属组、移出附属组
    1#!/bin/bash23functionprint_usage()4{5echo"./userM.sh-A<username>添加用户"6echo"./userM.sh-MG<username>添加到root组"7......
  • Linux 添加环境变量
     linux怎么添加环境变量2022-06-2210:59:55一、需要明白以下2点:一般只用第三步即可1、Linux的环境变量是保存在变量PATH中,可通过Linuxshell命令echo$PATH查......
  • 低代码平台amis学习 四:一个表单添加多个按钮,不同按钮触发不同请求
    通过上一节的学习,了解到如何在amis表单中发送网络请求,本文继续处理一种场景:一个表单中有多个按钮,点击不同按钮时,可以触发不同的网络请求回想一下,在之前的表单配置中,发送......
  • 若依swagger不登录调接口
    首先springboot集成swagger添加依赖包,pom.xml文件如下<!--Swagger--><dependency><groupId>io.springfox</groupId><artifactId>springfox-swagger-ui</......