程序问答   发布时间:2022-06-01  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了ASP.NET Core API 版本大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决ASP.NET Core API 版本?

开发过程中遇到ASP.NET Core API 版本的问题如何解决?下面主要结合日常开发的经验,给出你关于ASP.NET Core API 版本的解决方法建议,希望对你解决ASP.NET Core API 版本有所启发或帮助;

我正在尝试使用 ASP.NET Core 及其版本创建 API。我安装了 @H_529_3@microsoft.AspNetCore.Mvc.Versioning。我喜欢的就是URL中所有带有版本的API,所以很容易理解我使用的是什么版本的API。例如/API/v1/tableAzurecategory

为此,在我的 Startup.cs 中,我添加了以下代码行:

services.AddAPIVersioning(config =>
{
    config.DefaultAPIVersion = new APIVersion(1,0);
    config.AssumeDefaultVersionWhenUnspecifIEd = true;
    config.ReportAPIVersions = true;
    config.APIVersionReader = new UrlsegR_59_11845@entAPIVersionReader();
});

然后,在我的 API 控制器中我添加了一些装饰

[APIController]
[APIVersion("1.0")]
[Route("API/v{version:APIVersion}/[controller]")]
public class tableAzurecategoryController : ControllerBase
{
}

我运行应用程序,打开 Swagger,这就是我看到的(基本上 {version:APIVersion} 没有被 API 版本替换)

@H_674_29@

我环顾四周,但我只找到了与上面类似的实现。有什么想法吗?

解决方法

实现这一目标的另一种方法是创建基于查询的版本控制解决方案。

假设我们有两个控制器:ExampleV1Controller 和 ExampleV2Controller

using Microsoft.AspNetCore.Mvc;

namespace MyAPI.Controllers
{
    [ApiController]  
    [ApiVersion("1.0")]  
    [Route("api/example")]
    public class ExampleV1Controller : ControllerBase  
    {
        [httpGet]  
        public IActionResult Get()  
        {  
            return new OkObjectResult("Example API v1");  
        }
    }

    [ApiController]  
    [ApiVersion("2.0")]  
    [Route("api/example")]
    public class ExampleV2Controller : ControllerBase  
    {
        [httpGet]  
        public IActionResult Get()  
        {  
            return new OkObjectResult("Example API v2");  
        }
    }
}

根据您的 Startup.cs 配置,它将默认为 API 版本 1.0。要向 V2 版本发出请求,请使用 https://localhost:5001/api/example?api-version=2.0

我没有亲自测试过,但它应该可以工作。

,

{version} 路由参数的行为与任何其他路由参数一样。如果路由是 values/{iD}/subvalues,您会期望必须填写一个名为 id 的参数。

用于 API 版本控制的 API Explorer 扩展知道与 API 关联的版本。此值用作默认值,但 OpenAPI/Swagger 生成器(例如:Swashbuckle)可能不会在没有一点帮助的情况下使用默认值(请参阅端到端 Swagger Example)。当且仅当您按 URL 段进行版本控制时,您可以让 API Explorer 扩展使用默认值扩展路由模板并使用配置删除 API 版本参数:

services.AddVersionedApiExplorer(options => options.SubstituteApiVersionInUrl = truE);

在提供的示例中,version 路由参数将被删除,路由模板将更新为 "api/v1.0/TableAzureCategory",我认为这是您想要的。

大佬总结

以上是大佬教程为你收集整理的ASP.NET Core API 版本全部内容,希望文章能够帮你解决ASP.NET Core API 版本所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签:Core版本