Open Kyle0820 opened 9 months ago
问题在于作者用了
需要作者替换为
问题在于作者用了 javax.servlet javax.servlet-api provided
需要作者替换为 jakarta.servlet jakarta.servlet-api provided
要么就是开发者自己下载源码重新编译
问题在于作者用了 javax.servlet javax.servlet-api provided 需要作者替换为 jakarta.servlet jakarta.servlet-api provided
要么就是开发者自己下载源码重新编译
是的我也知道原因,但是项目太忙没精力提交PR, 因为这个我已经用回spring boot2.7了
问题在于作者用了 javax.servlet javax.servlet-api provided 需要作者替换为 jakarta.servlet jakarta.servlet-api provided
要么就是开发者自己下载源码重新编译
是的我也知道原因,但是项目太忙没精力提交PR, 因为这个我已经用回spring boot2.7了
自己写两个接口就好了
/**
* 获取API文档
*/
@GetMapping("/v3/api-docs")
public ResponseEntity<JSONObject> apiDocs(HttpServletRequest request) {
// 从resources目录下读取openapi.json文件
String json = ResourceUtil.readUtf8Str("smart-doc/openapi.json");
JSONObject parse = JsonUtil.parse(json, JSONObject.class);
// 获得远程host 如https://irez.cn
String remoteHost = request.getRequestURL().toString().replace(request.getRequestURI(), "");
// 替换servers->url
parse.getJSONArray("servers").getJSONObject(0).set("url", remoteHost);
return ResponseEntity.ok(parse);
}
/**
* 获取API文档
*/
@GetMapping("/v3/api-docs/swagger-config")
public ResponseEntity<JSONObject> swaggerConfig() {
JSONObject parse = new JSONObject();
parse.set("configUrl", "/v3/api-docs/swagger-config");
parse.set("oauth2RedirectUrl", "http://127.0.0.1:37001/swagger-ui/oauth2-redirect.html");
parse.set("url", "/v3/api-docs");
parse.set("validatorUrl", "");
return ResponseEntity.ok(parse);
}
然后引用 knife4j-openapi2-ui或者knife4j-openapi3-ui依赖
问题在于作者用了 javax.servlet javax.servlet-api provided 需要作者替换为 jakarta.servlet jakarta.servlet-api provided
要么就是开发者自己下载源码重新编译
是的我也知道原因,但是项目太忙没精力提交PR, 因为这个我已经用回spring boot2.7了
自己写两个接口就好了
/** * 获取API文档 */ @GetMapping("/v3/api-docs") public ResponseEntity<JSONObject> apiDocs(HttpServletRequest request) { // 从resources目录下读取openapi.json文件 String json = ResourceUtil.readUtf8Str("smart-doc/openapi.json"); JSONObject parse = JsonUtil.parse(json, JSONObject.class); // 获得远程host 如https://irez.cn String remoteHost = request.getRequestURL().toString().replace(request.getRequestURI(), ""); // 替换servers->url parse.getJSONArray("servers").getJSONObject(0).set("url", remoteHost); return ResponseEntity.ok(parse); } /** * 获取API文档 */ @GetMapping("/v3/api-docs/swagger-config") public ResponseEntity<JSONObject> swaggerConfig() { JSONObject parse = new JSONObject(); parse.set("configUrl", "/v3/api-docs/swagger-config"); parse.set("oauth2RedirectUrl", "http://127.0.0.1:37001/swagger-ui/oauth2-redirect.html"); parse.set("url", "/v3/api-docs"); parse.set("validatorUrl", ""); return ResponseEntity.ok(parse); }
然后引用 knife4j-openapi2-ui或者knife4j-openapi3-ui依赖 com.github.xiaoymin knife4j-openapi3-ui
提交了一个测试demo https://github.com/irezm/springboot-knife4j-smart-doc
你好,knife4j-aggregation-spring-boot-starter不支持springboot3,这里用了javax,pom和堆栈报错如下