Saltar a contenido

Introducción

Cada módulo desarrollado intenta ser lo mas fiel a la guía de estilo de Python y a la documentación oficial, y en lo posible estar escrito en Python sin adiciones, librerías o dependencias que impacten el rendimiento del BackEnd, salvo aquellas que se utilizan en la plataforma subyacente (Ej: fly.io, Cloud Run, GAE, etc.).

Url base y versiones

El Api de Callisto define la url principal del BackEnd de Servicios como sigue:

Definición

https://awesome-base-url.domain.com
/api

Importante

  • De aquí en adelante se define la url del Api de Callisto como {{URI_APP}}, refiendose a la url completa(url base y versión), por lo que par consumir un servicio sería de la siguiente manera:

    {{URI_APP}}/cities

    para refererise a https://awesome-base-url.domain.com/api/cities

Cabeceras disponibles

Para tener en cuenta

  • Las cabeceras detalladas a continuación son obligatorias en cada servicio, a menos que se indique lo contrario en las notas respectivas de cada uno de ellos.

Las cabeceras (en inglés headers) HTTP permiten al cliente y al servidor enviar información adicional junto a una petición o respuesta.

Una cabecera de petición esta compuesta por su nombre (no sensible a las mayusculas) seguido de dos puntos ':', y a continuación su valor (sin saltos de línea).

Los espacios en blanco a la izquierda del valor son ignorados.

El Api de Callisto solicita (con pocas excepciones) para todos los servicios, las siguientes cabeceras:

Definición

1
2
3
4
5
Content-Type: application/json

Authorization: Bearer BEARER_TOKEN

Accept-Encoding: gzip, deflate

Tipos de Tokens

Importante

  • El BEARER_TOKEN es el Api Key/Token que se utiliza para consumir servicios y se obtiene cuando se inicia sesión.

  • El Api token es el que se concede una vez se crea una compañía, y expira en el momento que vence el contrato.

  • La compañia puede crear otros tokens para su uso, pero estarán sujetos, a la fecha de expiración del contrato.

El Api de Callisto maneja 3 tipos de Tokens:

  • Token de tipo Api, para uso en conexiones externas e integraciones.
  • Token de Sesión, para uso en aplicaciones moviles, la plataforma web, etc.
  • Token de Refresco, para refrescar únicamente a tokens de sesión, etc.

Para tener en cuenta

Un token de sesión tiene una validez de 6 horas.

Posibles errores

Si no se envían las cabeceras listadas arriba, el BackEnd de Servicios, devuelve los siguientes errores:

401 Unauthorized

{
    "status": 401,
    "message": "You are not authorized to access the requested resource.",
    "error": {
        "error_code": 713,
        "details": {
            "message": "Access Denied. Invalid Headers: 'content-type'"
        }
    }
}
{
    "status": 401,
    "message": "You are not authorized to access the requested resource.",
    "error": {
        "error_code": 714,
        "details": {
            "message": "Access Denied. Invalid Headers: 'Authorization'"
        }
    }
}
{
    "status": 401,
    "message": "You are not authorized to access the requested resource.",
    "error": {
        "error_code": 717,
        "details": {
            "message": "Access Denied. Invalid Headers: 'accept-encoding'"
        }
    }
}