Hoe GraphQL te testen met Postman

1. Overzicht

In deze korte zelfstudie laten we zien hoe u GraphQL-eindpunten kunt testen met Postman.

2. Schema-overzicht en methoden

We zullen de eindpunten gebruiken die zijn gemaakt in onze GraphQL-zelfstudie. Ter herinnering: het schema bevat definities die berichten en auteurs beschrijven:

typ Post {id: ID! title: String! tekst reeks! categorie: String auteur: Auteur! } typ Auteur {id: ID! naam: String! thumbnail: String berichten: [Post]! }

Bovendien hebben we methoden om berichten weer te geven en nieuwe te schrijven:

typ Query {recentPosts (count: Int, offset: Int): [Post]! } type Mutatie {writePost (titel: String !, tekst: String !, categorie: String): Post! }

Wanneer u een mutatie gebruikt om gegevens op te slaan, wordt de verplichte velden zijn gemarkeerd met een uitroepteken. Merk ook op dat in onze Mutatie, het geretourneerde type is Post, maar in Vraag, we krijgen een lijst van Post voorwerpen.

Het bovenstaande schema kan worden geladen in de Postman API-sectie - voeg gewoon toe Nieuwe API met GraphQL typ en druk op Verzameling genereren:

Zodra we ons schema hebben geladen, kunnen we dat schrijf eenvoudig voorbeeldquery's met behulp van Postman's autocomplete-ondersteuning voor GraphQL.

3. GraphQL-verzoeken in Postman

Allereerst stelt Postman ons in staat om het body in GraphQL-indeling - we kiezen gewoon de GraphQL-optie hieronder:

Vervolgens kunnen we een native GraphQL-query schrijven, zoals een query die ons de titel, categorie, en auteur naam in de QUERY-sectie:

zoekopdracht {recentPosts (count: 1, offset: 0) {titel categorie auteur {naam}}}

En als resultaat krijgen we:

{"data": {"recentPosts": [{"title": "Post", "category": "test", "author": {"name": "Author 0"}}]}}

Het is ook mogelijk om stuur een verzoek in het onbewerkte formaat, maar we moeten toevoegen Inhoudstype: application / graphql naar de headers-sectie. En in dit geval ziet het lichaam er hetzelfde uit.

We kunnen bijvoorbeeld updaten titel, tekst, categorie, krijg een ID kaart en titel als antwoord:

mutatie {writePost (title: "Post", text: "test", categorie: "test",) {id title}}

Het type operatie - zoals vraag en mutatie - kan worden weggelaten uit de hoofdtekst van de zoekopdracht, zolang we een verkorte syntaxis gebruiken. In dit geval kunnen we de naam van de bewerking en variabelen niet gebruiken, maar het wordt aanbevolen om de naam van de bewerking te gebruiken om logboekregistratie en foutopsporing te vergemakkelijken.

4. Variabelen gebruiken

In de sectie variabelen kunnen we een schema in JSON-indeling maken dat waarden aan de variabelen toewijst. Dit vermijdt het typen van argumenten in een queryreeks:

Dus we kunnen het recente berichten body in de QUERY-sectie om dynamisch waarden van variabelen toe te wijzen:

query recentPosts ($ count: Int, $ offset: Int) {recentPosts (count: $ count, offset: $ offset) {id title text category}}

En we kunnen de sectie GRAPHQL VARIABELEN bewerken met wat we willen dat onze variabelen worden ingesteld:

{"count": 1, "offset": 0}

5. Samenvatting

We kunnen GraphQL eenvoudig testen met Postman, waarmee we ook het schema kunnen importeren en er query's voor kunnen genereren.

Een verzameling verzoeken is te vinden op GitHub.