Skip to content

bvaj7x/backend

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Mini Test: Spring Boot Microservices

This project has 2 services:

  • auth-api (port 8080): register/login + protected /api/process
  • data-api (port 8081): internal transform endpoint /api/transform

auth-api stores users and processing logs in Postgres.

1) Project structure

  • auth-api/
  • data-api/
  • docker-compose.yml

2) Run locally with Docker

From project root:

docker compose up -d --build
docker compose ps

Optional logs:

docker compose logs -f auth-api
docker compose logs -f data-api

3) Build with Maven Wrapper

If you want to build without Docker first:

./auth-api/mvnw -f auth-api/pom.xml clean package -DskipTests
./data-api/mvnw -f data-api/pom.xml clean package -DskipTests

On Windows PowerShell:

.\auth-api\mvnw.cmd -f auth-api\pom.xml clean package -DskipTests
.\data-api\mvnw.cmd -f data-api\pom.xml clean package -DskipTests

4) API test flow

Register

curl -X POST http://localhost:8080/api/auth/register \
  -H "Content-Type: application/json" \
  -d '{"email":"a@a.com","password":"pass1234"}'

Expected: HTTP 201.

Login

curl -X POST http://localhost:8080/api/auth/login \
  -H "Content-Type: application/json" \
  -d '{"email":"a@a.com","password":"pass1234"}'

Expected response:

{"token":"<jwt>"}

Call protected process endpoint

curl -X POST http://localhost:8080/api/process \
  -H "Authorization: Bearer <jwt>" \
  -H "Content-Type: application/json" \
  -d '{"text":"hello"}'

Expected:

{"result":"OLLEH"}

And new row in processing_log.

Check data-api security

Without X-Internal-Token (or wrong token), this should return 403:

curl -X POST http://localhost:8081/api/transform \
  -H "Content-Type: application/json" \
  -d '{"text":"hello"}'

5) Environment variables

auth-api uses:

  • POSTGRES_URL
  • POSTGRES_USER
  • POSTGRES_PASSWORD
  • JWT_SECRET
  • INTERNAL_TOKEN
  • DATA_API_BASE_URL

data-api uses:

  • INTERNAL_TOKEN

Default values are also present in service application.properties for local runs.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors