小胡子模板、选项列表和格式

问题描述 投票:0回答:1

我正在使用 Mustache 模板根据 OpenAPI 规范生成 Jetbrains HTTP Client 文件。 (虽然您不需要任何上下文,但我的问题是关于胡子模板。)

简而言之,我可以有零个、一个或多个安全选项,无论结果如何,我都希望每个结果都整齐地位于新行上。

如何确保如果选项为 false,模板会忽略换行符?

到目前为止,我还没有设法按照需要格式化内容。

例如,对于

isBasicBasic
为 true、
isBasicBearer
为 false、
isApiKey
为 true 的查询,请使用以下模板:

{{httpMethod}} {{basePath}}{{#lambda.doubleMustache}}{{path}}{{/lambda.doubleMustache}}
{{#authMethods}}{{#isBasicBasic}}Authorization: Basic username password{{/isBasicBasic}}
{{#isBasicBearer}}Authorization: Bearer token{{/isBasicBearer}}
{{#isApiKey}}{{keyParamName}} apiKey{{/isApiKey}}{{/authMethods}}
{{#consumes}}Content-Type: {{{mediaType}}}
{{/consumes}}

我现在得到的结果是:

## BasicApi

### Get User
## Get User Info by User ID
# @name getUsersUserId
GET http://localhost:5001/v1/users/{{userId}}
Authorization: Basic username password



X-API-Key apiKey

而期望的结果是:

## BasicApi

### Get User
## Get User Info by User ID
# @name getUsersUserId
GET http://localhost:5001/v1/users/{{userId}}
Authorization: Basic username password
X-API-Key apiKey

将所有内容放在一行将删除额外的换行符,但这没有帮助:

{{httpMethod}} {{basePath}}{{#lambda.doubleMustache}}{{path}}{{/lambda.doubleMustache}}
{{#authMethods}}{{#isBasicBasic}}Authorization: Basic username password{{/isBasicBasic}}{{#isBasicBearer}}Authorization: Bearer token{{/isBasicBearer}}{{#isApiKey}}{{keyParamName}} apiKey{{/isApiKey}}{{/authMethods}}
{{#consumes}}Content-Type: {{{mediaType}}}

返回:

### Get User
## Get User Info by User ID
# @name getUsersUserId
GET http://localhost:5001/v1/users/{{userId}}
Authorization: Basic username passwordX-API-Key apiKey

我没有生成 HTML,这意味着我认为我无法插入像

<br>
这样的手动换行符。我尝试手动插入回车符,但它们只是以文本形式呈现

mustache openapi-generator
1个回答
0
投票

好吧,我意识到我没有遵循小胡子指南,而是尝试创建一个漂亮的模板文件。

要仅在存在换行符的情况下打印换行符,解决方案是将这些换行符放入条件模板中

所以写下这个:

{{httpMethod}} {{basePath}}{{#lambda.doubleMustache}}{{path}}{{/lambda.doubleMustache}}
{{#authMethods}}{{#isBasicBasic}}Authorization: Basic username password
{{/isBasicBasic}}{{#isBasicBearer}}Authorization: Bearer token
{{/isBasicBearer}}{{#isApiKey}}{{keyParamName}} apiKey
{{/isApiKey}}{{/authMethods}}
{{#consumes}}Content-Type: {{{mediaType}}}

根据需要渲染:

### Get User
## Get User Info by User ID
# @name getUsersUserId
GET http://localhost:5001/v1/users/{{userId}}
Authorization: Basic username password
X-API-Key apiKey

© www.soinside.com 2019 - 2024. All rights reserved.