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

https://github.com/ox18/reto-rimac


https://github.com/ox18/reto-rimac

Last synced: 3 months ago
JSON representation

Awesome Lists containing this project

README

        

# Reto Backend

### Este es un proyecto basado en una arquitectura limpia, usando los handlers nativos pero adaptado clean code

# Features

- Serverless como base del proyecto
- AWS Lambda para despliegue del servicio
- DynamoDB para manejar el cache de la aplicación
- Integración con API SWAPI para obtener datos de personajes de Star Wars
- Integración con API Omdb para obtener información de las peliculas por su titulo y por año de publicación

# Requisitos

- Node.js >= 14.x

- npm >= 6.x

- AWS CLI configurado

- Serverless Framework instalado globalmente

> npm install -g serverless

# Instalación

Clonar el repositorio en tu entorno de trabajo.

Cambiar al directorio del proyecto: cd reto-backend

Instalar las dependencias del proyecto:

> npm install

# Uso

Construir el proyecto

> npm run build

Levantar proyecto localmente

> npm run local

Ejecutar pruebas

> npm run test

Desplegar proyecto

> npm run deploy

## Swagger - Documentación del API
Para visualizar la documentación del API con Swagger:

Ejecuta el siguiente comando para levantar el servidor de documentación:

```bash
node docs/index
```

Abre tu navegador y accede a http://localhost:3000/api-docs para explorar y probar los endpoints del API.

# Referencia del API

## Obtener datos fusionados

> GET /fusionados?peopleId=4

## Almacenar informacion personalizada

> POST /almacenar

## Historial con Paginado

> GET /historial?page=1&limit=3

## Ejemplo de solicitud

### Datos fusionados

> curl --location 'https://el0vyj5gjl.execute-api.us-east-1.amazonaws.com/dev/fusionados'

### Historial

> curl --location 'https://el0vyj5gjl.execute-api.us-east-1.amazonaws.com/dev/historial?page=1&limit=3'

### Almacenar

> curl --location 'https://el0vyj5gjl.execute-api.us-east-1.amazonaws.com/dev/almacenar' \
> --header 'Content-Type: application/json' \
> --data '{
> "name": "Wilmer",
> "lastname": "Delgado"
> }'

## Despliegue

Para desplegar en AWS debemos usar el siguiente comando

> npm run deploy

Una vez hayamos desplegado, ya podemos hacer uso de las BD's localmente

> npm run local