{"id":19341888,"url":"https://github.com/matchory/herodot","last_synced_at":"2025-04-23T03:32:08.906Z","repository":{"id":62524998,"uuid":"325060537","full_name":"matchory/herodot","owner":"matchory","description":"A versatile documentation generator for APIs built with Laravel.","archived":false,"fork":false,"pushed_at":"2021-02-17T08:41:38.000Z","size":888,"stargazers_count":6,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-04-02T07:11:36.973Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"PHP","has_issues":true,"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/matchory.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2020-12-28T16:26:18.000Z","updated_at":"2023-01-06T16:09:53.000Z","dependencies_parsed_at":"2022-11-02T10:45:23.364Z","dependency_job_id":null,"html_url":"https://github.com/matchory/herodot","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/matchory%2Fherodot","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/matchory%2Fherodot/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/matchory%2Fherodot/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/matchory%2Fherodot/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/matchory","download_url":"https://codeload.github.com/matchory/herodot/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250365784,"owners_count":21418750,"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-10T03:33:02.227Z","updated_at":"2025-04-23T03:32:08.554Z","avatar_url":"https://github.com/matchory.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003ch3 align=\"center\"\u003eHerodot\u003c/h3\u003e\n  \u003cp align=\"center\"\u003e\n    A versatile documentation generator for APIs built with Laravel.\n    \u003cbr\u003e\n    \u003ca href=\"https://matchory.github.io/herodot/\"\u003e\u003cstrong\u003eExplore the Documentation »\u003c/strong\u003e\u003c/a\u003e\n  \u003c/p\u003e\n\u003c/p\u003e\n\nHerodot is a documentation generation framework, tailored for Laravel applications. It works by analyzing the source code of your application, and generating\ndocumentation from it.  \nWhile everything usually works fine out of the box, Herodot is completely modular, configurable, and provides hooks and events in lots of interesting places.\n\n**Features:**\n- _Carefully built for Laravel:_  \n  Herodot takes every piece of a Laravel app under consideration: From clever route parsing, API resource, policy, and built-in middleware support to\n  integration with Passport, Fortify, Sanctum, Scout and others. The more you stick to standards, the better it gets.\n- _Adapts to your way of documenting:_  \n  Herodot provides strategies for PHP8+ attributes, OpenAPI annotations, documentation comments, external data sources, or just source code parsing. No matter _\n  how_ you prefer to document your API, Herodot will understand it.\n- _Separate route collection, information extraction and output generation:_  \n  Herodot uses fully isolated phases, making it possible to extend and swap out implementations like Lego bricks.\n- _Extensively documented:_  \n  Herodot ships with an extensive documentation that goes from simple setup to writing extensions.\n\n**Requirements:**\n- PHP \u003e= 8.0 (see [why we need PHP 8](#why-we-need-php-8))\n- Laravel \u003e= 7.0 (older versions/Lumen _might_ work, but are neither tested nor optimized)\n\n**Alternatives:**\n- [Scribe](https://github.com/knuckleswtf/scribe)\n- [Laravel API Documentation Generator](https://github.com/mpociot/laravel-apidoc-generator)\n\nGetting started\n---------------\nTo start using Herodot, install it via composer:\n```bash\nphp composer require matchory/herodot\n```\n\nUnless you've disabled package auto-discovery, Herodot should be installed and available. Otherwise, add the service provider to your `config/app.php`:\n```php\n'providers' =\u003e [\n    // ...\n    Matchory\\Herodot\\HerodotServiceProvider::class,\n],\n```\n\nUsage\n-----\nHerodot adds one central artisan command to your application:\n```bash\nphp artisan herodot:generate\n```\n\nExecuting it will start the documentation generation. You can do this now, safely: Herodot will analyze your code and generate documentation at `public/docs`.\nIf this directory exists already, you will be prompted before anything is written.  \nBy default, this should leave you with an HTML page, and an OpenAPI (aka. Swagger) definition. To configure the output formats, and any of the other settings,\nyou should publish the package configuration file:\n```bash\nphp artisan vendor:publish --provider=\"Matchory\\\\Herodot\\\\HerodotServiceProvider\" --tag=\"config\"\n```\n\nThis causes the configuration file to be published to `config/herodot.php`. Check out the\n[configuration reference](https://matchory.github.io/herodot/configuration/) to learn about all available options.\n\nDocumenting your API\n--------------------\nCheck out [the documentation](https://matchory.github.io/herodot/guide/strategies.html) to learn how to document your API!\n\nContributing\n------------\nContributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are *greatly appreciated*.\n\n### Fork the Project\n- Create your Feature Branch (`git checkout -b your-name/amazing-feature`)\n- Commit your Changes (`git commit -m 'Add some amazing feature'`)\n- Push to the Branch (`git push origin your-name/amazing-feature`)\n- Open a Pull Request\n\nLicense\n-------\nDistributed under the [MIT License](https://spdx.org/licenses/MIT.html). See [LICENSE](./LICENSE.md) for more information.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmatchory%2Fherodot","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmatchory%2Fherodot","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmatchory%2Fherodot/lists"}