HTTP Client
Verbind je met externe services en communiceer via hun API's.

Click to watch tutorial video - 03:08
Het GraphQL-schema beschikt over globale velden om HTTP-verzoeken naar een webserver te sturen en de antwoorden op te halen.
Het ondersteunt verbindingen met REST API's, GraphQL API's en generieke API's, en kan elk type data ophalen en decoderen (inclusief HTML, XML en CSV).
REST API: deze query maakt verbinding met de WP REST API van een externe website om de berichten ervan op te halen:
query {
postData: _sendJSONObjectItemHTTPRequest(input: {
url: "https://some-wp-rest-api.com/wp-json/wp/v2/posts/1/"
})
}...en geeft het volgende antwoord terug:
{
"data": {
"postData": {
"id": 1,
"date": "2019-08-02T07:53:57",
"date_gmt": "2019-08-02T07:53:57",
"guid": {
"rendered": "https:\/\/newapi.getpop.org\/?p=1"
},
"modified": "2021-01-14T13:18:39",
"modified_gmt": "2021-01-14T13:18:39",
"slug": "hello-world",
"status": "publish",
"type": "post",
"link": "https:\/\/newapi.getpop.org\/uncategorized\/hello-world\/",
"title": {
"rendered": "Hello world!"
},
"content": {
"rendered": "\n<p>Welcome to WordPress. This is your first post. Edit or delete it, then start writing!<\/p>\n\n\n\n<p>I’m demonstrating a Youtube video:<\/p>\n\n\n\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe loading=\"lazy\" title=\"Introduction to the Component-based API by Leonardo Losoviz | JSConf.Asia 2019\" width=\"750\" height=\"422\" src=\"https:\/\/www.youtube.com\/embed\/9pT-q0SSYow?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture\" allowfullscreen><\/iframe>\n<\/div><figcaption>This is my presentation in JSConf Asia 2019<\/figcaption><\/figure>\n",
"protected": false
},
"excerpt": {
"rendered": "<p>Welcome to WordPress. This is your first post. Edit or delete it, then start writing! I’m demonstrating a Youtube video:<\/p>\n",
"protected": false
},
"author": 1,
"featured_media": 0,
"comment_status": "closed",
"ping_status": "open",
"sticky": false,
"template": "",
"format": "standard",
"meta": [],
"categories": [
1
],
"tags": [
193,
173
]
}
}
}GraphQL API: Deze query maakt verbinding met de GraphQL API van GitHub om een lijst met repositories op te halen:
query FetchGitHubRepositories(
$login: String!
$githubAccessToken: String!
) {
_sendGraphQLHTTPRequest(input:{
endpoint: "https://api.github.com/graphql",
query: """
query GetRepositoriesByOwner($login: String!) {
repositoryOwner(login: $login) {
repositories(first: 100) {
nodes {
id
name
description
}
}
}
}
""",
variables: [
{
name: "login",
value: $login
}
],
options: {
auth: {
password: $githubAccessToken
}
}
})
}Generieke API: Deze query maakt verbinding met een WordPress RSS-feed en decodeert de XML naar een JSON-object:
query {
_sendHTTPRequest(input: {
url: "https://wordpress.com/blog/2024/07/16/wordpress-6-6/feed/rss/?withoutcomments=1"
}) {
body
rssJSON: _strDecodeXMLAsJSON(
xml: $__body
)
}
}