Scribe

> Still on v1? Here's the [v2 migration guide](https://scribe.rtfd.io/en/latest/migrating-v2.html).
Generate API documentation for humans from your Laravel codebase. [Here's what the output looks like](https://shalvah.me/TheCensorshipAPI/). There's a [Node.js version](https://github.com/knuckleswtf/scribe-js), too!
[](https://packagist.org/packages/knuckleswtf/scribe) [](https://packagist.org/packages/knuckleswtf/scribe) [](https://travis-ci.com/knuckleswtf/scribe)
> 👋 Scribe helps you generate docs automatically, but if you really want to make friendly, maintainable and testable API docs, there's some more things you need to know. So I made [a course](https://apidocsfordevs.com?utm_source=scribe-laravel&utm_medium=referral&utm_campaign=none) for you.🤗
## Features
- Pretty HTML documentation page, with included code samples and friendly text
- Included "Try It Out" button so users can test endpoints right from their browser
- Markdown source files that can be edited to modify docs
- Extracts body parameters information from Laravel FormRequests
- Safely calls API endpoints to generate sample responses, with authentication and other custom configuration supported
- Supports generating responses from Eloquent API Resources or Fractal Transformers
- Supports Postman collection and OpenAPI (Swagger) spec generation
- Included UI components for additional styling
- Easily customisable with custom views
- Easily extensible with custom strategies
## Documentation
> See the [migration guide](https://scribe.rtfd.io/en/latest/migrating.html) if you're coming from [mpociot/laravel-apidoc-generator](https://github.com/mpociot/laravel-apidoc-generator).
Check out the documentation at [ReadTheDocs](http://scribe.rtfd.io/).
## Installation
PHP 7.4 and Laravel/Lumen 6.0 or higher are required.
```sh
composer require --dev knuckleswtf/scribe
```
### Laravel
Publish the config file by running:
```bash
php artisan vendor:publish --provider="Knuckles\Scribe\ScribeServiceProvider" --tag=scribe-config
```
This will create a `scribe.php` file in your `config` folder.
### Lumen
- When using Lumen, you will need to run `composer require knuckleswtf/scribe` instead (no `--dev`).
- Register the service provider in your `bootstrap/app.php`:
```php
$app->register(\Knuckles\Scribe\ScribeServiceProvider::class);
```
- Copy the config file from `vendor/knuckleswtf/scribe/config/scribe.php` to your project as `config/scribe.php`. Then add to your `bootstrap/app.php`:
```php
$app->configure('scribe');
```
## Contributing
Contributing is easy! See our [contribution guide](https://scribe.rtfd.io/en/latest/contributing.html).