Core Web Api 踩坑

路由


core web api 怎么注册一个全局 路由方式呢? 发现网上有代码用的方法就是 在 方法前面加一个特性的方式

我按照网上的做法做完后 抹除下面的代码运行然后运行就报错了 大概意思就是  控制器必须由 RouteArrribute 特性修饰

如果必须要修饰的话 那全局 路由搞来就没意义了 ,那就 每个控制器写一遍路由吧

而且 这边的路由规则是不用事先申明的

我干掉了上面的打叉的代码   ,按照如下方式写好特性,依然可以按照如下路由规则正常访问

Swagger 文档


之前 的 Framework 版本的 api 就有 了文档插件  core 也有  搜索如下   

swashbuckle.asonetcore 

安装完毕后注册服务:

代码:

  public void ConfigureServices(IServiceCollection services)
        {
            services.AddSwaggerGen(s =>
            {
                s.SwaggerDoc("v1", new OpenApiInfo()
                {
                    Title = "test",
                    Version = "version-01",
                    Description = "好好学习"
                });
            }); 
            services.AddControllers();
        }

然后在 Startup 下面 添加一下   

代码如下:

    //启用swagger
            app.UseSwagger();
            app.UseSwaggerUI(option=>{ option.SwaggerEndpoint("swagger/v1/swagger.json", "test1");});

然后 调试一下看看 如下错误我明明配置的地址是   swagger/v1/swagger.json  但是报错是  swagger/swagger/v1/swagger.json   我估计是swagger 自己提供了一个根目录 所以我删掉一个

    //启用swagger
            app.UseSwagger();
            app.UseSwaggerUI(option=>{ option.SwaggerEndpoint("v1/swagger.json", "test1");});

果然就正常了  发现 这里又有了新的问题 

看来路由的规则要改改 后来发现 这个插件似乎 不认识  { }  但是认识 [ ]

 [Route("api/[Controller]/[Action]")]

最后的话 在加上一个 身份效验就完美了

猜你喜欢

转载自blog.csdn.net/qq_36445227/article/details/108981578