问题描述: 在使用ASP.NET WebApi开发接口时,当接口的版本未指定时,返回了错误。
解决方法:
Install-Package Microsoft.AspNet.WebApi.Versioning
using Microsoft.Web.Http;
using Microsoft.Web.Http.Versioning;
using System.Web.Http;
public static class WebApiConfig
{
public static void Register(HttpConfiguration config)
{
// 启用版本控制
config.AddApiVersioning(options =>
{
// 指定默认版本
options.DefaultApiVersion = new ApiVersion(1, 0);
// 允许不指定版本
options.AssumeDefaultVersionWhenUnspecified = true;
// 添加版本控制策略
options.ApiVersionReader = new HeaderApiVersionReader("api-version");
});
// 其他配置...
}
}
using Microsoft.Web.Http;
using System.Web.Http;
[ApiVersion("1.0")]
[RoutePrefix("api/values")]
public class ValuesController : ApiController
{
// GET api/values
[HttpGet]
[Route("")]
public IHttpActionResult Get()
{
return Ok(new string[] { "value1", "value2" });
}
}
GET /api/values HTTP/1.1
Host: localhost:12345
api-version: 1.0
如果不指定版本号,默认使用注册的默认版本。
这样就解决了“asp.net WebApi ApiVersionUnspecified返回错误”的问题。