-
Notifications
You must be signed in to change notification settings - Fork 3
uso
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
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
.
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()
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.
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