Desde que empecé en el mundo del desarrollo web nunca había tenido que crear una API completa como tal y cuando te toca hacerlo… te vienen cientos de dudas a la cabeza: cómo empiezo, cómo funciona esto, para que sirve. Si a ti también te han asaltado esta serie de dudas te voy a desmigar cómo realizar una API
¿Qué es una API?
API viene de Aplication Programming Interface o lo que es lo mismo Interfaz de Programación de Aplicaciones y sirve para dar acceso a los datos de tu aplicación (ya sea para consultar o actualizar) de una manera sencilla y segura para que luego el usuario final los utilice como el decida. También la podríamos programar para nosotros mismos y dar acceso por ejemplo a una app de iOS o Android.
Cómo crear una API
Cómo gestionar la autenticación a tu API
Si tuviéramos una aplicación web de facturas por poner un ejemplo, lógicamente cada usuario tendría las suyas propias y por tanto tendríamos que poder distinguir que usuario nos esta haciendo una petición. Para ello deberíamos generar una hash asociado a cada usuario y que este fuera unico y nunca se repitiera.
Por ejemplo, podríamos crear un hash codificado en md5 que incluyera el ID del usuario, su email y el día y hora exactos del momento en que se genera:
md5($iduser.$email.time());
Cuando el usuario hiciera una petición a nuestra web comprobaríamos el Api Key y en el caso de que exista ya tendríamos identificado quien nos esta haciendo la petición para luego devolverle los datos correspondientes.
Cómo gestionar las peticiones
Esto dependerá un poco de cada uno y podremos procesar las peticiones vía parámetros POST o GET o una combinación de ambas. Por ejemplo si vamos a sacar un listado sin mas y no necesitamos insertar ningún dato yo optaría por una petición GET simple y sin complicaciones como la siguiente:
http://api.juansm.com/index.php?api_key=xxxx&action=getlist
Cómo devolver los datos
Lo más habitual a la hora de devolver los datos es en XML o en JSON. Si te decides a devolver los datos en JSON podrías hacer algo como esto:
$arr = array('response' => true, 'data' => 'Datos a devolver'); header('Content-Type: application/json; charset=utf-8'); echo json_encode($arr);
Fijaros que antes de mostrar por pantalla el resultado de la petición defino una cabecera header para que se muestre en el formato adecuado.
Muy importante: LA DOCUMENTACIÓN
Si has desarrollado una API es muy importante que la documentes ya que quien la acabará utilizando será un usuario final que puede que no tenga mucha idea. También viene bien añadir una zona donde pueda generar los códigos necesarios con un simple click y que solo tenga que copiar y pegar. Cuanto más sencillo para el, mejor para todos.
Si tienes cualquier duda o quieres ampliar información al respecto solo tenéis que dejar un comentario 🙂
Excelente artículo, justamente en nuestra empresa estamos pensando en crear una app en este momento que tiene que ver con esto, y esta información ayuda bastante.