Sign inSign up

javaytinto/apicompost

By javaytinto

Updated over 1 year ago

Servidor web Express,hecho en typescript y diseñado para osucompost. Construida con Mikro ORM

Image
0

10K+

javaytinto/apicompost repository overview

CompostRestAPI

API REST desarrollada en TypeScript para la gestión de recogida de residuos orgánicos. Utiliza MikroORM como ORM y Express como framework web.

Características

  • API REST completa para gestión de propietarios, viviendas y contenedores
  • Implementada con TypeScript y Express
  • Usa MikroORM para la persistencia de datos
  • Base de datos MariaDB
Variables de Entorno

La aplicación requiere las siguientes variables de entorno:

  • DB_HOST: Hostname de la base de datos (por defecto: "mariadb")
  • DB_USER: Usuario de la base de datos (por defecto: "compost")
  • DB_PASSWORD: Contraseña de la base de datos
  • DB_NAME: Nombre de la base de datos (por defecto: "compost")
  • DB_PORT: Puerto de la base de datos (por defecto: 3306)
  • SERVER_PORT: Puerto donde se ejecutará la API (por defecto: 3000)
  • DEBUG_MODE: Modo debug para desarrollo con datos de prueba (0/1)

Uso con Docker Compose

Docker compose es la manera más sencilla de ejecutar la API

services:
  app:
    image: compostrestapi:1.0
    environment:
      - DB_HOST=mariadb
      - DB_USER=compost
      - DB_PASSWORD=password
      - DB_NAME=compost
      - DB_PORT=3306
      - SERVER_PORT=3000
    ports:
      - "3000:3000"
    depends_on:
      - mariadb

  mariadb:
    image: mariadb:latest
    environment:
      - MARIADB_ROOT_PASSWORD=root_secure_password
      - MARIADB_DATABASE=compost
      - MARIADB_USER=compost
      - MARIADB_PASSWORD=password
    volumes:
      - mariadb_data:/var/lib/mysql

volumes:
  mariadb_data:

Uso con Docker Run

  • Creamos la red en la que vamos a contener la base de datos y la API docker network create compost-net
  • Creamos un contenedor mariadb en la red creada en el paso 1
docker run -d \
  --name mariadb \
  --network compost-net \
  -e MARIADB_ROOT_PASSWORD=root_secure_password \
  -e MARIADB_DATABASE=compost \
  -e MARIADB_USER=compost \
  -e MARIADB_PASSWORD=password \
  -v mariadb_data:/var/lib/mysql \
  mariadb:latest
  • Creamos el contenedor de la API
docker run -d \
  --name compostapi \
  --network compost-net \
  -p 3000:3000 \
  -e DB_HOST=mariadb \
  -e DB_USER=compost \
  -e DB_PASSWORD=password \
  -e DB_NAME=compost \
  -e DB_PORT=3306 \
  -e SERVER_PORT=3000 \
  -e DEBUG_MODE=0 \
  javaytinto/apicompost:latest

Inicio Rápido

  1. Clona el repositorio
  2. Ejecuta docker-compose up
  3. La API estará disponible en http://<tu-ip>:<tu-puerto>/api/v1

Endpoints Disponibles

  • GET /api/v1: Estado de la API
  • GET /api/v1/get/propietarios/:dni: Obtener propietario por DNI
  • POST /api/v1/post/propietarios: Crear nuevo propietario
  • GET /api/v1/get/viviendas/:direccion: Obtener vivienda por dirección
  • POST /api/v1/post/viviendas: Crear nueva vivienda GET /api/v1/get/contenedores/:vivienda: Obtener contenedores por vivienda POST /api/v1/post/contenedores: Crear nuevo contenedor

Tag summary

Content type

Image

Digest

sha256:1f89d33b7

Size

439.3 MB

Last updated

over 1 year ago

docker pull javaytinto/apicompost