Blog de Gonzalo

CREAR UNA API EN PHP

En este post voy a explicar, de forma muy sencilla, como crear una API en php. Pero ¿qué es una API? API es el acrónimo de Application Programming Interfaces (Interfaces de programación de aplicaciones), dicho de otra manera, nos permite acceder a funcionalidades realizadas por terceros, sin importarnos como está hecho.
Un api Restful es una interfaz abstracta para generar una comunicación a travéa de los servicios HTTP.
En una API un recurso son URLs para acceder o manipular recursos de la API. Por ejemplo si accedemos a una API para obtener el tiempo de una ciudad: api.wather.com/city, city sería el recurso y la url sería un endopoint. Para crear un recurso de forma correcta hay que usar sustantivos y no verbos y los sustantivos deben estar en plural:
Recursos correctos:

  • http://api.ejemplo.com/orders
  • http://api.ejemplo.com/orders/1. Devuelve el pedido con id 1

Recursos incorrectos:
  • http://api.ejemplo.com/orders/getAll
  • http://api.ejemplo.com/orders/getOrderById/1
Cuando accedemos a un API obtenemos una respuesta, un RESPONSE, donde entre otras cosas obtendremos un código de estado que nos indicará el resultado de como se procesó la petición a un endpoint en concreto:
Códigos de estado:
  • 200: La petición se realizó con éxito.
  • 400: El servidor no pudo entender la petición error de sintaxis.
  • 401: Petición sin autorización.
  • 403: El servidor sabe "quien" ha realizado la petición pero no tiene acceso a esa información.
  • 404: Petición no encontrada.
  • 500: Error interna de servidor.
Hay mas códigos de estado, solo he puesto los más comunes.
Cuando se programa un API se usan 4 métodos para interactuar con el sistema al que se hace la llamada que se recogerá con el valor $_SERVER['REQUEST_METHOD']:
  • GET: Obtención de datos, como un usuario, un producto, etc... Se llamará a una función donde se hará una SELECT en la base de datos que se use.
  • PUT: Se guarda un nuevo dato. Se llamará a una función donde se hará un INSERT en la base de datos que se use.
  • POST: Modificación total de un recurso. Se llamará a una función donde se hará un UPDATE en la base de datos que se use.
  • PATCH: Modificación parcial de un recurso. Se llamará a una función donde se hará un UPDATE en la base de datos que se use.
  • DELETE: Se borra un dato especificado por parámetro. Se llamará a una función donde se hará un DELETE en la base de datos que se use.

Normalmente se usa json o xml en la respuesta del API. Para realizar una API es importante que se permita cors(Cross-Origin Resource Sharing).
En este blog utilizo el API de Twitter para publicar mis posts en Twitter o también en mis posts que tengo una barra donde podéis compartir mis posts en linkedin, twitter o meneame.
La forma más sencilla de como crear una API en php es usar el framework Slim y es bastante sencillo de programar.