如何指定由OpenAPI规范中的widdershins创建的代码片段的语言?

时间:2018-04-09 16:03:23

标签: node.js openapi widdershins

我想使用widdershins(node.js应用)从Slate规范生成OpenAPI API文档。

Widdershins可以选择在为API文档生成示例代码段时指定它应包含的语言。

我可以在此选项上找到的所有帮助都是使用输出,它告诉我:

widdershins [options] {input-file|url} [[-o] output markdown]

Options:
[...]
  --language_tabs       List of language tabs for code samples using
                        "language[:label[:client]]" format, for example:
                        "javascript:JavaScript:request"                  [array]
[...]

但我无法弄清楚如何使用此选项。无论我尝试什么,我都会得到相同的错误信息:

Not enough non-option arguments: got 0, need at least 1

我试过了:

widdershins --language_tabs="shell,ruby" foo.yaml
widdershins --language_tabs "shell,ruby" foo.yaml
widdershins --language_tabs=shell,ruby foo.yaml
widdershins --language_tabs="[shell,ruby]" foo.yaml
widdershins --language_tabs="[{ 'shell': 'Shell' }, { 'ruby': 'Ruby' }]" foo.yaml

我也尝试了这一点,完全与使用帮助中的内容相同:

widdershins --language_tabs="javascript:JavaScript:request" foo.yaml
widdershins --language_tabs=javascript:JavaScript:request foo.yaml

但即便如此,也会产生与上述相同的错误。

完全不使用该选项时,它可以正常工作:

widdershins foo.yaml

但是,我得到了生成的代码片段的默认值,这恰好不是我想要的。

有谁知道如何正确指定此选项?

2 个答案:

答案 0 :(得分:1)

诀窍是为生成片段时应考虑的每种语言多次指定选项。而且,输入文件必须在选项之前指定,这与使用帮助输出所说的相反:

widdershins foo.yaml --language_tabs 'python:Python' --language_tabs 'ruby:Ruby'

另一种与其他选项更加一致的可能性是添加--来终止选项列表:

widdershins --language_tabs 'python:Python' --language_tabs 'ruby:Ruby' -- foo.yaml 

答案 1 :(得分:0)

您可以使用--language_tabs标志:

widdershins --search false --language_tabs 'ruby:Ruby' 'python:Python' --summary swagger.json -o swagger.md