在Debian系统上维护Swagger文档,可以参考以下步骤和建议:
引入依赖
如果你的项目是使用Maven管理的,在pom.xml
文件中加入以下依赖:
io.springfox springfox-boot-starter 3.0.0
配置Swagger
在Spring Boot项目的application.yml
文件中,加入以下配置:
springfox: documentation: swagger-ui: enabled: true
在项目中集成Swagger
- 在Controller中使用注解:
package com.example.demo.controller; import io.swagger.annotations.*; import org.springframework.web.bind.annotation.*; @RestController @RequestMapping("/api") @Api(tags = "Sample API") public class SampleController { @GetMapping("/hello") @ApiOperation(value = "https://www.yisu.com/ask/Returns a greeting message") public String sayHello() { return "Hello, World!"; } }
- 访问Swagger UI:
启动项目后,打开浏览器,访问 http://localhost:8080/swagger-ui/
,即可看到Swagger自动生成的文档界面。
为Swagger文档添加密码保护与登录验证
- 新建一个中间件类:
在项目根目录新建一个SwaggerAuthMiddleware.cs
的类,实现访问API文档的登录验证与登出功能。
public class SwaggerAuthMiddleware { private readonly RequestDelegate _next; private readonly string _userName = "admin"; private readonly string _password = "password"; public bool _flag = true; public SwaggerAuthMiddleware(RequestDelegate next) { _next = next; } public async Task InvokeAsync(HttpContext context) { if (context.Request.Path.StartsWithSegments("/swagger-ui") && _flag) { context.Request.Headers.Remove("Authorization"); context.Response.Headers["WWW-Authenticate"] = "Basic"; context.Response.Headers["Hello"] = "World"; context.Response.StatusCode = (int)HttpStatusCode.Unauthorized; _flag = false; return; } _flag = true; string authHeader = context.Request.Headers["Authorization"]; if (authHeader != null && authHeader.StartsWith("Basic")) { var header = AuthenticationHeaderValue.Parse(authHeader); var base64 = Convert.FromBase64String(header.Parameter); var credentials = Encoding.UTF8.GetString(base64).Split(':'); var username = credentials[0]; var password = credentials[1]; if (username.Equals(_userName) && password.Equals(_password)) { return; } } context.Response.StatusCode = (int)HttpStatusCode.Unauthorized; await _next(context); } }
- 配置中间件:
在Startup.cs
中配置中间件:
public void Configure(IApplicationBuilder app, IWebHostEnvironment env) { app.UseMiddleware(); // 其他中间件和路由配置 }
通过以上步骤,你可以在Debian系统上维护和管理Swagger文档,并确保其安全性。