Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/daviteixeira-dev/api-restful-com-adonisjs

Framework que utiliza o padrão MVC, facilitando nossa vida na hora de criar aplicação com um CLI bem completo, repleto de comandos para criação de diversas estruturas como: Models, Controllers e Migrations.
https://github.com/daviteixeira-dev/api-restful-com-adonisjs

adonis-lucid adonisjs eslint javascript mvc rest-api restful-api sqlite3 typescript uuid yarn

Last synced: about 6 hours ago
JSON representation

Framework que utiliza o padrão MVC, facilitando nossa vida na hora de criar aplicação com um CLI bem completo, repleto de comandos para criação de diversas estruturas como: Models, Controllers e Migrations.

Awesome Lists containing this project

README

        



Logo

API RESTful com AdonisJS


🧩 Introdução    |   
🚀 Resultados   |   
💻 Back-end   |   
🧪 Dependências  |    
📖 Scripts      


## 🧩 Introdução

### É um framework que está sendo muito utilizado para construir APIs como também softwares monolitos, que tem o front-end junto ao backend, deixando assim muitas funcionalidades prontas, escrevendo menos códigos e tendo resultados mais rápidos para o desenvolvedor.


  • Um framework Node.js, para desenvolver aplicações web;

  • Facilita muito a programação de apps, possui uma estrutura similar ao Laravel;

  • Utilizar arquitetura MVC;

  • Possui vários recursos, como: CLI, File upload simples, validações e etc;

  • Há também outros pacotes externos para completar o ecossistema, como ORM, Autenticação, Autorização.


## 🚀 Resultados

### O resultado desse projeto é a criação de uma API RESTful onde temos um CRUD e relacionamento entre entidades, aprendendo a como utilizar o framework. Os testes foram feitos via Postman, para garantir o correto funcionamento da API.


## 💻 Back-end

### Instalação e inicialização da API

### ```COMANDOS```

#### Para instalar as dependências
```
yarn install
```

#### Para gerar a variável de ambiente APP_KEY
```
node ace generate:key
```
Depois de gerar o valor da key, procure por um arquivo chamado ".env.example", faça uma copia desse arquivo e o renomeie para
".env", em seguida copie o valor gerado no terminal da nova key e subistitua o valor de APP_KEY para o novo valor.

#### Para rodar a API
```
node ace serve --watch
```
Após isso, o projeto vem com as migrações do banco de dados porem ele não vem com as tabelas, precisando assim crialas com o seguinte comando:

```
node ace migration:run
```

### Moments

### 🎯 Pegar um momento atravez do ID

### ```GET```
```URL
http://localhost:3333/api/moments/1
```

### 🎯 Pegar todos os momentos

### ```GET ALL```
```URL
http://localhost:3333/api/moments
```

### 🎯 Registrar um momento no banco de dados

### ```POST```
```URL
http://localhost:3333/api/moments
```

```Body
from-data

key (text): title - value: Algum valor
key (text): description - value: Alguma descrição
key (file): image - value: Alguma imagem do seu pc
```

### 🎯 Atualizar um momento no banco de dados

### ```PATCH```
```URL
http://localhost:3333/api/moments/1
```

```Body
from-data

key (text): title - value: Atualizando Momento
key (text): description - value: Meu momento atualizado
key (file): image - value: Alguma imagem do seu pc
```
### Comments

### 🎯 Add um comentário

###```POST```
```URL
http://localhost:3333/api/moments/1/comments
```

```JSON

{
"username": "Seu Nome",
"text": "Algum outro comentário"
}
```


## 🧪 Dependências
> Requisitos para rotar o codigo...


## 📖 Scripts

```JSON
"scripts": {
"dev": "node ace serve --watch",
"build": "node ace build --production",
"start": "node server.js",
"test": "node ace test",
"lint": "eslint . --ext=.ts",
"format": "prettier --write ."
}

```
### 📖 Dependencies

```JSON
"dependencies": {
"@adonisjs/core": "^5.8.0",
"@adonisjs/lucid": "^18.3.0",
"@adonisjs/repl": "^3.1.0",
"luxon": "^3.3.0",
"proxy-addr": "^2.0.7",
"reflect-metadata": "^0.1.13",
"source-map-support": "^0.5.21",
"sqlite3": "^5.1.6",
"uuid": "^9.0.0"
}

```

### 📖 devDependencies

```JSON
"devDependencies": {
"@adonisjs/assembler": "^5.9.5",
"@japa/preset-adonis": "^1.2.0",
"@japa/runner": "^2.5.1",
"@types/proxy-addr": "^2.0.0",
"@types/source-map-support": "^0.5.6",
"adonis-preset-ts": "^2.1.0",
"eslint": "^8.36.0",
"eslint-config-prettier": "^8.8.0",
"eslint-plugin-adonis": "^2.1.1",
"eslint-plugin-prettier": "^4.2.1",
"pino-pretty": "^10.0.0",
"prettier": "^2.8.6",
"typescript": "~4.6",
"youch": "^3.2.3",
"youch-terminal": "^2.2.0"
}

```

Feito com ❤️ por Davi Teixeira