Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/atysonjaime/api_with_node_fastify_prisma_typescript
📒 Bem-vindo ao repositório da API de Agenda de Contatos! Este projeto é uma introdução prática à construção de APIs utilizando Node.js e serve como um ponto de partida para futuras aplicações mais complexas.
https://github.com/atysonjaime/api_with_node_fastify_prisma_typescript
eslint fastify nodejs prettier prisma typescript
Last synced: about 2 months ago
JSON representation
📒 Bem-vindo ao repositório da API de Agenda de Contatos! Este projeto é uma introdução prática à construção de APIs utilizando Node.js e serve como um ponto de partida para futuras aplicações mais complexas.
- Host: GitHub
- URL: https://github.com/atysonjaime/api_with_node_fastify_prisma_typescript
- Owner: AtysonJaime
- License: mit
- Created: 2024-08-21T14:31:35.000Z (4 months ago)
- Default Branch: main
- Last Pushed: 2024-09-27T12:44:58.000Z (3 months ago)
- Last Synced: 2024-10-12T02:42:07.493Z (2 months ago)
- Topics: eslint, fastify, nodejs, prettier, prisma, typescript
- Language: TypeScript
- Homepage:
- Size: 116 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# API de Agenda de Contatos
---
![Portfolio](https://img.shields.io/badge/Atysonjaime-API_Agenda_de_Contatos-%23EA580C)
![MIT License](https://img.shields.io/badge/License-MIT-green.svg)> 📒 Bem-vindo ao repositório da API de Agenda de Contatos! Este projeto é uma introdução prática à construção de APIs utilizando Node.js e serve como um ponto de partida para futuras aplicações mais complexas.
>
> Este repositório foi criado com o objetivo de estudar e aplicar tecnologias essenciais para o desenvolvimento de APIs. Ele demonstra a implementação de operações CRUD (Criar, Ler, Atualizar e Deletar) em uma agenda de contatos.## 📋 Sumário
- API de Agenda de Contatos
- [📋 Sumário](#-sumário)
- [💻 Tecnologias](#-tecnologias)
- [🏗️ Build Setup](#️-build-setup)
- [🚀 Rotas](#-rotas)
- [Users](#users-users)
- [Criação de usuário](#criação-de-usuário)
- [Contacts](#contacts-contacts)
- [Listagem de contatos](#listagem-de-contatos)
- [Criação de contatos](#criação-de-contatos)
- [Edição de contatos](#edição-de-contatos)
- [Exclusão de contatos](#exclusão-de-contatos)
- [📝 Licença](#-licença)---
## 💻 Tecnologias
Esse projeto utiliza as seguinte tecnologias para o desenvolvimento:
| Back-end |
| ------------------------------- |
| [Node](https://nodejs.org/en) |
| [Fastify](https://fastify.dev) |
| [Prisma](https://www.prisma.io) |
| [Eslint](https://eslint.org) |
| [Prettier](https://prettier.io) |## 🏗️ Build Setup
> Primeiramente, abre seu melhor terminal e acesse a pasta ao qual você clonou o repositório.
>
> Ao fazer isso, rode o seguinte comando no terminal:```sh
npm install
```> Após o install, necessário criar a migrate com o seguinte comando no terminal:
```sh
npm prisma migrate dev
```> Para finalizar, rode o seguinte comando no terminal:
```sh
npm run dev
```> Feito isso, em seu terminal você receberá o seguinte feedback:
```sh
Server is running on port 3100
```> Caso deseje visualizar seu banco, rode o seguinte comando:
```sh
npm prisma studio
```## 🚀 Rotas
> A API de Agenda de Contatos possui as seguintes rotas:
### Users: `/users`
#### Criação de usuário
- **Método:** `POST`;
- **Rota:** `/`;
- **Corpo da requisição:**
- `name`: string;
- `email`: string;
- **Resposta:**
- `id`: string;
- `name`: string;
- `email`: string;---
### Contacts: `/contacts`
> [!IMPORTANT]
> Necessário autenticação, para tal, adicionar o campo email no headers da requisição com o email do usuário#### Listagem de contatos
- **Método:** `GET`;
- **Rota:** `/`;
- **Corpo da requisição:**
- `email`: string;
- `phone`: string;
- **Resposta:**
- Listagem com os seguintes campos:
- `id`: string;
- `name`: string;
- `email`: string;
- `phone`: string;
- `userId`: string;#### Criação de contatos
- **Método:** `POST`;
- **Rota:** `/`;
- **Corpo da requisição:**
- `name`: string;
- `email`: string;
- `phone`: string;
- **Resposta:**
- `id`: string;
- `name`: string;
- `email`: string;
- `phone`: string;
- `userId`: string;#### Edição de contatos
- **Método:** `PUT`;
- **Rota:** `/:id_contato`;
- **Corpo da requisição:**
- `name`: string;
- `email`: string;
- `phone`: string;
- **Resposta:**
- `id`: string;
- `name`: string;
- `email`: string;
- `phone`: string;
- `userId`: string;#### Exclusão de contatos
- **Método:** `DELETE`;
- **Rota:** `/:id_contato`;
- **Resposta:**
- boolean;## 💻 Implementações futuras
- [x] Autenticação com JWT;
- [x] Validação para criação de usuário;
- [ ] Validação dos campos para edição e criação de contatos;## 📝 Licença
[MIT License](https://github.com/AtysonJaime/api_with_node_fastify_prisma_typescript/blob/master/LICENSE) © [Atyson Jaime](https://atysonjaime.github.io)