Skip to content

Endpoints del servidor

JacoboFiano edited this page Jun 12, 2020 · 10 revisions

Este documento lista los diferentes endpoints que forman la api rest del servidor de la app Geoguardian.

Para cada uno se comenta la URL, el método HTTP necesario y los campos para cada llamada.

Estado del API

Estado

  • Descripción: Devuelve un 200 si el servidor es accesible
  • URL: /api/status/
  • Autenticación: No
  • Método : GET

Usuarios

Login
  • Logea a un usuario y recupera su Token
  • URL: /api/user/login
  • Autenticación: No
  • Método : POST
  • Params:
    • username
    • password
Logout
  • Hace logout del usuario indicado (elimina su token)
  • URL: /api/user/logout
  • Autenticación: Si
  • Método : POST
  • Params:
    • username
Register
  • Registra a un usuario comprobando que existe en Firebase
  • URL: /api/user/register
  • Autenticación: No
  • Método : POST
  • Params:
    • username
    • firebase_id
    • email
Route
  • Iniciar una ruta
  • URL: /api/user/route/<geo_id>
  • Autenticación: Yes
  • Método : POST
  • Params:
    • profile

Followers

Obtener followers
  • Recupera todos ids de los seguidores del usuario indicado
  • URL: /api/user/followers
  • Autenticación: Si
  • Método : GET
Añadir o modificar follower
  • Añade o modifica un seguidor al usuario indicado. Por defecto, lo añade como activo.
  • URL: /api/user/followers
  • Autenticación: Si
  • Método : POST
  • Params:
    • token
    • active (opcional)
Eliminar follower
  • Elimina el seguidor del usuario indicado.
  • URL: /api/user/followers/<follower_id>
  • Autenticación: Si
  • Método : DELETE

Followings

Obtener followings
  • Recupera todos ids de los seguidos del usuario indicado
  • URL: /api/user/following
  • Autenticación: Si
  • Método : GET
Añadir o modificar following
  • Añade o modifica un seguido al usuario indicado. Por defecto, lo añade como activo.
  • URL: /api/user/following
  • Autenticación: Si
  • Método : POST
  • Params:
    • token
    • active (opcional)
Modifiación following (mediante ID)
  • Modifica el estado "activo/inactivo" de un following, pasándole su identificador.
  • URL: /api/user/following/<following_id>
  • Autenticación: Si
  • Método : POST
  • Params:
    • active
Eliminar following
  • Elimina el seguido del usuario indicado.
  • URL: /api/user/following/<following_id>
  • Autenticación: Si
  • Método : DELETE

Geofences

Obtener todas las geofences del usuario
  • Devuelve los datos de las geofences del usuario que las solicita
  • URL: /api/user/geofences/
  • Autenticación: Si
  • Método : GET
Crear una geofence
  • Crea una geofence con los datos especificados y devuelve los datos con id correspondiente
  • URL: /api/user/geofence/
  • Autenticación: Si
  • Método : POST
  • Params:
    • name
    • latitude
    • longitude
    • radius
    • geotype
Actualizer una geofence
  • Actualiza una geofence existente
  • URL: /api/user/geofence/
  • Autenticación: Si
  • Método : PUT
  • Params:
    • geoid
    • name
    • latitude
    • longitude
    • radius
    • geotype
Eliminar una geofence
  • Actualiza una geofence existente
  • URL: /api/user/geofence/
  • Autenticación: Si
  • Método : DELETE
  • Params:
    • geoid

Position

Obtener última posicion
  • Recupera la última posicion (latitud/longitud) del usuario
  • URL: /api/user/position
  • Autenticación: Si
  • Método : GET
Actualizar posicion
  • Actualiza la útlima posición del usuario indicado.
  • URL: /api/user/position
  • Autenticación: Si
  • Método : POST
  • Params:
    • altitude
    • longitude

Obtener posición de los followings

  • Recupera la última posición de los seguidos del usuario.
  • URL: /api/user/following/position
  • Autenticación: Si
  • Método : GET

Rutas

Activar ruta
  • Iniciar una ruta
  • URL: /api/user/route/<geo_id>
  • Autenticación: Yes
  • Método : POST
  • Params:
    • profile
Desactivar ruta
  • Desactivar una ruta
  • URL: /api/user/route/<geo_id>
  • Autenticación: Yes
  • Método : DELETE

Sincronización Telegram

Generación del Telegram Token
  • Descripción: Para iniciar la sincronización con Telegram es necesario generar un Token que se asociará a un usuario. Posteriormente, el cliente debe enviar un /start con este Token al Bot de Telegram para que lo reconozca.
  • URL: /api/telegram/token/
  • Autenticación: Sí
  • Método : POST
  • Params: Ninguno
Eliminar el Telegram Token
  • Descripción: Se elimina el telegram token del usuario indicado.
  • URL: /api/telegram/token/
  • Autenticación: Sí
  • Método : DELETE
Gancho del Telegram Bot
  • Descripción: URL únicamente destinada a escuchar las peticiones del Telegram bot que informarán cuando se haya recibido un /start de un usuario, para pasar a su sincronización.
  • URL: /api/telegram/sync/
  • Autenticación: No
  • Método : POST
  • Body: Es necesario pasar un JSON con la información necesaria, el formato es el siguiente (el campo de relevancia es el CHAT_ID):
{
  "message": {
    "message_id": 85,
    "from": {
        "id": <CHAT_ID>, 
        "is_bot": "False", 
        "first_name": <NAME>, 
        "username": <USERNAME>, 
        "language_code": "es"
    },
    "chat": {
        "id": <CHAT_ID>,
        "first_name": <NAME>, 
        "username": <USERNAME>, 
        "type": "private"
    },
    "date": 1587904182,
    "text": "/start <TOKEN>",
    "entities":
        [{
            "offset": 0,
            "length": 6,
            "type": "bot_command"
        }]
  }
}

Sincronización SMS

Generación del SMS Token
  • Descripción: Para iniciar la sincronización con SMS es necesario generar un Token que se asociará a un usuario/número. Se debe enviar el número de teléfono a sincronizar.
  • URL: /api/sms/token/
  • Autenticación: Sí
  • Método : POST
  • Params:
    • number (número teléfono, con prefijo)
Activación del número de teléfono
  • Descripción: Para activar finalmente un número de télefono, el cliente enviará al servidor el token que ha recibido previamente por SMS.
  • URL: /api/sms/sync/
  • Autenticación: Sí
  • Método : POST
  • Params:
    • token

Geobreaks

Informar de geobreak
  • Descripción: Se indica si un usuario ha entrado/salido de alguna de sus geofences y se notifica el movimiento a sus seguidores si corresponde.
  • URL: /api/user/geobreak/
  • Autenticación: Sí
  • Metodo: POST
  • Body: Incluir en el cuerpo de la petición un JSON con siguiente formato:
    • Si action = False: Salida de geofence.
    • Si action = True: Entrada en geofence.
[
    {
        "geofence_id": 3,
        "action": "False"
    },
    {
        "geofence_id": 4,
        "action": "True"
    }
]

Pruebas

Ejemplo con autenticación

  • Descripción: Devuelve un mensaje si la petición ha sido correcta
  • URL: /api/example-auth
  • Autenticación: Si
  • Método : GET

Clone this wiki locally