diff --git a/ApiDocGenerator.php b/ApiDocGenerator.php index a82140d..633ea51 100644 --- a/ApiDocGenerator.php +++ b/ApiDocGenerator.php @@ -27,7 +27,7 @@ class ApiDocGenerator $this->describers = $describers; } - public function extract(): Swagger + public function generate(): Swagger { if (null !== $this->swagger) { return $this->swagger; diff --git a/README.md b/README.md index 6d2793e..70dcf4f 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,61 @@ # ApiDocBundle + [WIP] Generates Swagger docs from several sources + +## Installation + +Just like any bundle, you have to download it using composer: +``` +composer require exsyst/api-doc-bundle dev-master +``` + +And then add it to your kernel: +```php +class AppKernel extends Kernel +{ + public function registerBundles() + { + $bundles = [ + // ... + + new EXSyst\Bundle\ApiDocBundle\ApiDocBundle(), + ]; + + // ... + } +} +``` + +And that's all, no configuration needed! + +## What does this bundle? + +It generates you a swagger documentation from your symfony app thanks to +different sources called _Describers_. These _Describers_ are specific +to a library and extract data from it and merge it into your swagger +documentation. + +You can fetch your swagger documentation in your app: +```php +$generator = $container->get('exsyst_api_doc.generator'); +$swagger = $generator->generate()->toArray(); +``` + +## What's supported? + +This bundle supports _Symfony_ route requirements, PHP annotations, +[_Swagger-Php_](https://github.com/zircote/swagger-php) annotations, +[_NelmioApiDocBundle_](https://github.com/nelmio/NelmioApiDocBundle) annotation, +[_FOSRestBundle_](https://github.com/FriendsOfSymfony/FOSRestBundle) annotations and +[_Api-Platform_](https://github.com/api-platform/api-platform) apps. + +This bundle is a **Work In Progress** and as such it does only support input +documentation for now (if you use _Swagger-Php_ or _Api-Platform_ output is supported as well). + +## What's next? + +The hardest part remain: **models**. We have to build something to +manage models that can vary based on several factors (serialization +groups, class, etc.) and then put it in the app's documentation. + +Other libraries support might be added but the priority is to finalize the bundle first.