Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Autentificación
<?php
// Información
$relojes = [
[
'marca' => 'Marea',
'origen' => 'Spain'
],
[
'marca' => 'Rolex',
'origen' => 'Suiza'
],
[
'marca' => 'Omega',
'origen' => 'Suiza'
],
[
'marca' => 'Casio',
'origen' => 'Japón'
]
];
[
{
"marca": "Marea",
"origen": "Spain"
},
{
"marca": "Rolex",
"origen": "Suiza"
},
{
"marca": "Omega",
"origen": "Suiza"
},
{
"marca": "Casio",
"origen": "Japón"
}
]
Recoger un JSON de un API
Para obtener el JSON debemos utilizando un cliente HTTP que gestione las cabeceras, verbos y
demás elementos técnicos. En PHP está altamente estandarizado con la invocación a curl.
Cada API puede proporcionar sus propias especificaciones a la hora de conectar con un servicio
API o webservice, ejemplos de API son e-commerce, información metereológica, servicios de
envío de mercancía, información sobre eventos deportivos, es decir, cualquier información que
se desee compartir con otras aplicaciones.
A continuación puede observar una función de ejemplo que puede ser de ayuda:
<?php
/**
* Obtiene un JSON de una url
* @param {string} $url
* @param {string} $method - Por defecto GET.
* @param {array} $body - Array con elementos a enviar. Por defecto [].
* @return {array}
*/
$result = curl_exec($curl);
curl_close($curl);
Antes de realizar tu API debes dar una estructura lógica para que los desarrolladores asimilen
rápidamente como hacer llamadas. En la siguiente tabla puedes ver un ejemplo de una supuesta
biblioteca con rutas usando un formato ampliamente extendido llamado API REST.
Veamos por ejemplo como podría ser una estructura de rutas para una biblioteca:
Cabeceras interesantes
<?php
header('Content-Type: application/json');
Habilitar CORS, para indicar que dominios o recursos externos pueden acceder a sus datos:
<?php
header("Access-Control-Allow-Origin: {$_SERVER['HTTP_ORIGIN']}");
header('Access-Control-Allow-Credentials: true');
Indicar caché
<?php
header('Access-Control-Max-Age: 86400'); Ejemplo de un día en segundos.
Métodos disponibles
<?php
header('Access-Control-Allow-Methods: GET, POST, PUT, DELETE, OPTIONS');
Control de método
En algún momento habrá que vigilar que método estamos recibiendo (GET, POST, PUT, DELETE,
etc). Y en caso contrario devolver un código de error apropiado.
<?php
// Filtramos por el método POST
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
} else {
En el ejemplo solo devolvemos el estatus de la conexión, pero podríamos añadir también los
relojes del primer ejemplo: