(Swager的新手)
在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操作生成一个前缀,前缀=' get _'。
例如,我希望swagger codegen能够生成与HTTP GET方法相对应的所有操作,并带有前缀=' get _'。具体来说,上面它可能会生成:get_findPetsByStatus。
有没有办法告诉swagger codegen前缀方法?
请注意,我想使用swagger-codegen本身,而不是类似APIMatic的替代品。
答案 0 :(得分:4)
实现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;
}
}