当前位置 主页 > 网站技术 > 代码类 >

    .Net Core WebApi的简单创建以及使用方法(2)

    栏目:代码类 时间:2019-09-11 14:21

    调试运行,访问第一个方法,返回结果。

    访问第二个方法加上参数,得到结果。

    第三个方法是Post请求,无法直接输入,可以用其他方式实现。

    三、搭建Swagger

    这样WebApi 就简单实现了,不过这样不容易管理。为了更好的管理和测试我们的接口,我这里使用了Swagger框架。

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

    右键项目,点击管理NuGet程序包。

    切换到浏览,搜索“Swashbuckle.AspNetCore”,安装。

    安装完成之后,编辑Startup.cs文件。

    引用下面三个命名空间。

    using System;using System.Collections.Generic;using System.Linq;using System.Threading.Tasks;using Microsoft.AspNetCore.Mvc;namespace FirstApi.Controllers{  //路由设置  [Route("api/[controller]/[action]")]  [ApiController]  public class ValuesController : ControllerBase  {    /// <summary>    /// 获取文本    /// </summary>    /// <returns></returns>    [HttpGet]    public ActionResult<string> Get()    {      return "Hello World!";    }    /// <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;    }  }  /// <summary>  /// 参数  /// </summary>  public class Param  {    /// <summary>    /// 第一个数    /// </summary>    public int num1 { get; set; }    /// <summary>    /// 第二个数    /// </summary>    public int num2 { get; set; }  }}

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

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

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