From e58a514ebc61da928320ef27e1db9f9aa09ca200 Mon Sep 17 00:00:00 2001 From: taogang Date: Sun, 23 Mar 2025 10:58:57 +0800 Subject: [PATCH] feat:The operationId value in the openapi.json file generated by the openapi plugin remains the same as the default rule of springdoc-openapi --- .../doc/builder/openapi/OpenApiBuilder.java | 21 ++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/ly/doc/builder/openapi/OpenApiBuilder.java b/src/main/java/com/ly/doc/builder/openapi/OpenApiBuilder.java index 8dcb28a34..6f476e801 100644 --- a/src/main/java/com/ly/doc/builder/openapi/OpenApiBuilder.java +++ b/src/main/java/com/ly/doc/builder/openapi/OpenApiBuilder.java @@ -36,7 +36,6 @@ import org.apache.commons.lang3.StringUtils; import java.util.*; -import java.util.stream.Collectors; /** * @@ -52,6 +51,11 @@ public class OpenApiBuilder extends AbstractOpenApiBuilder { */ private static final OpenApiBuilder INSTANCE = new OpenApiBuilder(); + /** + * OperationId OrderNo Map + */ + private static final Map OPERATIONID_ORDER_NO_MAP = new HashMap<>(); + /** * private constructor */ @@ -148,8 +152,19 @@ public Map buildPathUrlsRequest(ApiConfig apiConfig, ApiMethodDo request.put("deprecated", apiMethodDoc.isDeprecated()); List paths = OpenApiSchemaUtil.getPatternResult("[A-Za-z0-9_{}]*", apiMethodDoc.getPath()); paths.add(apiMethodDoc.getType()); - String operationId = paths.stream().filter(StringUtils::isNotEmpty).collect(Collectors.joining("-")); - request.put("operationId", operationId); + + // add operationId + String methodName = apiMethodDoc.getMethodName(); + if (OPERATIONID_ORDER_NO_MAP.containsKey(methodName)) { + int order = OPERATIONID_ORDER_NO_MAP.get(methodName); + request.put("operationId", methodName + "_" + order); + OPERATIONID_ORDER_NO_MAP.put(methodName, order + 1); + } + else { + request.put("operationId", methodName); + OPERATIONID_ORDER_NO_MAP.put(methodName, 1); + } + // add extension attribution if (apiMethodDoc.getExtensions() != null) { apiMethodDoc.getExtensions().forEach((key, value) -> request.put("x-" + key, value));