IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Symfony PHP Discussion :

API PLATFORM : groups et controle d'accès


Sujet :

Symfony PHP

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 89
    Points : 102
    Points
    102
    Par défaut API PLATFORM : groups et controle d'accès
    Bonjour les amis,

    je suis en train d'étudier l'API PLATFORM de Symfony.
    j'ai quelques questions :



    (1)
    https://api-platform.com/docs/core/o...f-subresources

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
    <?php
    // api/src/Entity/Question.php
     
    /**
     * ...
     * @ApiResource(
     *      subresourceOperations={
     *          "answer_get_subresource"={
     *              "method"="GET",
     *              "path"="/questions/{id}/all-answers"
     *          },
     *      },
     * )
     */
    class Question
    {
    }

    je ne comprends pas le but de contrôler le chemin des sous-ressources ?
    pourquoi l'utiliser ? dans quel cas ?



    (2)
    https://api-platform.com/docs/core/o...s#subresources

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
     
    <?php
    // api/src/Entity/Answer.php
     
    namespace App\Entity;
     
    use ApiPlatform\Core\Annotation\ApiResource;
     
    /**
     * @ApiResource(collectionOperations={
     *     "api_questions_answer_get_subresource"={
     *         "method"="GET",
     *         "normalization_context"={"groups"={"foobar"}}
     *     }
     * })
     */
    class Answer
    {
        // ...
    }

    quel est le but des groupes personnalisés sur des sous-ressources ?
    pourquoi l'utiliser ? dans quel cas ?





    merci pour vos réponses, ne soyez pas avare en explication parceque je pige que dalle

  2. #2
    Nouveau Candidat au Club
    Inscrit en
    Novembre 2006
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 1
    Points : 1
    Points
    1
    Par défaut subresource
    salut,
    je pense que comme tu peux avoir plusieurs subresources pour la même entity, tu peux vouloir des routes différentes pour n'avoir que certaines d'entre elles, par exemple, un livre correspond à des prêts et à des commentaires (relations oneToMany), il y a peu être un route dans laquelle tu ne veux que les commentaires et pas les prêts ou l'inverse. Voila ce que j'en pense maintenant je viens juste de me mettre à apiPlatform et je n'ai que très peu de recul !
    De mon côté j'avais deux questions également, peut être pourra tu m'aider :

    - je voulais savoir s'il était possible de faire d'autres routes non gérées par apiPlatform si tout simplement nous voulions utiliser nos entity également pour notre site web dans le même projet, j'ai tenté de faire un controller normal avec l'annotation @route mais il ne la voit même pas dans le debug:router comme si apiPlatform prenait la main sur toutes les routes !

    - ensuite comment on pourrait faire une route qui renvoie des stats (le nombres d'articles, et de livres, ou même le nombre de livres par auteur ...) par exemples (des stat venant de plusieurs entity), donc il me parait abhérent de mettre cette route dans une entity en particulier, alors faut il créer une entity rien que pour cela (non liée à doctrine bien sur) ?

    si tu as des pistes je suis preneur ;-) merci d'avance

  3. #3
    Membre expert
    Avatar de dukoid
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2012
    Messages
    2 100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2012
    Messages : 2 100
    Points : 3 004
    Points
    3 004
    Par défaut
    https://api-platform.com/docs/core/o...nd-controllers

    il faut que le controller hérite de : AbstractController
    et utiliser routes.yaml peut être (au lieu des annotations), je n'ai pas tester.

    on peut faire des controllers donc, ça devrais répondre à tes 2 questions

  4. #4
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 496
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 496
    Points : 12 596
    Points
    12 596
    Par défaut
    Bonjour, j'ai suivi une formation ApiPlatform, je la conseille à tout le monde.
    Comme vous je la mets en place et j'ai pas encore toutes les subtilités.
    Néenmoins il est possible de créer de nouvelles routes en les déclarant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
     * @ApiResource(
     *     itemOperations={
                "get",
     *          "put",
     *          "delete",
     *          "updatePassword"={
                    "path"="/customers/{id}/update_password/{hash}",
     *              "method"="PUT",
     *              "denormalization_context"={"groups"={"Customer:write:password"}}
     *          }
     *     }
     * )
     */
    Je me souviens plus, mais je pense que vous devez redéclarer toutes les routes des itemsOpérations (pas sur de ce que j'ai dit).

    Pour les requêtes count et stat vous avez créer des repository quand vous avez créer vos entity, donc cela doit ce faire la-bas il me semble.

Discussions similaires

  1. Type "groupe de controles" dans une function
    Par méphistopheles dans le forum VB 6 et antérieur
    Réponses: 15
    Dernier message: 20/06/2008, 21h07
  2. Authentification et controle d'acces
    Par K-Kaï dans le forum Servlets/JSP
    Réponses: 7
    Dernier message: 26/07/2006, 13h20
  3. Réponses: 1
    Dernier message: 17/03/2006, 18h02
  4. [VBA-A]création de groupes de controles
    Par JulienCEA dans le forum VBA Access
    Réponses: 1
    Dernier message: 17/03/2006, 14h32
  5. controle d'accés pour un fichier (oracle)
    Par tsyl dans le forum Oracle
    Réponses: 13
    Dernier message: 17/03/2006, 09h03

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo