用途:把一份 OpenAPI 3.x 规范(JSON 或 YAML)引导成可投入使用的 Elixir API 客户端库,编译时生成代码,规范是唯一事实来源,不用运行时生成器,也没有额外构建步骤。
主要能力:生成 mix 项目结构,包含公开 API 模块(宏编译期按 paths 生成端点函数)、基于 Req 的 HTTP 客户端(支持 Bearer、API key 头、无鉴权)、按 components.schemas 在编译期生成的结构体与 from_map/1 递归转换、单元与集成测试(用 Mimic 模拟 Req)、README;通过 @external_resource 在规范变化时自动重新编译。函数名由路径去掉常见前缀后转换而来,带 operationId 时优先使用并转为 snake_case;含路径参数的路径会生成接受该参数的函数;200/201/204 等多成功响应取首个带 JSON schema 者,204 返回 {:ok, nil};2xx 返回 {:ok, struct},其他返回 {:error, %{status, body}},传输错误返回 {:error, exception}。
使用方式:需先安装 Elixir >= 1.17;若规范是 YAML 需在搭建时转换为 JSON。向用户收集 API 名称、snake_case 应用/包名、模块名、规范路径或 URL、基础 URL、要去掉的路径前缀、鉴权方式等,随后生成项目、写入各文件、安装依赖并验证:cd {{APP_NAME}} && mix deps.get && mix compile && mix test,最后可选 git init 提交。
适用场景:快速为某 API 搭建 Elixir 客户端脚手架,并保持与 OpenAPI 规范同步。
限制:资料未提供支持的 Elixir 版本以外的兼容细节、许可、收费或价格信息;若规范为 YAML 需要先转换;生成代码依赖 Req、Jason、Mimic(仅测试)等依赖,具体行为以实际规范为准。