0% encontró este documento útil (0 votos)
23 vistas27 páginas

Introducción a APIs RESTful y CRUD

El documento presenta una introducción a las APIs REST, explicando su definición, estructura y funcionamiento. Se detallan los principios de REST, el formato de intercambio de datos (JSON y XML), y las operaciones CRUD que permiten crear, leer, actualizar y eliminar recursos. Además, se abordan ejemplos de solicitudes y respuestas, así como la importancia de los parámetros de consulta en las interacciones con las APIs.

Cargado por

iachatgp
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
23 vistas27 páginas

Introducción a APIs RESTful y CRUD

El documento presenta una introducción a las APIs REST, explicando su definición, estructura y funcionamiento. Se detallan los principios de REST, el formato de intercambio de datos (JSON y XML), y las operaciones CRUD que permiten crear, leer, actualizar y eliminar recursos. Además, se abordan ejemplos de solicitudes y respuestas, así como la importancia de los parámetros de consulta en las interacciones con las APIs.

Cargado por

iachatgp
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

API REST

Construcción de
Interfaces de Usuario
1er Cuatrimestre 2019
API

▰ Interfaz de Programación de Aplicaciones


▻ Application Programming Interface
▰ Conjunto de comandos, protocolos, funciones,
objetos, etc...
▰ Provee estándares para facilitar la interacción
con componentes
▰ Encapsula tareas complejas en otras más
simples
2
API

▰ ¿Es una Interfaz de Usuario?


▰ ¿Quién es el Usuario?
▰ ¿Conocen ejemplos de APIs?

3
Esquema

4
APIs Web

▰ Implementan servicios
▰ Exponen recursos
▰ Permite interactuar con multiplicidad de
tecnologías
▰ Establecen un protocolo de comunicación
▰ Agregan una capa de seguridad
5
REST

▰ Transferencia de Estado Representacional


▻ REpresentational State Transfer
▰ Estilo de arquitectura de software que
provee estándares para la interacción
entre sistemas web
▰ Hace que la comunicación entre sistemas
sea más simple
6
APIs RESTful

▰ Aquellas aplicaciones que son


compatibles con los principios REST:
▻ Stateless
▻ Arquitectura Cliente-Servidor
▻ Uso de Caché
▻ Interface Uniforme
7
API REST
Interface Uniforme

▰ Identificación del Recurso


▻ usuarios/, restaurants/, pedidos/, etc...
▰ Operaciones bien definidas
▻ GET, POST, PUT, DELETE, etc…
▰ Sintaxis Universal
▻ GET usuarios/, DELETE usuarios/, etc…
▰ Hypermedia
▻ application/json, text/html, etc... 8
API REST
Formato de Intercambio

Se necesita un formato definido para intercambiar


información. Los dos formatos más extendidos son:
JSON XML
JavaScript Object Notation Extensible Markup Language
{ <credentials>
"credentials": { <username>hodor</username>
"username": "hodor", <password>hodor</password>
"password": "hodor" </credentials>
}
} 9
JSON
Reglas de Sintaxis

La sintaxis de JSON deriva de la sintaxis de notación de


objetos de JavaScript:

▰ Información como par “key”:“value”


▰ Datos separados por coma (,)
▰ Las llaves ({}) contienen objetos
▰ Los corchetes ([]) contienen listas
10
JSON
Tipos de datos

Las keys son “strings”.


Los value pueden ser:
▰ String "algún texto"
▰ Number 1 | -1 | 1.2 | -1.0
▰ Object {"key": "value"}
▰ List [1, "dos", {"val": 3.0}]
▰ Boolean true | false
▰ Null null
11
JSON

{
"lugar": "Universidad Nacional de Quilmes",
"coordenadas": {
"latitud": -34.706294,
"longitud": -58.278522
},
"distancias": [
{
"lugar": "Obelisco",
"kms": 14.81,
}, {
"lugar": "Mendoza",
"kms": 996.52
},
]
}
12
API REST
REQUESTs

Para cada REQUEST, en una API REST se define la


