Différences
Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
|
prog:theorie:api:swagger [20/10/2019 17:53] thierry [Installation] |
prog:theorie:api:swagger [18/10/2022 11:29] (Version actuelle) thierry ↷ Page déplacée de prog:api:swagger à prog:theorie:api:swagger |
||
|---|---|---|---|
| Ligne 4: | Ligne 4: | ||
| Cela peut fonctionner dans PHP avec la librairie ''swagger-php'' qui va permettre a travers des **annotations** PHP de générer la documentation. | Cela peut fonctionner dans PHP avec la librairie ''swagger-php'' qui va permettre a travers des **annotations** PHP de générer la documentation. | ||
| + | <note>L'exemple ici est donné sous un projet Symfony et sous Windows</note> | ||
| Ligne 11: | Ligne 12: | ||
| [[https://www.youtube.com/watch?t=1125&v=no0y4ISItiw|Vidéo pour Installer Swagger-UI]] | [[https://www.youtube.com/watch?t=1125&v=no0y4ISItiw|Vidéo pour Installer Swagger-UI]] | ||
| + | |||
| + | === Petite modification === | ||
| + | Par defaut l'UI pointe sur un fichier ''https://petstore.swagger.io/v2/swagger.json''. | ||
| + | |||
| + | Il faut faire cette petite modification du code de la page HTML pour le faire pointer vers le fichier ''public/swagger/swagger.json'' | ||
| + | |||
| + | On modifie le code de la page HTML ''public/swagger/index.html'' | ||
| + | |||
| + | On remplace ''url: "https://petstore.swagger.io/v2/swagger.json",'' par ''url: "swagger.json",'' | ||
| + | |||
| + | <code php> | ||
| + | window.onload = function() { | ||
| + | // Begin Swagger UI call region | ||
| + | const ui = SwaggerUIBundle({ | ||
| + | url: "swagger.json", <<<<< ICI ON MODIFIE L'URL | ||
| + | dom_id: '#swagger-ui', | ||
| + | deepLinking: true, | ||
| + | presets: [ | ||
| + | SwaggerUIBundle.presets.apis, | ||
| + | SwaggerUIStandalonePreset | ||
| + | ], | ||
| + | </code> | ||
| ==== Installer la commande swagger-php ==== | ==== Installer la commande swagger-php ==== | ||
| Ligne 33: | Ligne 56: | ||
| Executing script assets:install public [OK] | Executing script assets:install public [OK] | ||
| </code> | </code> | ||
| - | ==== Configurer le projet ==== | + | ===== Configurer le projet ===== |
| dans votre projet creer un dossier ''swagger'' | dans votre projet creer un dossier ''swagger'' | ||
| + | ==== Le fichier source swagger.php ==== | ||
| + | |||
| Dans ce dossier créer un fichier ''swagger.php'' qui contiendra les infos de bases de vos APIs sous forme d'Annotations | Dans ce dossier créer un fichier ''swagger.php'' qui contiendra les infos de bases de vos APIs sous forme d'Annotations | ||
| Ligne 52: | Ligne 77: | ||
| </code> | </code> | ||
| - | 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'' | + | ==== Compilation du fichier en json ==== |
| + | |||
| + | |||
| + | Executer la commande ''vendor\bin\openapi.bat --format json --output public\swagger\swagger.json swagger\swagger.php src '' pour generer un fichier JSON (swagger.json) de description des vos API dans le dossier ''public'' | ||
| + | |||
| <code> | <code> | ||
| - | D:\webprojects\test-api-project>vendor\bin\openapi.bat --format json --output public\swagger.json swagger\swagger.php src | + | D:\webprojects\test-api-project>vendor\bin\openapi.bat --format json --output public\swagger\swagger.json swagger\swagger.php src |
| Required @OA\PathItem() not found | Required @OA\PathItem() not found | ||
| </code> | </code> | ||
| + | ==== Resultats swagger.json ==== | ||
| Le fichier généré est celui là : | Le fichier généré est celui là : | ||
| <code json swagger.json> | <code json swagger.json> | ||
| Ligne 74: | Ligne 105: | ||
| } | } | ||
| </code> | </code> | ||
| + | |||
| + | |||
| + | ===== Test ===== | ||
| + | On se rends sur l'URL ''http://127.0.0.1:8000/swagger/'' et on devrait obtenir cela : | ||
| + | |||
| + | {{:prog:api:swagger1.png|}} | ||