gpt4 book ai didi

c# - 版本控制 api 端点

转载 作者:行者123 更新时间:2023-11-30 22:55:44 25 4
gpt4 key购买 nike

我正在使用需要版本控制的 API。现在,我这样做:

namespace MixApi.UI.Controllers
{
[ApiVersion("1.0")]
public class VoController : ApiController
{
[Route("api/v{version:apiVersion}/vo/order/")]
public IHttpActionResult Method1() { }
}
}

namespace MixApi.UI.Controllers.v2
{
[ApiVersion("2.0")]
public class VoController : ApiController
{
[Route("api/v{version:apiVersion}/vo/order/")]
public IHttpActionResult Method1() { } // Improved this with new logic

[Route("api/v{version:apiVersion}/vo/order2/")]
public IHttpActionResult Method2() { } // New method for v2
}
}

但是,假设我要添加一个新 Controller ,比如 ArticleController。我应该如何版本化它?应该是v1还是v2?

我认为它应该是 v1,因为它是该 Controller /端点的第一个版本。但后来我意识到我正在对 Controller (端点)进行版本控制,而不是 API 本身。所以我对在这种情况下应该如何进行版本控制感到有点困惑。

你们是怎么做到的?

最佳答案

您可以为一个 Controller 分配多个版本,在您的情况下,我可能会考虑这样做,如果您使用的是版本 2 并推出全新的 Controller ,您可以为它分配一个版本或两个版本。

[Authorize]
[ApiVersion("3.0")]
[ApiVersion("2.0")]
[Route("api/v{version:apiVersion}/Users")]

我确实认为该版本应该被视为完整的产品,因此用户会使用版本 2,因为它是最新的(例如),但突然之间他们必须引用版本 1 才能获得新功能。可能会引起混淆,而且对客户似乎不友好

关于c# - 版本控制 api 端点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55021561/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com