4

在 Go 客户端生成器创建所有文件之后,我正在尝试添加一个钩子,我想知道在哪里可以添加它。

现在,文件按以下顺序生成 (a) 模型 (b) API 路径 (c) 支持文件。

如果我像这样钩入AbstractGoCodegen'spostProcessSupportingFileData函数,将myfunc()在创建支持文件之前调用,但我希望之后调用该函数。README.mdclient.go

@Override
public Map<String, Object> postProcessSupportingFileData(Map<String, Object> objs) {
    generateYAMLSpecFile(objs);
    objs = super.postProcessSupportingFileData(objs);
    myfunc();
    return objs;
}

我还尝试了其他一些postProcessing*功能,如图所示,DefaultCodegen但它们没有按预期工作。

我怎样才能做到这一点?

4

1 回答 1

0

如果您无法通过覆盖配置方法获得所需的功能,我建议您扩展DefaultGenerator该类。这些包含实际的生成方法,例如generateSupportingFiles. 在此方法生成支持文件后,您应该能够轻松添加挂钩。

请记住,您可能必须将一些修饰符从私有更改为受保护。

于 2018-10-16T08:06:08.410 回答