Este é um projeto de Web API desenvolvido em Python, utilizando FastAPI e SQLAlchemy, com base em um modelo relacional.
A API implementa os seguintes verbos (endpoints) para as entidades do modelo:
GET /api/job– Lista todos os cargosPOST /api/job– Cria um novo cargoGET /api/job/{id}– Retorna um cargo pelo ID (com funcionários associados)PUT /api/job/{id}– Atualiza os dados de um cargoDELETE /api/job/{id}– Remove um cargo
GET /api/employee– Lista todos os funcionáriosPOST /api/employee– Cria um novo funcionárioGET /api/employee/{id}– Retorna um funcionário pelo ID (com seu cargo e histórico de cargos)PUT /api/employee/{id}– Atualiza os dados de um funcionárioDELETE /api/employee/{id}– Remove um funcionário
GET /api/jobhistory– Lista todo o histórico de cargosPOST /api/jobhistory– Cria um novo registro de histórico de cargoGET /api/jobhistory/{id}– Retorna um registro de histórico pelo IDPUT /api/jobhistory/{id}– Atualiza os dados de um histórico de cargoDELETE /api/jobhistory/{id}– Remove um registro de histórico de cargo
erDiagram
Job ||--o{ Employee : "has"
Employee ||--o{ JobHistory : "has"
Job {
int JobID PK
nvarchar Name
nvarchar Description
}
Employee {
int EmployeeID PK
int JobID FK
nvarchar Name
datetime Birthday
float Salary "float(10,2)"
nvarchar Department
}
JobHistory {
int JobHistoryID PK
int EmployeeID FK
nvarchar Title
datetime StartDate
datetime EndDate
float Salary "float(10,2)"
nvarchar Job
}
Acesse a API em:
- Swagger: http://localhost:8000/docs
- Redoc: http://localhost:8000/redoc