# README
People Service API
Overview
This service processes API requests for personal information, enriches the response with probable age, gender, and nationality using external APIs, and stores the data in a PostgreSQL database. It exposes various RESTful methods for managing people records.
Project Summary
The People Service API is designed to provide a seamless interface for handling personal information. It utilizes external APIs to enhance the data with details such as age, gender, and nationality. The enriched data is stored in a PostgreSQL database, and the service offers RESTful methods for CRUD operations on people records. The project emphasizes clean code, efficient filtering, and pagination, along with comprehensive logging for monitoring and debugging.
REST Methods
-
Get People
- Endpoint:
/people
- Method:
GET
- Retrieves data with filters and pagination.
- Endpoint:
-
Get Person by ID
- Endpoint:
/people/{id}
- Method:
GET
- Retrieves information for a specific person.
- Endpoint:
-
Create Person
- Endpoint:
/people
- Method:
POST
- Adds a new person to the database.
- Endpoint:
-
Update Person
- Endpoint:
/people/{id}
- Method:
PUT
- Modifies information for a specific person.
- Endpoint:
-
Delete Person
- Endpoint:
/people/{id}
- Method:
DELETE
- Removes a person from the database.
- Endpoint:
Enrichment and Database
- Age Enrichment: Agify API
- Gender Enrichment: Genderize API
- Nationality Enrichment: Nationalize API
Enriched data is stored in a PostgreSQL database, and the database structure is created through migrations.
Logging
The code is extensively covered with debug and info logs to facilitate troubleshooting and monitoring.
Configuration
Sensitive configuration data is stored in a .env
file.