« Programmation PHP avec Symfony/API » : différence entre les versions

Un livre de Wikilivres.
Contenu supprimé Contenu ajouté
Ligne 22 : Ligne 22 :


=== Sérialiseur ===
=== Sérialiseur ===
Enfin pour la sérialisation, on distingue deux solutions :
Enfin pour la sérialisation, on distingue plusieurs 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>.
* jms/serializer-bundle, avec des contrôleurs <code>extends RestController</code> et des méthodes aux annotations <code>@ApiDoc()</code>.
* jms/serializer-bundle, avec des contrôleurs <code>extends RestController</code> et des méthodes aux annotations <code>@ApiDoc()</code>.
* Le service <code>fos_rest.service.serializer</code>.


==== symfony/serializer ====
==== symfony/serializer ====
Ligne 34 : Ligne 35 :
<source lang=bash>
<source lang=bash>
composer require "jms/serializer-bundle"
composer require "jms/serializer-bundle"
</source>

==== fos_rest.service.serializer ====
<source lang=bash>
composer require "fos_rest.service.serializer"
</source>
</source>



Version du 30 mars 2019 à 20:32

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 plusieurs 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().
  • Le service fos_rest.service.serializer.

symfony/serializer

    composer require "symfony/serializer"

jms/serializer-bundle

    composer require "jms/serializer-bundle"

Références