自动休息定位 Web API 版本



我还没有对我的 api 实现版本控制,因为想先获取更多信息。 我正在使用 asp.net Web api,并使用AutoRest集成到WPF应用程序中。 它已经运行了几个月,但我希望在 API 中使用版本控制。

对于从 WPF 到 API 的典型调用,有没有办法针对特定版本的 api?

public async Task<ObservableCollection<EventsDTO>> GetEvents(bool ShowInActive)
{
try
{
CheckCredentials.CheckValidCredentials();
using (var db = new BuxtedAPI(CheckCredentials.RestCredentials))
{       
var res = await db.GetEventsAsync(ShowInActive).ConfigureAwait(false);
var obs = new ObservableCollection<EventsDTO>(res);
return obs;
}
}
catch (Exception ex)
{
logger.Error(ex);               
return null;
}
}

提前谢谢。

如果其他人有这个问题。

public async Task<ObservableCollection<EventsDTO>> GetEvents(bool ShowInActive)
{
try
{
CheckCredentials.CheckValidCredentials();
using (var db = new BuxtedAPI(CheckCredentials.RestCredentials))
{
db.HttpClient.DefaultRequestHeaders.Add("X-Version", "2.0");
var res = await db.GetEventsAsync(ShowInActive).ConfigureAwait(false);
var obs = new ObservableCollection<EventsDTO>(res);
return obs;
}
}
catch (Exception ex)
{
logger.Error(ex);
MessageBox.Show(
$"{ex.Message}{Environment.NewLine}{ex.InnerException?.ToString() ?? ""}");
return null;
}
}

并在控制器上

public class EventV2Controller : ApiController
{
[ApiVersion("2.0")]
[RoutePrefix("api/events")]

和配置。

config.AddApiVersioning(cfg =>
{
cfg.DefaultApiVersion = new ApiVersion(1, 0);
cfg.AssumeDefaultVersionWhenUnspecified = true;
cfg.ReportApiVersions = true;
cfg.ApiVersionReader = new HeaderApiVersionReader("X-Version");
});

最新更新