Ceci est une ancienne révision du document !


Swagger

Il existe un outils Swagger qui permet de generer la doc des API que l'on créé.

Cela peut fonctionner dans PHP avec la librairie swagger-php qui va permettre a travers des annotations PHP de générer la documentation.

Installation

Installer la partie UI

Installer la commande swagger-php

Qui permettra de generer la description de l'API au format OpenAPI via la commande commande?

Pour installer : composer require zircote/swagger-php

D:\webprojects\test-api-project>composer require zircote/swagger-php
Using version ^3.0 for zircote/swagger-php
./composer.json has been updated
Loading composer repositories with package information
Updating dependencies (including require-dev)
Restricting packages listed in "symfony/symfony" to "4.3.*"
Package operations: 1 install, 0 updates, 0 removals
  - Installing zircote/swagger-php (3.0.2): Downloading (100%)
Writing lock file
Generating autoload files
ocramius/package-versions: Generating version class...
ocramius/package-versions: ...done generating version class
Executing script cache:clear [OK]
Executing script assets:install public [OK]

Configurer le projet

dans votre projet creer un dossier swagger

Dans ce dossier créer un fichier swagger.php qui contiendra les infos de bases de vos APIs sous forme d'Annotations

swagger.php
<?php
 
use OpenApi\Annotations as OA;
 
/**
 * @OA\Info(title="APIs l'informaTIC",version="0.1")
 * @OA\Server(
 *      url="http://api.linformatic.fr",
 *      description="APIs de l'informaTIC"
 * )
 */

Executer la commande vendor\bin\openapi.bat –format json –output public\swagger.json swagger\swagger.php src pour generer un fichier JSON (swagger.json) de description des vos API dans le dossier public

D:\webprojects\test-api-project>vendor\bin\openapi.bat --format json --output public\swagger.json swagger\swagger.php src 
Required @OA\PathItem() not found

Le fichier généré est celui là :

swagger.json
{
    "openapi": "3.0.0",
    "info": {
        "title": "APIs TechTIC",
        "version": "0.1"
    },
    "servers": [
        {
            "url": "http://api.techtic.pro",
            "description": "APIs de TechTIC"
        }
    ]
}

Ressources

Voir la vidéo de GrafikArt sur Swagger et OpenAPI pour plus di'nformations

Vous pourriez laisser un commentaire si vous étiez connecté.