Différences

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

Lien vers cette vue comparative

Prochaine révision
Révision précédente
prog:symfony:applications:creer_api:creer_api [20/10/2019 16:44]
thierry créée
prog:symfony:applications:creer_api:creer_api [11/09/2022 19:49] (Version actuelle)
thierry ↷ Page déplacée de prog:symfony:creer_api:creer_api à prog:symfony:applications:creer_api:creer_api
Ligne 2: Ligne 2:
 On part du principe que [[prog:​symfony:​installer_symfony|Symfony est installé]] On part du principe que [[prog:​symfony:​installer_symfony|Symfony est installé]]
  
-On [[prog:​symfony:​create_new_project|créé un projet ]]+On [[prog:​symfony:​projets:​create|créé un projet ]]
  
 ===== Le controlleur ===== ===== Le controlleur =====
Ligne 23: Ligne 23:
 } }
 </​code>​ </​code>​
 +==== Nom de fichier / Nom de Class ====
 +
 <note important>​ <note important>​
 Il FAUT que le nom de la Class (ici : ''​class CheckVersionController''​) soit identique au nom du fichier (ici : ''​CheckVersionController.php''​) Il FAUT que le nom de la Class (ici : ''​class CheckVersionController''​) soit identique au nom du fichier (ici : ''​CheckVersionController.php''​)
  
 Sinon :​ERREUR</​note>​ Sinon :​ERREUR</​note>​
 +==== Les Routes en Annotations ====
 +
 On utilise les Routes en annotations : On utilise les Routes en annotations :
  
 Il ne faut pas oublier la clause ''​use Symfony\Component\Routing\Annotation\Route;​ Il ne faut pas oublier la clause ''​use Symfony\Component\Routing\Annotation\Route;​
 ''​ ''​
 +
 +Il sera peut etre utile d'​executer ''​composer ​ require annotations''​
 <code php> <code php>
 <?php <?php
Ligne 46: Ligne 52:
 } }
 </​code>​ </​code>​
 +==== Swagger ====
 +Dans le cadre de la programmation d'API au format OpenAPI, il sera utile [[prog:​theorie:​api:​swagger|d'​installer Swagger-php]] qui permet de générer de la documentation conforme OpenAPI grâce a des [[prog:​symfony:​annotations|Annotations]]
 +==== OpenAPI en Annotations ====
 +On modifie le code de notre controlleur avec les lignes ci-dessous :
 +<code php>
 +<?php
 +...
 +use OpenApi\Annotations as OA;
 +
 +class CheckVersionController
 +{
 +     /**
 +      * @Route("/​api/​checkv"​)
 +      * @OA\Get(
 +      *     ​path="/​checkv",​
 +      *     ​@OA\Response(
 +      *         ​response="​200",​
 +      *         ​description="​version courante",​
 +      *         ​@OA\JsonContent(
 +      *             ​type="​string",​
 +      *             ​description="​version"​
 +      *         ​) ​   ​
 +      *      )
 +      * )
 +      */
 +    public function check()
 +    {...}
 +}
 +</​code>​
 +
 +Puis on lance la commande ''​vendor\bin\openapi.bat --format json --output public\swagger\swagger.json swagger\swagger.php src''​ pour mettre a jour le fichier de description au format OpenAPI ''​public/​swagger/​swagger.json''​
 +<​code>​
 +D:​\webprojects\test-api-project>​vendor\bin\openapi.bat --format json --output public\swagger\swagger.json swagger\swagger.php src
 +</​code>​
 +
 +
 +
 +====== Ressources ======
 +  * [[https://​openclassrooms.com/​fr/​courses/​4087036-construisez-une-api-rest-avec-symfony]]
 +