Skip to content

Node.js Express REST API that serves territory data of the Dominican Republic.

Notifications You must be signed in to change notification settings

andresestrella/api-territorio-rd

Repository files navigation

asignacion:

Node.js REST API that serves territory data of the Dominican Republic.
The server stores and fetches data from a Postgres database and implements user authentication.

Technical assessment for OGTIC.
Implement the consumption API:
https://api-territorial.apps.madlab.com.do/api/documentation#/Territorial

stack

Node Express, PostgreSQL, Docker-compose JWT, encripción, uuid...

notas:

vi que los requests podian retornar errores con mensaje "Unauthorized" por lo que asumi que la API necesitaba implementar algun tipo de mecanismo de autorizacion. Lo que hice fue implementar funciones bien basicas para enviar al ciente JWTs y luego validarlos. Tambien agregue dos endpoints para agregar y consultar usuarios a la base de datos. las claves de los usuarios son encriptadas

No usé ningun ORM ya que es la primera API que escribo en Node y quise mantener las cosas sencillas. Quise hacerlo en Node porque la semana pasada habia empezado a hacer un tutorial de APIs con Express y aproveche este assessment para practicar.

ejemplo de uso:

  • correr docker-compose build y luego docker-compose up (hay que tener Docker y docker-compose instalado)
  • POST a /api/users con body {"username":"andres", "password":"1234"}
  • POST a /api/auth con body { username:"andres", password:"1234"} para recibir un JWT que se debe poner en el header de las siguientes peticiones. Agregar al header el token recibido con el siguiente formato:
Key: Authorization
Value: Bearer <token here>
  • Los endpoints /api/paises y /api/paises/1/show pueden ser accedidos sin necesidad de validar un token.

para correr el build de produccion que no incluye los dev dependencies: docker-compose -f docker-compose.yml -f docker-compose.prod.yml up -d si no tiene docker puede correr npm install > npm run dev , correr una instancia de postgres localmente y ejecutar manualmente el script que inicializa la base de datos ubicado en `./db_queries/

About

Node.js Express REST API that serves territory data of the Dominican Republic.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published