提问人:FraDV 提问时间:11/6/2023 更新时间:11/8/2023 访问量:28
使用新的 tamplet 修改 Swagger Codegen 3.0.50
Modify Swagger Codegen 3.0.50 with new tamplets
问:
我下载了最新的 swagger codegen 稳定版本(目前为 3.0.50),我打算用它来为我之前开发的 rest API 生成 html 格式的文档。 我设法生成了文档的第一个版本,但我看到我想更改各种元素:
- 在 nav-tab-examples 中只留下 Curl 和 Python 的示例(我对其他示例不感兴趣);
- 在 Python 示例中,我想用我编写的代码示例替换代码示例,该示例不使用 swagger_client 库,而是使用 requests 库来调用端点;
- 我想生成两个不同的模板,一个用于获取调用,一个用于发布调用,并确保 swagger codegen 将它们插入文档中的正确位置(而现在示例对每个人都是一样的,除了一些小的差异)。
对于第 (2) 点,我看到我可以直接修改 swagger codegen 使用的 .mustache 模板,它应该在 中,但是:modules/swagger-codegen/src/main/resources/htmlDocs2/sample_python.mustache
- 在我找不到任何子文件夹下;
modules/swagger-codegen/src/main/resources
- 我仍然尝试编写自己的 .mustache 模板(沿着这个模板的思路)并将文件夹传递到 java 命令 () 中,但 swagger codegen 没有考虑它。
java -jar swagger-codegen-3.0.50\modules\swagger-codegen-cli\target\swagger-codegen-cli.jar generate -i openapi_new.json -l html2 -t swagger-codegen-3.0.50\modules\swagger-codegen\src\main\resources\htmlDocs2 -c config.json
有人可以帮我吗?我试图依靠官方文档,但我不太明白如何进行。
答:
0赞
FraDV
11/8/2023
#1
我已经解决了我的问题,编写了三个不同的模板(一个用于 curl,两个用于 python)并修改了子文件夹 htmlDocs2 中的 index.mustache 模板。特别:
- 我评论了定义带有示例的选项卡的行;
- 对于 Python 示例,由于该示例在端点类型(POST 或 GET 端点)方面应该有所不同,因此我将现有行替换为以下行:
<div class="tab-pane" id="examples-{{baseName}}-{{nickname}}-0-python">
<script type="text/javascript">var httpMethod = '{{{httpMethod}}}'; if (httpMethod === 'get') {document.write(`<pre class="prettyprint"><code class="language-python">{{>sample_python_get}}</code></pre>`);} else if (httpMethod === 'post') {document.write(`<pre class="prettyprint"><code class="language-python">{{>sample_python_post}}</code></pre>`);} else{document.write(`<pre class="prettyprint"><code class="language-python"></code></pre>`)}</script>
</div>
P.s.:我不是 html 和 javascript 编码方面的专家,所以可能有更好的方法来做我需要的事情,但就我而言,脚本是有效的。
评论
tree/master/src/main/resources/handlebars