简介
zally-web-ui 是一个基于 Zalando Zally 的 Web 界面,它可以让你通过 Web 界面来对上述 API 文档进行自动化 API 设计分析。
安装
要使用 zally-web-ui,你需要先安装 Node.js。然后,你可以使用 npm 包管理器来安装它:
npm install zally-web-ui
使用
启动服务
安装完成后,在项目的根目录下运行以下命令(其中 $PORT 是你自己指定的端口号):
npx zally-web-ui --rules https://raw.githubusercontent.com/zalando/zally/master/config/default_ruleset.yaml --port $PORT
此命令会下载 Zalando Zally 的规则集并启动 Web 界面服务。
发送请求
启动服务后,你可以通过表单提交 API 文档并获取分析结果。POST 请求会被发送到 http://localhost:$PORT/api/violations
。
<form method="post" action="http://localhost:$PORT/api/violations" enctype="multipart/form-data"> <label for="file">Select a file:</label> <input type="file" name="file" id="file"><br><br> <input type="submit" value="Submit"> </form>
API 文档可以是 OpenAPI 或 Swagger 格式的 JSON 或 YAML 文件。例如,下面是一个示例 JSON 文件:
-- -------------------- ---- ------- - ---------- -------- ------- - -------- -------- ----- ---------- ------- -- -------- - -------- - ------ - ---------- ----- --- ------ ------------ - ------ - -------------- -- ---- -- ------ ---------- - ------------------- - --------- - ------- -------- -------- - ------- -------------------------- - - - - - - - - -- ------------- - ---------- - ------ - ------- --------- ----------- - ----- ------ -- ------------- - ----- - ------- ---------- --------- ------- -- ------- - ------- -------- - - - - - -
高级用法
自定义规则集
zally-web-ui 默认使用 Zalando Zally 的默认规则集 进行分析,但你也可以使用自定义的规则集。要指定自定义规则集,请使用 --rules
参数:
npx zally-web-ui --rules /path/to/custom_ruleset.yaml --port $PORT
自定义规则集的格式需要满足 Zalando Zally 规则集格式。
部署到服务器
如果你想将 zally-web-ui 部署到服务器上,我们推荐使用 PM2 来管理和监控服务。
首先,全局安装 PM2:
npm install pm2 -g
然后,在项目根目录运行以下命令:
pm2 start "$(which npx)" --name zally-web-ui -- zally-web-ui --rules https://raw.githubusercontent.com/zalando/zally/master/config/default_ruleset.yaml --port $PORT
总结
通过本篇文章,你已经了解了如何使用 npm 包 zally-web-ui 进行自动化 API 设计分析,并掌握了 zally-web-ui 的高级用法。希望这对于你在前端开发中提高 API 设计水平和减少工作量有所帮助。
感谢您的阅读!
示例代码
- Example API
- zally-web-ui-demo: A demo project showcasing
zally-web-ui
usage.
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6005607981e8991b448dea7c