路由
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]")]
最后的话 在加上一个 身份效验就完美了