APIs
En la web
¿Qué es una APi?
- Interfaz de programación de aplicaciones
- Representa la capacidad de comunicación entre componentes de software
- Y permiten la expansión de nuestros propios sistemas
En otras palabras
Una API es al programador lo que la GUI al usuario.
Es vital, al momento de abstraer partes de un software.
¿Por qué necesito una API?
- Fomenta el paradigma SOA
- Añade una capa de seguridad a nuestros datos y sistemas
- Permite la escalabilidad de nuestros sistemas
- Añade capas de abstracción, etc.
APIs en la web
Son publicadas por los constructores de software para permitir acceso a características de bajo nivel o propietarias.
Son utilizadas por los programadores para construir sus aplicaciones sin necesidad de volver a programar funciones ya hechas por otros, reutilizando código que se sabe que está probado y que funciona correctamente.
¿Qué necesita una API?
- Un formato de salida
- Un sistema de autenticación/autorización
- Un conjunto de recursos
- Una conexión a una base de datos (NoSQL a veces)
XML
HTML
YAML...y otros lenguajes de marcado
JSON, CSON y otros formatos
- Menos es mas
- Es muy fácil definir objetos
- Ocupa poco espacio
[
{
"Nombre":"Estuardo",
"Apellido":"Díaz",
"NombreCompleto":"Estuardo Díaz",
"Username":"t4r0_o",
"FechaDeAlta":"10-10-2012",
"Seguidores":5,
"Siguiendo":8
},
{
"Nombre":"Juan",
"Apellido":"Perez",
"NombreCompleto":"Juan Perez",
"Username":"Mr.John",
"FechaDeAlta":"8-11-2012",
"Seguidores":1,
"Siguiendo":45
}
]
<?xml version="1.0"?>
<root>
<Usuarios>
<Usuario>
<Nombre>Estuardo</Nombre>
<Apellido>Díaz</Apellido>
<NombreCompleto>Estuardo Díaz</NombreCompleto>
<Username>t4r0_o</Username>
<FechaDeAlta>10-10-2012</FechaDeAlta>
<Seguidores>5</Seguidores>
<Siguiendo>8</Siguiendo>
</Usuario>
<Usuario>
<Nombre>Juan</Nombre>
<Apellido>Perez</Apellido>
<NombreCompleto>Juan Perez</NombreCompleto>
<Username>Mr.Jhon</Username>
<FechaDeAlta>8-11-2012</FechaDeAlta>
<Seguidores>1</Seguidores>
<Siguiendo>45</Siguiendo>
</Usuario>
</Usuarios>
</root>
OAuth
Es un protocolo abierto, propuesto por Blaine Cook y Chris Messina, que permite autorización segura de una API de modo estándar y simple para aplicaciones de escritorio, móviles y web.
Un servicio y el RESTo es historia
REST
Es una técnica de arquitectura software para sistemas hipermedia distribuidos como la World Wide Web.
Se basa en mensajes http
¿Qué necesita REST?
- Un conjunto de recursos de salida
- Un conjunto de URIs
- Un conjunto de métodos bien definidos
Recursos y URIs
class Persona:
id=0
nombre=""
apellido=""
username=""
{
"id":1
"nombre":"juan",
"apellido":"perez",
"username":Mr.Jhon"
}
URL = https://api.misitio.com
URI = /personas
URI individual = /personas/{id}
Recursos y URIs
Métodos
GET /personas
POST /personas
GET /personas/1
PUT /personas/1
DELETE personas/1
Recursos y URIs
Adicionales
GET /personas/?search=juan
GET /personas/1/followers
GET /personas/1/posts?offset=12&limit=20
¿Qué necesito para hacer una API?
- Una base de datos, y preferiblemente un ORM
- Un Framework de desarrollo RESTful
- Un proveedor de servicios de autenticación
- Un servidor http/https
Django + Tastypie
- Django es un framework de desarrollo web
- Tastypie es un framework de APIs RESTful, basado en los modelos de django
- Es muy extensible
APIs
By Estuardo Díaz
APIs
Una presentación general sobre la importancia de las APIs en la web
- 2,644