« Programmation PHP avec Symfony/API » : différence entre les versions
Contenu supprimé Contenu ajouté
Aucun résumé des modifications |
Aucun résumé des modifications |
||
Ligne 13 : | Ligne 13 : | ||
</source> |
</source> |
||
Son URL se configure ensuite dans <u>routes/nelmio_api_doc.yml</u> : |
|||
<source lang=yaml> |
|||
app.swagger_ui: |
|||
path: /api/doc |
|||
methods: GET |
|||
defaults: { _controller: nelmio_api_doc.controller.swagger_ui } |
|||
</source> |
|||
=== Sérialiseur === |
|||
Enfin pour la sérialisation, on distingue deux solutions : |
Enfin pour la sérialisation, on distingue deux solutions : |
||
* symfony/serializer, qui donne des contrôleurs <code>extends FOSRestController</code> et des méthodes aux annotations <code>@Rest\Post()</code><ref>https://www.thinktocode.com/2018/03/26/symfony-4-rest-api-part-1-fosrestbundle/</ref>. |
* symfony/serializer, qui donne des contrôleurs <code>extends FOSRestController</code> et des méthodes aux annotations <code>@Rest\Post()</code><ref>https://www.thinktocode.com/2018/03/26/symfony-4-rest-api-part-1-fosrestbundle/</ref>. |
Version du 30 mars 2019 à 20:17
Installation
Pour créer une interface de programmation (API) REST avec Symfony :
composer require "friendsofsymfony/rest-bundle"
Pour éviter de tester les API en copiant-collant leurs chemins dans une commande cURL ou des outils comme Postman, on peut installer une interface graphique ergonomique :
composer require "nelmio/api-doc-bundle"
Son URL se configure ensuite dans routes/nelmio_api_doc.yml :
app.swagger_ui:
path: /api/doc
methods: GET
defaults: { _controller: nelmio_api_doc.controller.swagger_ui }
Sérialiseur
Enfin pour la sérialisation, on distingue deux solutions :
- symfony/serializer, qui donne des contrôleurs
extends FOSRestController
et des méthodes aux annotations@Rest\Post()
[1]. - jms/serializer-bundle, avec des contrôleurs
extends RestController
et des méthodes aux annotations@ApiDoc()
.
symfony/serializer
composer require "symfony/serializer"
jms/serializer-bundle
composer require "jms/serializer-bundle"