如何在ASP.NET中利用WebApi实现一个版本控制功能

  介绍

本篇文章为大家展示了如何在ASP。净中利用WebApi实现一个版本控制功能,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

<强> WebApi版本控制的好处

<李>

有助于及时推出功能,而不会破坏现有系统,兼容性处理更友好。

<李>

它还可以帮助为选定的客户提供额外的功能。

接下来就来实现版本控制以及在大摇大摆的UI中接入WebApi版本

一、WebApi版本控制实现

通过Microsoft.AspNetCore.Mvc。版本控制实现webapi版本控制

创建webapi项目,添加Nuget包:Microsoft.AspNetCore.Mvc。版本控制

Install-Package  Microsoft.AspNetCore.Mvc.Versioning

修改项目启动文件,使用Microsoft.AspNetCore.Mvc。版本控制

public  class 启动   {   public 才能启动(IConfiguration 配置)   {才能   ,,,Configuration =,配置;   ,,}   public 才能IConfiguration  Configuration {,得到;}//才能,却;能够method  gets  nbsp; by 从而运行时只Use 却;能够method 用add  services 用,容器。   public 才能;void  ConfigureServices (IServiceCollection 服务)   {才能   ,,,//根据需要设置,以下内容   ,,,services.AddApiVersioning (apiOtions =比;   ,,,{   ,,,,,//返回响应标头中支持的版本信息   ,,,,,apiOtions.ReportApiVersions =,真的;   ,,,,,//此选项将用于不提供版本的请求。默认情况下,,假定的,API 版本为1.0   ,,,,,apiOtions.AssumeDefaultVersionWhenUnspecified =,真的;   ,,,,,//缺省api版本号,支持时间或数字版本号   ,,,,,apiOtions.DefaultApiVersion =, new  ApiVersion (1, 0);   ,,,,,//支持MediaType,头,QueryString 设置版本号;缺省为变量的名称,UrlSegment设置版本号,后面会详细说明对于作用   ,,,,,apiOtions.ApiVersionReader =, ApiVersionReader.Combine (   ,,,,,,,new  MediaTypeApiVersionReader (“api-version"),   ,,,,,,,new  HeaderApiVersionReader (“api-version"),   ,,,,,,,new  QueryStringApiVersionReader (“api-version"),   ,,,,,,,new  UrlSegmentApiVersionReader ());   ,,,});   ,,,services.AddControllers ();   ,,}//才能,却;能够method  gets  nbsp; by 从而运行时只Use 却;能够method 用configure 从而HTTP  request 管道。   public 才能;void 配置(IApplicationBuilder 应用,IWebHostEnvironment  env)   {才能   ,,,if  (env.IsDevelopment ())   ,,,{   ,,,,,app.UseDeveloperExceptionPage ();   ,,,}   ,,,app.UseHttpsRedirection ();      ,,,//使用ApiVersioning   ,,,app.UseApiVersioning ();   ,,,app.UseRouting ();   ,,,app.UseAuthorization ();   ,,,app.UseEndpoints (endpoints =比;   ,,,{   ,,,,,endpoints.MapControllers ();   ,,,});   ,,}   }

WebApi设置版本:

)通过ApiVersion标记指定指定控制器或方法的版本号;Url参数控制版本(QueryStringApiVersionReader),如下:

namespace  WebAPIVersionDemo.Controllers   {   (ApiController)才能   [才能路线(“(控制器)“)//才能弃用=true:表示v1即将弃用,响应头中返回   [ApiVersion才能(“1.0“,,Deprecated =, true))   [ApiVersion才能(“2.0“)]public  class  WeatherForecastController : ControllerBase   {才能   ,,,private  static  readonly  string [], Summaries =,新的[]{“Freezing",,“Bracing",,“Chilly",,“Cool",,“Mild",,“Warm",,“Balmy",,“Hot",,“Sweltering",,“Scorching"};   ,   ,,,(HttpGet)   ,,,public  IEnumerable, ()   ,,,{   ,,,,,var  rng =, new 随机();   ,,,,,return  Enumerable.Range (1,, 5) .Select (index =祝辞,new 预报   ,,,,,{   ,,,,,,,Date =, DateTime.Now.AddDays(指数),   ,,,,,,,TemperatureC =, rng.Next(-20年,55岁),   ,,,,,,,Summary =,美元“v1:{总结(rng.Next (Summaries.Length)]}“;   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null

如何在ASP.NET中利用WebApi实现一个版本控制功能