{"id":19756815,"url":"https://github.com/imiphp/imi-apidoc","last_synced_at":"2025-04-30T12:30:44.609Z","repository":{"id":52214681,"uuid":"264868533","full_name":"imiphp/imi-apidoc","owner":"imiphp","description":"imi 框架 HTTP API 文档生成器，支持 Swagger！","archived":false,"fork":false,"pushed_at":"2023-12-29T07:19:31.000Z","size":241,"stargazers_count":4,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"2.0","last_synced_at":"2025-04-14T20:41:31.959Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"PHP","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/imiphp.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2020-05-18T07:56:34.000Z","updated_at":"2022-01-05T01:13:17.000Z","dependencies_parsed_at":"2023-10-12T06:03:53.522Z","dependency_job_id":"57c50e82-85a7-4d97-a959-67003130c0df","html_url":"https://github.com/imiphp/imi-apidoc","commit_stats":{"total_commits":33,"total_committers":3,"mean_commits":11.0,"dds":0.06060606060606055,"last_synced_commit":"8392e3aa6a7520de623ae54d583e8a685d4a2d44"},"previous_names":[],"tags_count":27,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/imiphp%2Fimi-apidoc","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/imiphp%2Fimi-apidoc/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/imiphp%2Fimi-apidoc/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/imiphp%2Fimi-apidoc/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/imiphp","download_url":"https://codeload.github.com/imiphp/imi-apidoc/tar.gz/refs/heads/2.0","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250869581,"owners_count":21500351,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-12T03:17:01.469Z","updated_at":"2025-04-30T12:30:44.326Z","avatar_url":"https://github.com/imiphp.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"# imi-apidoc\n\n[![Latest Version](https://img.shields.io/packagist/v/imiphp/imi-apidoc.svg)](https://packagist.org/packages/imiphp/imi-apidoc)\n[![Php Version](https://img.shields.io/badge/php-%3E=7.4-brightgreen.svg)](https://secure.php.net/)\n[![Swoole Version](https://img.shields.io/badge/swoole-%3E=4.7.0-brightgreen.svg)](https://github.com/swoole/swoole-src)\n[![IMI License](https://img.shields.io/github/license/imiphp/imi-apidoc.svg)](https://github.com/imiphp/imi-apidoc/blob/master/LICENSE)\n\n## 介绍\n\n支持在项目中使用 Swagger 注解语法，运行命令，生成 Swagger 文件。\n\nSwagger 是最流行的 API 开发工具，它遵循 OpenAPI Specification（OpenAPI 规范，也简称 OAS）。\n\nSwagger 可以贯穿于整个 API 生态，如 API 的设计、编写 API 文档、测试和部署。\n\nSwagger 是一种通用的，和编程语言无关的 API 描述规范。\n\nimi-apidoc 基于 [zircote/swagger-php](https://github.com/zircote/swagger-php) 开发，100% 支持写法。\n\n\u003e 本仓库仅用于浏览，不接受 issue 和 Pull Requests，请前往：\u003chttps://github.com/imiphp/imi\u003e\n\n## Composer\n\n本项目可以使用composer安装，遵循psr-4自动加载规则，在你的 `composer.json` 中加入下面的内容:\n\n```json\n{\n    \"require\": {\n        \"imiphp/imi-apidoc\": \"~2.0.0\"\n    }\n}\n```\n\n然后执行 `composer update` 安装。\n\n## 使用说明\n\n\u003e 可以参考 `example`、`tests` 目录示例。\n\n项目配置文件：\n\n```php\n[\n    'components'    =\u003e  [\n        'ApiDoc'  =\u003e  'Imi\\ApiDoc',\n    ],\n]\n```\n\nSwagger 书写文档说明：\u003chttps://zircote.github.io/swagger-php/Getting-started.html#annotation-placement\u003e\n\n**Demo:**\n\n```php\n\u003c?php\nnamespace ImiApp\\ApiServer\\Controller;\n\nuse Imi\\Server\\Route\\Annotation\\Route;\nuse Imi\\Server\\Route\\Annotation\\Action;\nuse Imi\\Controller\\SingletonHttpController;\nuse Imi\\Server\\Route\\Annotation\\Controller;\n\n/**\n * @OA\\Info(title=\"My First API\", version=\"0.1\")\n * @Controller(\"/\")\n */\nclass IndexController extends SingletonHttpController\n{\n    /**\n     * @Action\n     * @Route(\"/\")\n     * \n     *\n     * @return void\n     */\n    public function index()\n    {\n\n    }\n\n    /**\n     * @Action\n     * @Route(url=\"login\", method=\"POST\")\n     *\n     * @param string $username 用户名\n     * @param integer $password 密码\n     * \n     * @return void\n     */\n    public function login(string $username, int $password)\n    {\n\n    }\n\n    /**\n     * @Action\n     * @Route(\"register\")\n     * @OA\\Get(\n     *     path=\"/register\",\n     *     @OA\\Response(response=\"200\", description=\"An example resource\")\n     * )\n     *\n     * @param string $username 用户名\n     * @param integer $password 密码\n     * @param string $birthday 生日\n     * \n     * @return void\n     */\n    public function register(string $username, int $password\n    , string $birthday)\n    {\n\n    }\n\n    /**\n     * @Action\n     *\n     * @param int $id\n     * @return void\n     */\n    public function get(int $id)\n    {\n\n    }\n\n}\n```\n\nimi-apidoc 会根据 `@Route` 注解、`@param` 注释，自动补足相关信息。让你不必为每个接口都书写 Swagger 注解，提升开发效率。\n\n当然，如果希望更加个性化的信息设置，还是要自己去书写的！\n\n**生成命令：**\n\nYaml 格式: `imi doc/api --to api.yml`\n\nJson 格式: `imi doc/api --to api.json`\n\n指定扫描的命名空间：`imi doc/api --to api.json --namespace \"ImiApp\\Controller1,ImiApp\\Controller2\"`\n\n**效果：**\n\n\u003cimg src=\"https://raw.githubusercontent.com/imiphp/imi-apidoc/master/res/1.jpg\"/\u003e\n\n\u003cimg src=\"https://raw.githubusercontent.com/imiphp/imi-apidoc/master/res/2.jpg\"/\u003e\n\n## 免费技术支持\n\nQQ群：17916227 [![点击加群](https://pub.idqqimg.com/wpa/images/group.png \"点击加群\")](https://jq.qq.com/?_wv=1027\u0026k=5wXf4Zq)，如有问题会有人解答和修复。\n\n## 运行环境\n\n- [PHP](https://php.net/) \u003e= 7.4\n- [Composer](https://getcomposer.org/) \u003e= 2.0\n- [Swoole](https://www.swoole.com/) \u003e= 4.7.0\n\n## 版权信息\n\n`imi-apidoc` 遵循 MIT 开源协议发布，并提供免费使用。\n\n## 捐赠\n\n\u003cimg src=\"https://cdn.jsdelivr.net/gh/imiphp/imi@2.0/res/pay.png\"/\u003e\n\n开源不求盈利，多少都是心意，生活不易，随缘随缘……\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fimiphp%2Fimi-apidoc","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fimiphp%2Fimi-apidoc","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fimiphp%2Fimi-apidoc/lists"}