ASP.NET CORE NSwag的Swagger
使用NSwag.AspNetCore启用swagger:微软官网介绍的入门方法
NSwag 提供了下列功能:
- 能够使用 Swagger UI 和 Swagger 生成器。
- 灵活的代码生成功能。
借助 NSwag,无需使用现有 API。也就是说,可使用包含 Swagger 的第三方 API,并生成客户端实现。 使用 NSwag,可以加快开发周期,并轻松适应 API 更改。
在 Startup.ConfigureServices
方法中,注册所需的 Swagger 服务:
public void ConfigureServices(IServiceCollection services) { services.AddSwaggerDocument(); //swagger services.AddControllers(); }
在 Startup.Configure
方法中,启用中间件为生成的 Swagger 规范和 Swagger UI 提供服务:
public void Configure(IApplicationBuilder app) { app.UseStaticFiles(); // Register the Swagger generator and the Swagger UI middlewares app.UseOpenApi(); app.UseSwaggerUi3(); app.UseMvc(); }
启动应用。 转到:
http://localhost:<port>/swagger
,以查看 Swagger UI。http://localhost:<port>/swagger/v1/swagger.json
,以查看 Swagger 规范。
实现登录认证token的输入
在 Startup.ConfigureServices
方法中
public void ConfigureServices(IServiceCollection services) { //services.AddSwaggerDocument(); 加了JWT授权,这行代码需要去掉 services.AddOpenApiDocument(settings => { settings.AddSecurity("身份认证Token", Enumerable.Empty<string>(), new NSwag.OpenApiSecurityScheme() { Description = "JWT授权(数据将在请求头中进行传输) 直接在下框中输入Bearer {token}(注意两者之间是一个空格)", Name = "Authorization", In = NSwag.OpenApiSecurityApiKeyLocation.Header, Type = NSwag.OpenApiSecuritySchemeType.ApiKey }); }); services.AddControllers(); }