HTTP Request via Schema
Adición de campos al esquema GraphQL para recuperar los datos de la petición HTTP actual.
Lista de campos
Los siguientes campos se añaden al esquema:
_httpRequestBody
Cuerpo de la petición HTTP.
_httpRequestClientHost
Host del cliente.
_httpRequestClientIP
Recupera la dirección IP del cliente. Si el servidor no está configurado correctamente (ver abajo), la respuesta es null.
Configuración
La dirección IP del cliente se recupera de la variable global $_SERVER, normalmente de la propiedad 'REMOTE_ADDR'. Sin embargo, diferentes plataformas pueden requerir el uso de un nombre de propiedad distinto para recuperar esta información.
Por ejemplo:
- Cloudflare podría usar
'HTTP_CF_CONNECTING_IP' - AWS podría usar
'HTTP_X_FORWARDED_FOR'
El nombre de la propiedad a usar puede configurarse en la pestaña "Plugin Configuration > Server IP Configuration" de la página de Ajustes:

_httpRequestCookie
Valor de cookie de la petición.
_httpRequestCookies
Cookies de la petición.
_httpRequestDomain
Dominio de la URL solicitada.
_httpRequestFullURL
URL solicitada (incluyendo los parámetros de query).
_httpRequestHasCookie
¿Contiene la petición una determinada cookie?
_httpRequestHasHeader
¿Contiene la petición una determinada cabecera?
_httpRequestHasParam
¿Contiene la petición un determinado parámetro?
_httpRequestHeader
Valor de cabecera de la petición.
_httpRequestHeaders
Cabeceras de la petición.
_httpRequestHost
Host de la URL solicitada.
_httpRequestMethod
Método de la petición.
_httpRequestParams
Objeto JSON con todos los parámetros (pasados mediante POST o GET).
Los valores de los parámetros pueden ser:
- Strings:
?param=value - Arrays:
?someArray[]=1&someArray[]=2 - Array de arrays:
?someMatrix[0][0]=3&someMatrix[0][1]=4&someMatrix[1][0]=5&someMatrix[1][1]=6 - Arrays asociativos (es decir, objetos):
?someAssocArray["admins"]=20&someAssocArray["authors"]=30 - Array asociativo de arrays:
?someAssocMatrix["admins"][0]=7&someAssocMatrix["admins"][1]=8&someAssocMatrix["authors"][0]=9&someAssocMatrix["authors"][1]=10 - Otras combinaciones
Para obtener el valor del parámetro, podemos usar los campos _httpRequestStringParam y _httpRequestStringListParam para los primeros dos casos respectivamente, pero no hay campos para los otros casos.
Para esos, usa este campo _httpRequestParams para obtener el objeto JSON, y luego recuperar el valor correspondiente desde dentro.
_httpRequestProtocol
Protocolo de la petición.
_httpRequestQuery
String de parámetros de query.
_httpRequestReferer
Referer de la petición.
_httpRequestRequestTime
Timestamp del inicio de la petición.
_httpRequestScheme
Esquema de la URL solicitada.
_httpRequestServerIP
Dirección IP del servidor.
_httpRequestStringListParam
Valor de un parámetro (pasado mediante POST o GET) del tipo ?param[]=value1¶m[]=value2.
_httpRequestStringParam
Valor de un parámetro (pasado mediante POST o GET) del tipo ?param=value.
_httpRequestURL
URL solicitada (sin parámetros de query).
_httpRequestURLPath
Ruta absoluta (empezando con "/") de la URL solicitada.
_httpRequestUserAgent
User agent.
Ejemplos
Esta consulta:
query {
_httpRequestHeaders
existingHeader: _httpRequestHeader(name: "Accept")
caseInsensitiveExistingHeader: _httpRequestHeader(name: "accept")
nonExistingHeader: _httpRequestHeader(name: "Non-existing")
existingHasHeader: _httpRequestHasHeader(name: "Accept")
caseInsensitiveExistingHasHeader: _httpRequestHasHeader(name: "accept")
nonExistingHasHeader: _httpRequestHasHeader(name: "Non-existing")
_httpRequestBody
_httpRequestMethod
_httpRequestDomain
_httpRequestScheme
_httpRequestHost
_httpRequestURL
_httpRequestFullURL
_httpRequestURLPath
_httpRequestQuery
_httpRequestParams
existingParam: _httpRequestStringParam(name: "page")
caseInsensitiveExistingParam: _httpRequestStringParam(name: "PAge")
existingArrayParam: _httpRequestStringListParam(name: "someArray")
nonExistingParam: _httpRequestStringParam(name: "also-non-existing")
nonExistingListParam: _httpRequestStringListParam(name: "also-non-existing")
existingHasParam: _httpRequestHasParam(name: "page")
caseInsensitiveExistingHasParam: _httpRequestHasParam(name: "PAge")
nonExistingHasParam: _httpRequestHasParam(name: "also-non-existing")
existingCookie: _httpRequestCookie(name: "wordpress_test_cookie")
caseInsentiveExistingCookie: _httpRequestCookie(name: "Wordpress_Test_Cookie")
nonExistingCookie: _httpRequestCookie(name: "not_existing")
existingHasCookie: _httpRequestHasCookie(name: "wordpress_test_cookie")
caseInsentiveExistingHasCookie: _httpRequestHasCookie(name: "Wordpress_Test_Cookie")
nonExistingHasCookie: _httpRequestHasCookie(name: "not_existing")
_httpRequestProtocol
_httpRequestReferer
_httpRequestServerIP
_httpRequestClientIP
_httpRequestClientHost
_httpRequestUserAgent
_httpRequestCookies
_httpRequestRequestTime
}...produce:
{
"data": {
"_httpRequestHeaders": {
"authorization": "",
"host": "gato-graphql-pro.lndo.site",
"user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:109.0) Gecko/20100101 Firefox/114.0",
"content-length": "1924",
"accept": "application/json",
"accept-encoding": "gzip, deflate, br",
"accept-language": "en-US,en;q=0.5",
"content-type": "application/json",
"cookie": "wordpress_sec_f21902903273c44cc3a47d07e23af599=admin%7C1687924210%7CcMlLArK65w5nACJHlglLMMd52rRVZRmu2LRUJmCi7n1%7Cad6b03a20093f342a4107076432f7857e244174ab4d866c1887417c2e304e3fe; wp-settings-time-1=1686559494; wp-settings-1=libraryContent%3Dbrowse; wordpress_test_cookie=WP%20Cookie%20check; wp_lang=en_US; wordpress_logged_in_f21902903273c44cc3a47d07e23af599=admin%7C1687924210%7CcMlLArK65w5nACJHlglLMMd52rRVZRmu2LRUJmCi7n1%7C0ec85ac4a275aff3c464e139d40061aa0062a4e7376666b99ec8063a6715788a",
"dnt": "1",
"origin": "https://gato-graphql-pro.lndo.site",
"referer": "https://gato-graphql-pro.lndo.site/wp-admin/admin.php?page=gatographql&query=...",
"sec-fetch-dest": "empty",
"sec-fetch-mode": "cors",
"sec-fetch-site": "same-origin",
"sec-gpc": "1",
"te": "trailers",
"x-forwarded-for": "172.19.0.1",
"x-forwarded-host": "gato-graphql-pro.lndo.site",
"x-forwarded-port": "443",
"x-forwarded-proto": "https",
"x-forwarded-server": "6de0a38d2bbe",
"x-lando": "on",
"x-real-ip": "172.19.0.1",
"x-wp-nonce": "258a8aed3b"
},
"existingHeader": "application/json",
"caseInsensitiveExistingHeader": "application/json",
"nonExistingHeader": null,
"existingHasHeader": true,
"caseInsensitiveExistingHasHeader": true,
"nonExistingHasHeader": false,
"_httpRequestBody": "{\"query\":\"...\",\"variables\":{\"postID\":40,\"translateToLang\":\"es\"}}",
"_httpRequestMethod": "POST",
"_httpRequestDomain": "lndo.site",
"_httpRequestScheme": "https",
"_httpRequestHost": "gato-graphql-pro.lndo.site",
"_httpRequestURL": "https://gato-graphql-pro.lndo.site/wp-admin/edit.php",
"_httpRequestFullURL": "https://gato-graphql-pro.lndo.site/wp-admin/edit.php?page=gatographql&action=run_query",
"_httpRequestURLPath": "/wp-admin/edit.php",
"_httpRequestQuery": "page=gatographql&action=run_query",
"_httpRequestParams": {
"page": "gatographql",
"action": "run_query"
},
"existingParam": "gatographql",
"caseInsensitiveExistingParam": null,
"existingArrayParam": null,
"nonExistingParam": null,
"nonExistingListParam": null,
"existingHasParam": true,
"caseInsensitiveExistingHasParam": false,
"nonExistingHasParam": false,
"existingCookie": "WP Cookie check",
"caseInsentiveExistingCookie": null,
"nonExistingCookie": null,
"existingHasCookie": true,
"caseInsentiveExistingHasCookie": false,
"nonExistingHasCookie": false,
"_httpRequestProtocol": "HTTP/1.1",
"_httpRequestReferer": "https://gato-graphql-pro.lndo.site/wp-admin/admin.php?page=gatographql&query=...",
"_httpRequestServerIP": "172.19.0.4",
"_httpRequestClientIP": "172.19.0.2",
"_httpRequestClientHost": null,
"_httpRequestUserAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:109.0) Gecko/20100101 Firefox/114.0",
"_httpRequestCookies": {
"wordpress_sec_f21902903273c44cc3a47d07e23af599": "admin|1687924210|cMlLArK65w5nACJHlglLMMd52rRVZRmu2LRUJmCi7n1|ad6b03a20093f342a4107076432f7857e244174ab4d866c1887417c2e304e3fe",
"wp-settings-time-1": "1686559494",
"wp-settings-1": "libraryContent=browse",
"wordpress_test_cookie": "WP Cookie check",
"wp_lang": "en_US",
"wordpress_logged_in_f21902903273c44cc3a47d07e23af599": "admin|1687924210|cMlLArK65w5nACJHlglLMMd52rRVZRmu2LRUJmCi7n1|0ec85ac4a275aff3c464e139d40061aa0062a4e7376666b99ec8063a6715788a"
},
"_httpRequestRequestTime": 1687836456
}
}