netcore3.0 webapi集成Swagger 5.0,Swagger使用
时间:2019-11-13
本文章向大家介绍netcore3.0 webapi集成Swagger 5.0,Swagger使用,主要包括netcore3.0 webapi集成Swagger 5.0,Swagger使用使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
Swagger使用
1、描述
Swagger 是一个规范和完整的框架,用于生成、描述、调用和可视化 RESTful 风格的 Web 服务。
作用:
1.接口的文档在线自动生成。
2.功能测试
本文转自:https://www.cnblogs.com/datacool/p/11805585.html
今天来尝尝鲜。貌似.net core 3.0使用Swagger 4.0.1会报错,随手一搜,还没人写这个把调试通过的代码贴一下:
依赖包:
1 using Microsoft.AspNetCore.Builder; 2 using Microsoft.AspNetCore.Hosting; 3 using Microsoft.Extensions.Configuration; 4 using Microsoft.Extensions.DependencyInjection; 5 using Microsoft.Extensions.Hosting; 6 using Microsoft.OpenApi.Models; 7 using System; 8 using System.IO; 9 using System.Reflection; 10 11 namespace WebApplication4 12 { 13 public class Startup 14 { 15 public Startup(IConfiguration configuration) 16 { 17 Configuration = configuration; 18 } 19 20 public IConfiguration Configuration { get; } 21 22 // This method gets called by the runtime. Use this method to add services to the container. 23 public void ConfigureServices(IServiceCollection services) 24 { 25 services.AddControllers(); 26 services.AddSwaggerGen(c => 27 { 28 c.SwaggerDoc("v1", new OpenApiInfo { Title = ".Net Core中间件API文档", Version = "v1" }); 29 // 为 Swagger 设置xml文档注释路径 30 var xmlFile = $"{Assembly.GetExecutingAssembly().GetName().Name}.xml"; 31 var xmlPath = Path.Combine(AppContext.BaseDirectory, xmlFile); 32 c.IncludeXmlComments(xmlPath); 33 }); 34 } 35 36 // This method gets called by the runtime. Use this method to configure the HTTP request pipeline. 37 public void Configure(IApplicationBuilder app, IWebHostEnvironment env) 38 { 39 //启用中间件服务生成Swagger 40 app.UseSwagger(); 41 //启用中间件服务生成SwaggerUI,指定Swagger JSON终结点 42 app.UseSwaggerUI(c => 43 { 44 c.SwaggerEndpoint("/swagger/v1/swagger.json", ".Net Core中间件API文档 V1"); 45 c.RoutePrefix = string.Empty;//设置根节点访问 46 }); 47 if (env.IsDevelopment()) 48 { 49 app.UseDeveloperExceptionPage(); 50 } 51 app.UseRouting(); 52 app.UseAuthorization(); 53 app.UseEndpoints(endpoints => 54 { 55 endpoints.MapControllers(); 56 }); 57 } 58 } 59 }
控制器:
1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Threading.Tasks; 5 using Microsoft.AspNetCore.Mvc; 6 using Microsoft.Extensions.Logging; 7 8 namespace WebApplication4.Controllers 9 { 10 /// <summary> 11 /// 天气预报API 12 /// </summary> 13 [ApiController] 14 [Route("api/[controller]/[action]")] 15 public class WeatherForecastController : ControllerBase 16 { 17 private static readonly string[] Summaries = new[] 18 { 19 "Freezing", "Bracing", "Chilly", "Cool", "Mild", "Warm", "Balmy", "Hot", "Sweltering", "Scorching" 20 }; 21 22 private readonly ILogger<WeatherForecastController> _logger; 23 24 public WeatherForecastController(ILogger<WeatherForecastController> logger) 25 { 26 _logger = logger; 27 } 28 29 /// <summary> 30 /// 获取当前天气 31 /// </summary> 32 /// <param name="size">城市的个数</param> 33 /// <returns></returns> 34 [HttpGet] 35 [HttpPost] 36 public IEnumerable<WeatherForecast> GetWeather(string size = "5") 37 { 38 var rng = new Random(); 39 return Enumerable.Range(1, Convert.ToInt32(size)).Select(index => new WeatherForecast 40 { 41 Date = DateTime.Now.AddDays(index), 42 TemperatureC = rng.Next(-20, 55), 43 Summary = Summaries[rng.Next(Summaries.Length)] 44 }) 45 .ToArray(); 46 } 47 /// <summary> 48 /// 测试方法 49 /// </summary> 50 /// <returns></returns> 51 [HttpGet] 52 public ApiResult Demo() 53 { 54 return new ApiResult 55 { 56 Message = "操作成功!", 57 Success = true, 58 Result = 1 59 }; 60 } 61 } 62 }
原文地址:https://www.cnblogs.com/bgh408/p/11849845.html
- 2017 Multi-University Training Contest - Team 9 1002&&HDU 6162 Ch’s gift【树链部分+线段树】
- 【Java学习笔记之三十二】浅谈Java中throw与throws的用法及异常抛出处理机制剖析
- Linux上访问SQL Server数据库
- 2017 Multi-University Training Contest - Team 9 1001&&HDU 6161 Big binary tree【树形dp+hash】
- 【Java学习笔记之三十三】详解Java中try,catch,finally的用法及分析
- 【Java学习笔记之二十九】Java中的"equals"和"=="的用法及区别
- NET跨平台:在Ubuntu下搭建ASP.NET 5开发环境
- 【Code】关关的刷题日记22——Leetcode 53. Maximum Subarray
- 【Java学习笔记之三十四】超详解Java多线程基础
- Codeforces 842B Gleb And Pizza【几何,水】
- Python3希尔排序
- Codeforces 842A Kirill And The Game【暴力,水】
- Wannafly模拟赛 A.矩阵(二分答案+hash)
- 【Java数据结构学习笔记之一】线性表的存储结构及其代码实现
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Ant Design for Vue的Table组件一列显示多个参数
- 【React】React-router的使用记录
- Blazor带我重玩前端(四)
- Android绘制系统简介
- E: Sub-process /usr/bin/dpkg returned an error code (1) 解决方案
- Linux 如何使用包管理器安装 Node.js
- CSS画图
- R语言聚类算法的应用实例
- Python时间序列选择波动率预测指数收益算法分析案例
- Linux 常用系统工作命令-date
- R使用LASSO回归预测股票收益
- Linux 常用系统工作命令-reboot、poweroff、wget
- Node.js + Socket.io 实现一对一即时聊天
- Linux 常用系统工作命令-ps、top
- Python之LDA主题模型算法应用