使用 apidoc

发布于 2021-10-07 13:14:56 字数 5074 浏览 1607 评论 0

安装

可以直接从 https://github.com/caixw/apidoc/releases 查找你需要的版本下载,放入 PATH 中即可使用。如果没有你需要的平台文件,则需要从源代码编译:

  • 下载 Go
  • 下载源代码,git clone github.com/caixw/apidoc
  • 执行代码中 build/build.sh 或是 build/build.cmd 进行编译;
  • 编译好的文件存放在 cmd/apidoc 下,可以将该文件放置在 PATH 目录;

环境变量

apidoc 会读取 LANG 的环境变量作为其本地化的依据,若想指定其它语种,可以手动指定 LANG 环境变量:LANG=zh-Hant apidoc。在 windows 系统中,若不存在 LANG 环境变量,则会调用 GetUserDefaultLocaleName 函数来获取相应的语言信息。

本地化的 ID 值,理论上只要 BCP47 支持的都能正确识别。也支持 Linux 下带编码的格式,比如:zh_CN.UTF-8

IDE 插件

apidoc 支持以 LSP 模式运行:apidoc lsp -p=":8080" -m=stdio -h。所有支持 LSP 的 IDE 和编辑器很容易实现对应的插件。目前官方已经提供了针对 vscode 的插件:apidoc.vscode

Mock

mock 子命令可以让 apidoc 根据文档动态生成 mock 数据,mock 子命令提供了大量的配置项,以使生成的数据更有随机性,具体的命令项可以通过 apidoc help mock 查看。

如果数据类型为 string.image,会自动生成一张指定大小的图片并把地址返回给用户,其大小由查询参数 widthheight 指定,未指定则是 500x500。图片类型则通过用户提交的 Accept 报头获取,目前支持 image/gifimage/pngimage/jpeg 三种类型。

使用 mock 也有一定的局限性:只能判断提交的数据是否符合要求,但是无法理解数据代码的含义,比如 URL 中包含 page=2,能判断 page 的值格式是否正确,但无法给用户返回第二页的数据。Mock 在验证数据正确性和初期用于展示数据内容还是很有用的。

命令行

可以通过 apidoc help 查看命令行支持的子命令。包含了以下几个:

名称描述
build生成文档内容
detect根据目录下的内容生成配置文件
help显示帮助信息
lang显示所有支持的语言
locale显示所有支持的本地化内容
lsp启动 language server protocol 服务
mock启用 mock 服务
static启用静态文件服务
syntax测试语法的正确性
version显示版本信息

配置文件

配置文件名固定为 .apidoc.yaml,格式为 YAML,可参考 .apidoc.yaml。文件可以通过命令 apidoc detect 生成。主要包含了以几个配置项:

名称类型必填描述
versionstring此配置文件的所使用的文档版本
inputsobject[]指定输入的数据,同一项目只能解析一种语言。
inputs.langstring源文件的解析方式。具体支持的类型可通过命令 apidoc lang 查看支持语言。
inputs.dirstring需要解析的源文件所在目录
inputs.extsstring[]只从这些扩展名的文件中查找文档
inputs.recursivebool是否解析子目录下的源文件
inputs.encodingstring编码,默认为 utf-8,值可以是 character-sets 中的内容。
inputs.ignoresstring[]忽略的文件或目录,比如 node_modules 等。
outputobject控制输出行为
output.typestring输出的类型,目前可以 apidoc+xmlopenapi+jsonopenapi+yaml
output.pathstring指定输出的文件名,包含路径信息。
output.tagsstring[]只输出与这些标签相关联的文档,默认为全部。
output.stylestring为 XML 文件指定的 XSL 文件
output.namespacebool是否输出命名空间
output.namespace-prefixstring如果输出了命名空间,还可以指定命名空间前缀。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

JSmiles

生命进入颠沛而奔忙的本质状态,并将以不断告别和相遇的陈旧方式继续下去。

文章
评论
84963 人气
更多

推荐作者

微信用户

文章 0 评论 0

小情绪

文章 0 评论 0

ゞ记忆︶ㄣ

文章 0 评论 0

笨死的猪

文章 0 评论 0

彭明超

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文