Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/licetlemus/dev015-fleet-management-api

Este proyecto consiste en desarrollar una API REST para gestionar y consultar las ubicaciones de casi 10 mil taxis en Beijing, China. El objetivo es explorar soluciones eficientes para almacenar y procesar volúmenes de datos, asegurando una experiencia de usuario óptima.
https://github.com/licetlemus/dev015-fleet-management-api

api api-rest flask jwt-authentication jwt-token pip posgtresql python sql sqlalchemy

Last synced: 17 days ago
JSON representation

Este proyecto consiste en desarrollar una API REST para gestionar y consultar las ubicaciones de casi 10 mil taxis en Beijing, China. El objetivo es explorar soluciones eficientes para almacenar y procesar volúmenes de datos, asegurando una experiencia de usuario óptima.

Awesome Lists containing this project

README

        

# Fleet Management API

## Índice

* [1. Introducción](#1-introducción)
* [2. Tecnologías](#2-tecnologías)
* [3. Uso](#3-uso)
* [4. Autorización](#4-autorización)
* [5. Manejo de errores](#5-manejo-de-errores)

***

## 1. Introducción

Esta API REST permite gestionar los datos de una flota de taxis, proporcionando funcionalidades como la carga masiva de datos históricos de GPS, consulta de ubicaciones en tiempo real y administración de usuarios. También ofrece autenticación segura mediante JWT para proteger todos los endpoints.

## 2. Tecnologías

- **Python**: Lenguaje de programación utilizado.
- **Flask**: Framework para el desarrollo de la API.
- **SQLAlchemy**: ORM para gestionar la base de datos.
- **Flask-JWT-Extended**: Manejo de autenticación y autorización con tokens JWT.
- **PostgreSQL**: Base de datos utilizada para almacenar los datos de los taxis y usuarios.

## 3. Uso

A continuación se describen los principales endpoints disponibles:

- **GET /taxis**: Obtiene el listado de taxis. Soporta los parámetros `plate`, `page` y `limit`. Ejemplo: `/taxis?limit=3&page=2`
- **GET /trajectories**: Obtiene el listado de trayectorias, teniendo en cuenta el parámetro `taxiId` y `date`. Ejemplo: `/trajectories?taxiId=6418&date=02-02-2008`
- **GET /trajectories/latest**: Obtiene la última trayectoria de cada taxi. Ejemplo: `trajectories/latest`
- **POST /users**: Crea nuevos usuarios
`{
"name": "user2",
"email": "[email protected]",
"password": "test2"
} `
- **GET /users**: Obtiene el listado de usuarios. Soporta los parámetros `page` y `limit`
- **PATCH /users/**: Actualiza la información de un usuario basado en el ID
`{
"name": "Grace Hopper update"
}`
- **DELETE /users/**: Elimina un usuario

## 4. Autorización

Para acceder a los endpoints protegidos, se requiere un token JWT. El token debe incluirse en el encabezado de las solicitudes con el formato `Authorization: Bearer `

## 5. Manejo de errores

- **401 Unauthorized**: El token JWT es inválido o no está presente en el encabezado de la solicitud.
- **404 Not Found**: El recurso solicitado no se encuentra. Se debe verificar que el endpoint y los parámetros sean correctos.
- **400 Bad Request**: La solicitud tiene errores. Es necesario verificar que todos los parámetros y datos sean correctos.
- **500 Internal Server Error**: Error en el servidor.

Gracias por visitar este proyecto. Se espera que la API sea útil y que quienes trabajen con ella disfruten del proceso