gpt4 book ai didi

java - 如何在 swagger codegen 中设置方法名称前缀?

转载 作者:行者123 更新时间:2023-11-30 06:49:17 25 4
gpt4 key购买 nike

(Swagger 新手)

在swagger规范文件中,operationId是操作的名称,对应HTTP方法。

例如,

 "/pet/findByStatus": {
"get": {
"tags": [
"pet"
],
"summary": "Finds Pets by status",
"description": "Multiple status values can be provided with comma separated strings",
"operationId": "findPetsByStatus",

如上所示,operationId = findPetsByStatus。假设我想为我的 java 代码中的所有 get 操作生成一个前缀,prefix = 'get_'。

例如,我希望 swagger codegen 生成与带有前缀 = 'get_' 的 HTTP GET 方法对应的所有操作。具体来说,上面,它可能会生成:get_findPetsByStatus。

有没有办法告诉 swagger codegen 给方法加上前缀?

请注意,我想使用 swagger-codegen 本身,而不是类似 APIMatic 的替代品。

最佳答案

实现AbstractJavaCodegen (或实现它的子类)并重载 postProcessOperations 函数以在操作前添加前缀(CodegenOperation 类的 operationId 属性)。参见 making-your-own-codegen-modules有关构建和运行自定义代码生成器的说明。

伪代码:

public class MyCodegen extends AbstractJavaCodegen{ \\or 
[...]
@Override
public Map<String, Object> postProcessOperations(Map<String, Object> objs) {
super.postProcessOperations(objs);
Map<String, Object> operations = (Map<String, Object>) objs.get("operations");
if (operations != null) {
List<CodegenOperation> ops = (List<CodegenOperation>) operations.get("operation");
for (CodegenOperation operation : ops) {
if(operation.httpMethod.equals("GET"){
operation.operationId = "get_" + operation.operationId;
}[...]
}
}
return objs;
}
}

关于java - 如何在 swagger codegen 中设置方法名称前缀?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43060987/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com