Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

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:28]
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 =====
 +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
 +
 +<code php 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"​
 + * )
 + */
 +</​code>​
 +
 +==== 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>​
 +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
 +</​code>​
 +
 +==== Resultats swagger.json ====
 +Le fichier généré est celui là :
 +<code json swagger.json>​
 +{
 +    "​openapi":​ "​3.0.0",​
 +    "​info":​ {
 +        "​title":​ "APIs TechTIC",​
 +        "​version":​ "​0.1"​
 +    },
 +    "​servers":​ [
 +        {
 +            "​url":​ "​http://​api.techtic.pro",​
 +            "​description":​ "APIs de TechTIC"​
 +        }
 +    ]
 +}
 +</​code>​
 +
 +
 +===== Test =====
 +On se rends sur l'URL ''​http://​127.0.0.1:​8000/​swagger/''​ et on devrait obtenir cela :
 +
 +{{:​prog:​api:​swagger1.png|}}
 +