我正在使用需要版本控制的 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/