update doc

master
paidge 4 months ago
parent 8c2eff9cfe
commit 15ed67fd92

@ -26,7 +26,7 @@ Grâce au [schéma d'introspection](https://graphql.org/learn/introspection/), l
- Le type [`ENUM Collection`](https://graphql.org/learn/schema/#enumeration-types) pour récupérer les collections exposées
- Le type `Pagination` pour connaître la page courante et le nombre de pages total dans une collection.
- Le type [`Interface Objet`](https://graphql.org/learn/schema/#interfaces) utilisé par les objets éditoriaux pour partager des champs en communs. Ce type expose les champs `id`, `titre`, `descriptif`, `logo`, `maj`, `slug`, `typeCollection`, `points` et `rang`. Le champs `points` (et non le shampooing :p ) sert lors de la requête `recherche`. Le champs `rang` sert lorsqu'un préfixe est utilisé dans le titre de l'objet. Le champ `typeCollection` représente une des collections exposées et est de type `ENUM Collection`. Le champ slug sert à slugifier le titre (il faudrait pouvoir récupérer un objet par son slug).
- Les types `MonObjet` (par ex : `Article`) liés aux objets éditoriaux. Les autres champs de la BDD peuvent être sélectionnés dans le Back-Office.
- Les types `MonObjet` (par ex : `Article`) liés aux objets éditoriaux. Les autres champs de la BDD spécifiques à l'objet peuvent être sélectionnés dans le Back-Office.
- Les types `MonObjetPagination` (par ex : `ArticlePagination`) permet de retourner une liste de `MonObjet` avec la pagination.
- Le type `SearchResult` (utilisé dans la recherche) permet de retourner n'importe quel type d'objet éditorial exposé ([type `UNION`](https://graphql.org/learn/schema/#union-types)).
@ -99,9 +99,15 @@ Voici un exemple de requête graphQL que vous pouvez tester :
recherche(texte:"ma recherche") {
... on Article {
...objetFields
chapo
texte
}
... on Rubrique {
...objetFields
texte
parent {
...objetFields
}
}
}
}

@ -0,0 +1,11 @@
# Dossier d'entrée de l'API
## Fichier graphql.php
C'est ce fichier qui est appelé via l'url `spip.php?action=graphql` et qui est donc le point d'entrée de l'API
## Dossier `graphql`
Ce dossier contient 2 sous-dossiers permettant à un développeur de créer ses propres types ou requêtes.
Pour créer un nouveau type type ou requête à représenter dans le schéma de l'API, il suffit de créer un fichier portant le nom de votre type ou de votre requête dans le dossier adéquat. Chaque fichier retourne un tableau qui sera incorporéré dans le schéma d'introspection. Il y a 2 fichiers d'exemple que vous pouvez décommenter pour tester. Il est tout à fait possible d'utiliser les types fournis par le plugin. Par ex avec : `$this->get('ArticlePagination')` ou `$this->get('Rubrique')`. **Il faut surtout que la réponse de la requête soit conforme au type.** Sinon `graphql-php` renvoit `null`.
Pour ne perdre ses types et requêtes personnalisées lors d'une MAJ du plugin, le développeur peut créer les dossiers `/action/graphql/types` et `/action/graphql/requetes` à la racine
Loading…
Cancel
Save