Aspnet Core 对 Resetful API版本的支持
2024-08-26 06:13:21
在实际项目过程中API往往会收到迭代的影响,同时具备多个版本,因此resetful接口的版本话是非常重要的。
其实官方就提供了很好的支持,微软爸爸在nuget提供了Microsoft.AspNetCore.Mvc.Versioning 2.3.0
该包还具有很多其他的功能,具体细节请移步官方的github
废话不多,直接上步骤
- Nuget安装 Microsoft.AspNetCore.Mvc.Versioning.
- 在startup.cs中做如下配置
public void ConfigureServices(IServiceCollection services)
{
services.AddMvc();
services.AddApiVersioning(o => o.ApiVersionReader = new HeaderApiVersionReader("api-version"));
} 加入Controller内的配置
using Microsoft.AspNetCore.Mvc.Versioning;
namespace Product.CommandService.Controllers.Product.V1
{
[ApiVersion("1.0")]
[Produces("application/json")]
[Route("api/Product")]
public class ProductController : Controller
{
}
} namespace Product.CommandService.Controllers.Product.V2
{
[ApiVersion("2.0")]
[Produces("application/json")]
[Route("api/Product")]
public class ProductController : Controller
{
}
}如果你不希望有些接口使用API Version
[ApiVersionNeutral]
[Route("api/optout")]
public class OptOutControler : Controller
{
[HttpGet]
public string Get() => HttpContext.GetRequestedApiVersion().ToString();
}- 之后客户端访问的时候都需要在头部加入api-version,如nodejs实例代码
var http = require("http"); var options = {
"method": "GET",
"hostname": [
"localhost"
],
"port": "5000",
"path": [
"ioc",
"showmodule"
],
"headers": {
"api-version": "1.0",
"Cache-Control": "no-cache",
"Postman-Token": "2286a575-559d-4789-8056-eb26223f6fa4"
}
}; var req = http.request(options, function (res) {
var chunks = []; res.on("data", function (chunk) {
chunks.push(chunk);
}); res.on("end", function () {
var body = Buffer.concat(chunks);
console.log(body.toString());
});
}); req.end();
最新文章
- MVC下压缩输入的HTML内容
- iOS8沙盒路径的变化
- UVA - 11584 Partitioning by Palindromes[序列DP]
- 入手了[云梯的VPN]--水文
- Angular Module声明和获取重载
- .Net Core 之 图形验证码
- 数字信号处理实验(四)——数字滤波器结构
- Java基础 静态块、非静态块、构造函数的执行顺序
- Markdown中插入数学公式
- No mapping found for HTTP request with URI [] in DispatcherServlet with name 'appServlet'
- [css]【转载】CSS样式分离之再分离
- 【转】java多态详解
- OWIN katana注册中间件的几种写法
- OpenJudge/Poj 1936 All in All
- SQL Server索引语法 <;第四篇>;
- 打工心态废掉了很多人,包括你吗?(你把现在这家公司的业务都弄清楚、弄懂了吗?君子报仇十年不晚!不离不弃!)good
- LeetCode题解之Binary Tree Right Side View
- Linux之grep的使用
- i.MX6UL -- PWM用户空间使用方法【转】
- pyHook监听用户鼠标、键盘事件