L
L
Laravel 5
Search
⌃K

Probar una API con cURL

Para probar una API lo podemos hacer fácilmente utilizando el comando curl desde consola, el cual permite enviar peticiones de cualquier tipo a una URL, especificar las cabeceras, parámetros, etc.
Por ejemplo, para realizar una petición tipo GET a una URL simplemente tenemos que hacer:
$ curl -i http://localhost/recurso
HTTP/1.1 200 OK
Transfer-Encoding: chunked
Date: Fri, 27 Jul 2012 05:11:00 GMT
Content-Type: text/plain
¡Hola Mundo!
Donde la opción -i indica que se muestren las cabeceras de la respuesta.
Opcionalmente, al hacer la petición podemos indicar las cabeceras con el parámetro -H. Por ejemplo, para solicitar datos en formato JSON tenemos que hacer:
$ curl -i -H "Accept: application/json" http://localhost/recurso
HTTP/1.1 200 OK
Date: Fri, 27 Jul 2012 05:12:32 GMT
Cache-Control: max-age=42
Content-Type: application/json
Content-Length: 27
{
"text": "¡Hola Mundo!"
}
Como hemos visto por defecto se realiza una petición tipo GET. Si queremos realizar otro tipo de petición lo tendremos que indicar con el parámetro -X seguido del método a utilizar (POST, PUT, DELETE). Además, con la opción -d podemos añadir los parámetros de la petición. Los parámetros tendrán que ir entre comillas y en caso de indicar varios los separaremos con &. Por ejemplo, para realizar una petición tipo POST con dos parámetros:
$ curl -i -H "Accept: application/json" -X POST
-d "name=javi&phone=800999800" http://localhost/users
De la misma forma podemos hacer una petición tipo PUT (para actualizar datos) o tipo DELETE (para eliminarlos). Por ejemplo:
$ curl -i -H "Accept: application/json" -X PUT
-d "name=new-name" http://localhost/users/1
$ curl -i -H "Accept: application/json" -X DELETE http://localhost/users/1
Para añadir más de una cabecera tenemos que indicar varias veces la opción -H, por ejemplo:
$ curl -i -H "Accept: application/json"
-H "Content-Type: application/json" http://localhost/resource
$ curl -i -H "Accept: application/xml"
-H "Content-Type: application/xml" http://localhost/resource
Por ejemplo, si queremos realizar una petición tipo POST que envíe código JSON y que también espere la respuesta en JSON tendríamos que indicar ambas cabeceras y añadir el JSON que queramos en los parámetros con -d de forma normal:
$ curl -i -H "Accept: application/json"
-H "Content-Type: application/json" -X POST
-d '{"title":"xyz","year":"xyz"}' http://localhost/resource
Como resumen, las opciones más importantes de curl son:
Opción
Descripción
-i
Mostrar las cabeceras de respuesta
-H "header"
Configurar las cabeceras de la petición
-X <type>
Indicar el método de la petición: POST, PUT, DELETE. Si no indicamos nada la petición será de tipo GET.
-d "params"
Añadir parámetros a la petición. Los parámetros tendrán que ir entre comillas "". Si queremos pasar varios parámetros utilizaremos como separador "&"

Plugins o extensiones

Además de curl también podemos utilizar otro tipo de programas para probar una API. En Firefox y Chrome podemos encontrar extensiones que nos facilitarán este tipo de trabajo. Por ejemplo, en Firefox podemos encontrar:
Una vez instalado los podremos abrir desde el menú Herramientas, y utilizarlo a través de una interfaz visual muy sencilla.
Para Chrome también podemos encontrar muchas extensiones si buscamos en su tienda (https://chrome.google.com/webstore/category/apps). Algunas opciones interesantes son "Advanced REST client" o "Postman - REST Client".