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:50] 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 swagger\swagger.json swagger\swagger.php src'' pour generer un fichier JSON (swagger.json) de description des vos API dans le dossier swagger | + | ==== 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 swagger\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|}} | ||