Este é um exemplo de aplicação Node.js que utiliza TypeORM e PostgreSQL.
Antes de começar, você precisará ter as seguintes ferramentas instaladas no seu sistema:
- Node.js (>=16.x)
- Npm (>=8.x)
- Docker (>=20.x)
Clone este repositório para o seu ambiente local:
git clone https://github.com/JPedroCh/API-RESTful.git
cd API-RESTful
Instale as dependências do projeto usando o Yarn:
npm install
Configure o banco de dados PostgreSQL de maneira que tenha um endereço url acessível. Crie um arquivo .env
na raiz do projeto com as seguintes variáveis de ambiente:
DB_URL=
DB_PORT=
API_PORT=
OBS: caso a DB_PORT não seja fornecida, será utilizada a porta 5432 do banco de dados e caso a API_PORT não seja fornecida, será utilizada a porta 4001 para a API.
Execute o seguinte comando e serão executados todos os testes implementados:
npm test
Inicie a aplicação em ambiente de desenvolvimento:
npm start
A aplicação estará disponível em http://localhost:<API_PORT>
.
Construa a imagem Docker da aplicação:
docker build -t <nome_da_imagem> .
Inicie o contêineres usando o seguinte comando:
docker run -p <API_PORT>:<API_PORT> <nome_da_imagem>
A aplicação estará disponível em http://localhost:<API_PORT>
.
http://localhost:<API_PORT>
-
POST /create - Cria uma nova notícia
{ "titulo": "Nova Notícia", "descricao": "Descrição da nova notícia" }
-
GET /list - Lista todas as notícias
OBS: Não precisa de parâmetros
-
PUT /update - Atualiza uma notícia
{ "id": 2, "titulo": "Notícia Atualizada", "descricao": "Descrição da nova notícia" }
-
DELETE /delete - Remove uma notícia específica
{ "id": 2 }
Se você deseja contribuir para este projeto, por favor siga estas etapas:
- Fork o repositório
- Crie uma nova branch (
git checkout -b feature/nova-funcionalidade
) - Commit suas alterações (
git commit -m 'Adiciona nova funcionalidade'
) - Push para a branch (
git push origin feature/nova-funcionalidade
) - Abra um Pull Request para a branch
develop
my-app/
├── src/
│ ├── api/
│ ├──adapters/
│ ├── controllers/
│ ├── repositories/
│ ├── services/
│ ├── database/
│ ├──entities/
│ ├──config.ts
│ ├── helpers/
│ ├──errors.ts
│ ├──http.ts
│ ├── index.ts
│ └── routes.ts
├── .env
├── .gitignore
├── Dockerfile
├── package.json
├── package-lock.json
├── README.md
└── tsconfig.json
src/
- Diretório principal onde está o código fonte da aplicação.src/api/
- Diretório onde está o código relacionado a API e suas regras de negóciosrc/api/adapters/
- Onde estão as funções responsáveis por converter/adaptar funções de bibliotecas para a necessidade do projetosrc/api/controllers/
- Onde estão as funções responsáveis por receber a requisição e direcionar para o serviço correto para que seja processada a requisição e entregue a resposta para o clientesrc/api/repositories/
- Onde estão as funções responsáveis pela montagem das Queriessrc/api/services/
- Onde estão as funções de serviço com as regras de negóciosrc/database/
- Diretório onde está o código relacionado ao banco de dadossrc/database/entities/
- Onde estão as definições das entidades do banco de dadossrc/database/config.ts
- Arquivo de configuração do banco de dadossrc/helpers/
- Onde estão arquivos com definições de classes que podem ser utilizadas em diversas partes do código, por exemplo: mensagens de errosrc/index.ts
- Configuração geral do servidorsrc/routes
- Apresenta todas as rotas do Express
Este projeto está licenciado sob a MIT License - veja o arquivo LICENSE para mais detalhes.