Skip to content
Rubén de Celis Hernández edited this page Oct 7, 2020 · 3 revisions

Uso de Linkero

Se recomienda la instalación de la librería requests de python para ello ejecutamos:

pip install requests

Si queremos usar los distintos métodos, bastará con hacer los imports correspondientes:

from requests import post
from requests import get
from requests import put
from requests import patch
from requests import delete

Crear un usuario

Es necesario crear un usuario para poder acceder a las APIs

post ('http://localhost:5000/api/users', data={"username":"ruter106","password":"ruter106","secret":"admin"})

Se ejecuta una llamada post a la uri api/users/ pasando los datos del username y password junto con el secret que actualmente es admin.

Obtención de Token de Acceso

El uso de token securiza el acceso ocultando el username y el password del usuario que accede.

get ('http://localhost:5000/api/token', auth=("ruter106", "ruter106")).json()

Usando nuestras credenciales de acceso obtendremos la siguiente respuesta en formato json indicándonos el token y la duración del mismo en segundos:

{
  "duration": 600,
  "token": "eyJpYXQiOjE0NzE0MzY1NTMsImFsZyI6IkhTMjU2IiwiZXhwIjoxNDcxNDM3MTUzfQ.eyJpZCI6MX0.bu7YvRxsqCRv_1ly9KEd5kJq3BdgmJ5XsCJo0bw2e9I"
}

A partir de este momento podremos renovar el token haciendo una petición usando el token mientras tenga validez:

get ('http://localhost:5000/api/token', auth=("eyJpYXQiOjE0NzE0MzY1NTMsImFsZyI6IkhTMjU2IiwiZXhwIjoxNDcxNDM3MTUzfQ.eyJpZCI6MX0.bu7YvRxsqCRv_1ly9KEd5kJq3BdgmJ5XsCJo0bw2e9I", "")).json()

Acceso a las APIs

La forma de pedir un dato a una API pasa por incorporar nuestras credenciales de acceso (username y password)

get ('http://localhost:5000/todos', auth=("ruter106", "ruter106")).json()

No obstante si vamos a realizar varias peticiones o se trata de un servicio conectado permanentemente a la API, es recomendable el uso de tokens para la autenticación.

get ('http://localhost:5000/todos', auth=("eyJpYXQiOjE0NzE0MzY1NTMsImFsZyI6IkhTMjU2IiwiZXhwIjoxNDcxNDM3MTUzfQ.eyJpZCI6MX0.bu7YvRxsqCRv_1ly9KEd5kJq3BdgmJ5XsCJo0bw2e9I", "")).json()

Al ser el token un elemento que caduca, superado tiempo de duración del mismo, el robo de un token supone un menor riesgo al no conseguirse las credenciales de acceso que originan el token. Al mimo tiempo también supone una ventana de acceso limitada al tiempo de vida del token, con lo que la vulneración del servicio por obtención de un token, se restringe a periodos de tiempo que coinciden con la vida del token.

Códigos de respuesta

Al tratarse de una API securizada se usan los códigos de respuesta estandarizados que pueden ser consultados en la sección de Diseño de la Wiki.

Para obtener el código de respuesta usando la librería request basta con no parsear la respuesta a un json:

get ('http://localhost:5000/todos', auth=("ruter106", "ruter106"))

Los errores 401 siempre implican accesos no autorizados en la API

Clone this wiki locally