https://github.com/cr-israel/ej-site
API made in TypeScript with Fastify
https://github.com/cr-israel/ej-site
api api-rest docker docker-compose fastify http http-client http-requests http-server nodejs postgresql postgresql-database prisma prisma-orm typescript zod zod-validation
Last synced: 3 months ago
JSON representation
API made in TypeScript with Fastify
- Host: GitHub
- URL: https://github.com/cr-israel/ej-site
- Owner: Cr-Israel
- Created: 2024-04-01T13:20:40.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2024-04-29T18:06:47.000Z (about 2 years ago)
- Last Synced: 2025-07-21T10:34:31.220Z (about 1 year ago)
- Topics: api, api-rest, docker, docker-compose, fastify, http, http-client, http-requests, http-server, nodejs, postgresql, postgresql-database, prisma, prisma-orm, typescript, zod, zod-validation
- Language: TypeScript
- Homepage:
- Size: 329 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# API
O objetivo desta API é servir as requisições do Front-End, com as ações necessárias.
O Front-End desta aplicação é um site de uma empresa junior.
## Stack utilizada
**Back-end:** TypeScript, Fastify, Zod, Prisma, PostgreSQL e Docker.
## Funcionalidades
- Criação de estudante;
- Consulta de todos os estudantes cadastrados;
- Consulta de um único estudante pelo ID.
## Documentação da API
#### Retorna o ID do student criado
```http
POST /create
```
| Parâmetro | Tipo | Descrição |
| :---------- | :--------- | :---------------------------------- |
| | `string` | **Obrigatório**. As informações necessárias para cadastrar um student |
#### Retorna um student determinado pelo ID
```http
GET /get-student/${id}
```
| Parâmetro | Tipo | Descrição |
| :---------- | :--------- | :------------------------------------------ |
| `id` | `string` | **Obrigatório**. O ID do student que você quer |
#### Retorna todos os students cadastrados
```http
GET /get-all
```
| Parâmetro | Tipo | Descrição |
| :---------- | :--------- | :------------------------------------------ |
| | `string` | **Obrigatório**. Retorna as informações de todos os students. |
## Aprendizados
Foi a primeira aplicação que utilizei o Prisma e o Zod. O Prisma é simplesmente incrível! A integração que ele tem o TypeScript é supreedente.
Com o Zod, foi a mesma coisa, a integração dele com o TypeScript é incrível! A forma como ele interage torna mais fácil o desenvolvimento.
Podemos criar um schema do corpo da requisição, dizendo como queremos que os dados sejam recebidos.
## Instalação
Instale api_fastify com npm ou yarn
```bash
git clone git@github.com:https://github.com/Cr-Israel/EJ-site
npm/yarn install
npm run dev || yarn dev
docker compose up -d
```
## Variáveis de Ambiente
Para rodar esse projeto, você vai precisar adicionar as seguintes variáveis de ambiente no seu .env
`DATABASE_URL`
Com as suas devidas informações do banco de dados.
## Licença
[MIT](https://choosealicense.com/licenses/mit/)
## Autores
- [@Cr-Israel](https://www.github.com/Cr-Israel)
## Feedback
Feedbacks são sempre bem-vindos.
Se você tiver algum feedback, por favor me deixe saber: carlosisrael08@hotmail.com