estructura a la cual el cliente se debe ajustar para
recuperar o modificar un recurso. En general consiste de:
▰ Verbo HTTP: define qué tipo de operación realizar
▰ Protocolo aceptado: HTTP 1.1, HTTP 1.0
▰ Media Data aceptada: html, json, xml
▰ Encabezado: (opcional) permite pasar información extra
▰ Ruta al recurso
▰ Cuerpo de mensaje (opcional) que contiene datos 13
API REST
REQUESTs ⪼ Ejemplos
GET /users/23 HTTP/1.1
Accept: text/html, application/json

POST /users HTTP/1.1


Accept: application/json
Body: {“user”: {
“name”: “Arya Stark”
“email”: “nobody@[Link]”
}}
14
API REST
RESPONSEs

Por cada REQUEST que se recibe se debe retornar un


RESPONSE con la información necesaria para
describir lo que ocurrió:
▰ HTTP Code acorde a lo sucedido con la ejecución
▰ Protocolo de respuesta
▰ Media-data de la respuesta
▰ Cuerpo de mensaje (opcional) con la información
requerida
15
API REST
RESPONSEs ⪼ Ejemplo (I)

GET /users/42 HTTP/1.1


Accept: text/html, application/json

HTTP/1.1 200 (OK)


Content-Type: application/json
Body: {“user”: {
“name”:“Hodor”
“email”: “hodor@[Link]”
}}
16
API REST
RESPONSEs ⪼ Ejemplo (II)

POST /users HTTP/1.1


Body: {“user”: {
“name”: “Arya Stark”
“email”: “nobody@[Link]”
}}

201 (CREATED)
Content-type: application/json

17
API REST
CRUD

El modelo debe poder crear, leer, actualizar y


eliminar recursos (Create, Read, Update, Delete). A
esto se le llama CRUD. Es la funcionalidad mínima que
se espera de un modelo.
El paradigma CRUD es muy común en la construcción
de aplicaciones web porque proporciona un modelo
mental sobre los recursos, de manera que sean
completos y utilizables.

18
API REST
CRUD ⪼ Estándares ⪼ Definición

Los CRUD se suelen arman respetando un estándar de


URIs y métodos:
▰ Crear POST /users
▰ Leer (todos) GET /users
▰ Leer (uno) GET /users/:id
▰ Actualizar PUT /users/:id
▰ Eliminar DELETE /users/:id

19
API REST
CRUD ⪼ Estándares ⪼ Respuesta

▰ POST /users ▰ PUT /users/:id


▻ 201 (Created) ▻ 200 (OK)
▻ {“user”: Nuevo Usuario} ▻ {“user”: Usuario Actualiz.}
▰ GET /users
▻ 200 (OK)
▻ {“users”:[Listado]}
▰ DELETE /users/:id
▻ 204 (No Content)
▰ GET /users/:id
▻ Body: Vacío
▻ 200 (OK)
▻ {“user”: Usuario Pedido}

20
API REST
CRUD ⪼ Estándares ⪼ Errores

▰ POST /users ▰ PUT /users/:id


▻ 404 (Not Found) ▻ 404 (Not Found)
▻ 409 (Conflict) ▻ 409 (Conflict)
▰ GET /users/:id ▰ DELETE /users/:id
▻ 404 (Not Found) ▻ 404 (Not Found)
▻ 405 (Method Not Allowed)

21
API REST
Errores Genéricos

▰ 401 (Unauthorized)

▰ 403 (Forbidden)

▰ 405 (Method Not Allowed)

▰ 500 (Internal Server Error)

22
API REST
Parámetros de consulta

Muchas veces es necesario agregar información a la


solicitud. Puede ser para filtrar una búsqueda o bien
para que la respuesta incluya más o menos
información.
Para estos casos se suelen utilizar parámetros de
consulta (query parameters). Se escriben como un par
clave=valor separados por &.

23
API REST
Parámetros de consulta Ejemplos

▰ GET /users?mail=gmail&born_in=1990
▰ GET /users/123?include=orders
▰ GET /users?page=3&per_page=25

No es buena práctica incluir parámetros en otros


métodos que no sean de consulta (GET). Para enviar
información (POST, PUT) se debe usar el body.

24
25
LINKS ÚTILES

▰ [Link]
▰ [Link]
▰ [Link]
▰ [Link]
▰ [Link]
▰ [Link]
▰ [Link]
26
¿Preguntas?
27

También podría gustarte