Différences entre les versions de « Programmation PHP/Symfony/API »

m
<source> -> <syntaxhighlight> (phab:T237267)
m (<source> -> <syntaxhighlight> (phab:T237267))
=== FOS REST ===
FOSRestBundle apporte des annotations pour créer des contrôleurs d'API<ref>https://github.com/FriendsOfSymfony/FOSRestBundle</ref>. Installation :
<sourcesyntaxhighlight lang=bash>
composer require "friendsofsymfony/rest-bundle"
</syntaxhighlight>
</source>
 
Puis dans <u>config/packages/fos_rest.yaml</u> :
<sourcesyntaxhighlight lang=yaml>
fos_rest:
view:
- { path: '^/', prefer_extension: true, fallback_format: ~, priorities: [ 'html', '*/*'] }
- { path: ^/api, prefer_extension: true, fallback_format: json, priorities: [ json ] }
</syntaxhighlight>
</source>
 
=== Doc ===
Toute API doit exposer sa documentation avec ses routes et leurs paramètres. NelmioApiDocBundle est un de générateur de documentation automatique à partir du code<ref>https://github.com/nelmio/NelmioApiDocBundle</ref>, qui permet en plus de tester en ligne. En effet, pour éviter de tester les API en copiant-collant leurs chemins dans une commande {{w|cURL}} ou dans des logiciels plus complets comme Postman<ref>https://www.postman.com/</ref>, on peut installer une interface graphique ergonomique qui allie documentation et test en ligne :
<sourcesyntaxhighlight lang=bash>
composer require "nelmio/api-doc-bundle"
</syntaxhighlight>
</source>
 
Son URL se configure ensuite dans <u>routes/nelmio_api_doc.yml</u> :
<sourcesyntaxhighlight lang=yaml>
app.swagger_ui:
path: /api/doc
methods: GET
defaults: { _controller: nelmio_api_doc.controller.swagger_ui }
</syntaxhighlight>
</source>
 
A ce stade l'URL /api/doc affiche juste un lien ''NelmioApiDocBundle''.
 
==== symfony/serializer ====
<sourcesyntaxhighlight lang=bash>
composer require "symfony/serializer"
</syntaxhighlight>
</source>
 
==== jms/serializer-bundle ====
<sourcesyntaxhighlight lang=bash>
composer require "jms/serializer-bundle"
</syntaxhighlight>
</source>
 
== Utilisation ==
Maintenant /api/doc affiche les méthodes des différents contrôleurs API. Voici un exemple :
 
<sourcesyntaxhighlight lang=php>
<?php
 
}
}
</syntaxhighlight>
</source>
 
Maintenant dans /api/doc, cliquer sur /api/test, puis "Ty it out" pour exécuter la méthode de test.
1 535

modifications