Y BUENAS PRÁCTICAS
Backend Developer en
Es el conjunto de subrutinas, funciones y procedimientos que ofrece cierta biblioteca para ser utilizado por otro software como una capa de abstracción.
Es un servicio que nos provee de funciones que nos dan la capacidad de hacer uso de un servicio web que no es nuestro.
Describe cualquier interfaz entre sistemas que utilice directamente HTTP para obtener datos o indicar la ejecución de operaciones sobre los datos, en cualquier formato (XML, JSON, etc)
Transferencia de Estado Representacional
(REpresentational State Transfer)
Stripe
Separación entre el cliente y el servidor
Independencia de lenguaje
Escalabilidad al no tener estado
(jotasón)
Usa nombres, no verbos
Siempre en plural
Facilita la vida al consumidor aunque el nombre no coincida internamente
GET /posts - Devuelve todos los artículos
GET /posts/1 - Devuelve el artículo con el ID 1
POST /posts - Crea un nuevo artículo
PUT /posts/1 - Actualiza el articulo con el ID 1
DELETE /posts/1 - Elimina el artículo con el ID 1
GET /posts/1/comments
Devuelve todos los comentarios del artículo 1
POST /posts/1/comments
Crea un nuevo comentario en el artículo 1
PUT /posts/1/comments/5
Actualiza los datos del comentario 5 del art. 1
Añade la posibilidad de ordenar los listados (ej. ?sort=-popular)
Pagina los resultados (ej. ?page=1&per_page=5)
Permite búsquedas: (ej. ?q=Laravel)
Permite insertar relaciones en las peticiones. Por ejemplo:
/users?with=posts
/posts/1?with=comments.user
No se almacenan los usuarios en sesiones, ahorrando memoria
Pero hazlo bien
No es lo mismo devolver
que
{
"status": "error"
}
{
"status": "error",
"message": "El email es obligatorio",
"status_code": 422,
"error_code": "validation_error"
}
http://apidocjs.com/
http://swagger.io/
https://apiblueprint.org/
https://github.com/tripit/slate (como stripe)
Rest- Framework
Dingo/Api
Api Handler
Rails-Api
POSTMAN (chrome app y extension)
PAW
REST CLIENT
http://hipertextual.com/archivo/2014/05/que-es-api/
http://www.vinaysahni.com/best-practices-for-a-pragmatic-restful-api
https://es.wikipedia.org/wiki/Interfaz_de_programaci%C3%B3n_de_aplicaciones