Commit 8d230970 authored by Vinicius Jaggi's avatar Vinicius Jaggi
Browse files
parents 09131228 dce165b0
Showing with 713 additions and 23 deletions
+713 -23
.idea
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="" vcs="Git" />
</component>
</project>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ChangeListManager">
<list default="true" id="6e127ce5-b7f9-4e9d-94ee-3fd3ff5b2553" name="Changes" comment="" />
<option name="SHOW_DIALOG" value="false" />
<option name="HIGHLIGHT_CONFLICTS" value="true" />
<option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
<option name="LAST_RESOLUTION" value="IGNORE" />
</component>
<component name="Git.Settings">
<option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" />
</component>
<component name="ProjectId" id="2E14DASpV1rDE0sp7rgprKErBW1" />
<component name="ProjectViewState">
<option name="hideEmptyMiddlePackages" value="true" />
<option name="showLibraryContents" value="true" />
</component>
<component name="PropertiesComponent"><![CDATA[{
"keyToString": {
"RunOnceActivity.OpenProjectViewOnStart": "true",
"RunOnceActivity.ShowReadmeOnStart": "true",
"WebServerToolWindowFactoryState": "false",
"last_opened_file_path": "/home/f4nt0/Desktop/GIT/JOINFUT/joinfut-backend"
}
}]]></component>
<component name="SpellCheckerSettings" RuntimeDictionaries="0" Folders="0" CustomDictionaries="0" DefaultDictionary="application-level" UseSingleDictionary="true" transferred="true" />
<component name="TaskManager">
<task active="true" id="Default" summary="Default task">
<changelist id="6e127ce5-b7f9-4e9d-94ee-3fd3ff5b2553" name="Changes" comment="" />
<created>1661749645813</created>
<option name="number" value="Default" />
<option name="presentableId" value="Default" />
<updated>1661749645813</updated>
<workItem from="1661749651630" duration="31000" />
</task>
<servers />
</component>
<component name="TypeScriptGeneratedFilesManager">
<option name="version" value="3" />
</component>
<component name="Vcs.Log.Tabs.Properties">
<option name="TAB_STATES">
<map>
<entry key="MAIN">
<value>
<State />
</value>
</entry>
</map>
</option>
</component>
</project>
\ No newline at end of file
......@@ -17,30 +17,23 @@
---
# Área de informações de programas que precisam ser instalados
# Área de informações sobre instalações
---
## IDE
## Desenvolvimento
* Intellij (Em construção)
* Datagrip (Em construção)
* VSCODE (Em construção)
|Link para a página|Descrição
|---|---|
|[**Intellij**](backend/intellij_instalacao)| IDE para desenvolvimento java para o [**Backend**](backend/backend_home)
|[**Datagrip**](backend/datagrip_instalacao)| IDE para banco de dados para o [**Backend**](backend/backend_home)
|[**Postman**](backend/postman_instalacao)| Programa para testar requisições criadas pelo [**Backend**](backend/backend_home)
|[**Java**](backend/java_instalacao)| Compilador para programas Java, que é nossa linguagem oficial do [**Backend**](backend/backend_home)
|[**Maven**](backend/maven_instalacao)| Ferramenta de automação de compilação para projetos java, para facilitar o processo do [**Backend**](backend/backend_home)
|[**Flutter**](frontend/flutter_instalacao)| Framework de desenvolvimento para o projeto [**Frontend**](frontend/frontend_home)
|[**PostgreSQL**](database/postgresql_instalacao)| É o sistema de gerenciador de banco de dados que iremos utilizar para o nosso projeto, ele principalmente é usado com o [**Backend**](backend/backend_home)
|PgAdmin 4 (Em construção)| É um projeto open source que auxilia no gerenciamento do PostgreSQL, mas pode ser utilizado o [**Datagrip**](backend/datagrip_instalacao)
## Backend
* [**Postman**](backend/postman_instalacao)
* [**Java**](backend/java_instalacao)
* [**Maven**](backend/maven_instalacao)
## Frontend
* [**Flutter**](frontend/flutter_instalacao)
## Database
* [**PostgreSQL**](database/postgresql_instalacao)
* Pgadmin 4 (Em construção)
......
### Wiki normal
<br>
[![](https://img.shields.io/badge/Página_Inicial_wiki-323330?style=for-the-badge)](home)
---
### Wiki Backend
<br>
[![](https://img.shields.io/badge/Página_inicial_backend-FF4500?style=for-the-badge)](backend/backend_home)
[![](https://img.shields.io/badge/Instalando_Java-323330?style=for-the-badge&logo=java&logoColor=white)](backend/java_instalacao)
[![](https://img.shields.io/badge/Instalando_maven-323330?style=for-the-badge)](backend/maven_instalacao)
[![](https://img.shields.io/badge/Instalando_postman-323330?style=for-the-badge)](backend/postman_instalacao)[![](https://img.shields.io/badge/Instalando_intellij-323330?style=for-the-badge)](backend/intellij_instalacao)
[![](https://img.shields.io/badge/Instalando_Datagrip-323330?style=for-the-badge)](backend/datagrip_instalacao)
<br>
[![](https://img.shields.io/badge/Utilizando_postman-323330?style=for-the-badge)]()
---
# Página inicial da área do Backend do projeto Joinfut ⚽
---
Bem vindos a página inicial do Backend do projeto Joinfut.
Aqui se encontram todas as documentações dos programas e como funciona o backend para que a equipe não se perca durante o desenvolvimento.
## Glossário
* **Instalação de Programas**
|Página|Descrição
|---|---|
|[![](https://img.shields.io/badge/Instalando_Java-ED8B00?style=for-the-badge&logo=java&logoColor=white)](backend/java_instalacao)| Como fazer a instalação do Java 11 no Linux e Windows
|[![](https://img.shields.io/badge/Instalando_maven-239120?style=for-the-badge)](backend/maven_instalacao)| Como fazer a instalação do maven 3.6.3 no Linux e Windows
|[![](https://img.shields.io/badge/Instalando_postman-D83B01?style=for-the-badge)](backend/postman_instalacao)|Como instalar Postman no Linux e Windows|
|[![](https://img.shields.io/badge/Instalando_intellij-000000?style=for-the-badge)](backend/intellij_instalacao)|Como instalar a IDE Intellij no Linux e Windows
|[![](https://img.shields.io/badge/Instalando_Datagrip-0095D5?&style=for-the-badge)](backend/datagrip_instalacao)|Como instalar a IDE Datagrip no Linux e WIndows
|[![]()]()|TBD
* **Utilização dos Programas**
|Página|Descrição
|---|---|
|[![](https://img.shields.io/badge/utilizando_postman-D83B01?style=for-the-badge)](backend/postman_utilizacao)|Como utilizar o Postman no nosso projeto|
|[![]()]()|TBD
|[![]()]()|TBD
|[![]()]()|TBD
|[![]()]()|TBD
* **Entendendo a estrutura**
|Página|Descrição
|---|---|
|[![]()]()|TBD
|[![]()]()|TBD
|[![]()]()|TBD
|[![]()]()|TBD
|[![]()]()|TBD
* **Códigos úteis para o desenvolvimento**
|Página|Descrição
|---|---|
|[![]()]()|TBD
|[![]()]()|TBD
|[![]()]()|TBD
|[![]()]()|TBD
|[![]()]()|TBD
### Wiki normal
<br>
[![](https://img.shields.io/badge/P%C3%A1gina%20Inicial-323330?style=for-the-badge)](home)
[![](https://img.shields.io/badge/Instala%C3%A7%C3%A3o-323330?style=for-the-badge)](Instalação)
---
### Wiki Backend
<br>
[![](https://img.shields.io/badge/Página_inicial_backend-323330?style=for-the-badge)](backend/backend_home)
[![](https://img.shields.io/badge/Instalando_Java-323330?style=for-the-badge&logo=java&logoColor=white)](backend/java_instalacao)
[![](https://img.shields.io/badge/Instalando_maven-323330?style=for-the-badge)](backend/maven_instalacao)
[![](https://img.shields.io/badge/Instalando_postman-323330?style=for-the-badge)](backend/postman_instalacao)[![](https://img.shields.io/badge/Instalando_intellij-323330?style=for-the-badge)](backend/intellij_instalacao)
[![](https://img.shields.io/badge/Instalando_Datagrip-FF4500?style=for-the-badge)](backend/datagrip_instalacao)
<br>
[![](https://img.shields.io/badge/Utilizando_postman-323330?style=for-the-badge)]()
---
# Instalação do Intellij
## Glossário
* [**Linux**](backend/intellij_instalacao#linux)
* [**Windows**](backend/intellij_instalacao#windows)
* [**Extensões**](backend/intellij_instalacao#extensao)
---
<a name="linux"></a>
## Linux
aixe a ultima versão do Datagrip no [Site oficial](https://www.jetbrains.com/datagrip/download/#section=linux)
Deixe terminar de baixar o instalador, enquanto isso crie uma conta de estudante do Datagrip [AQUI](https://www.jetbrains.com/pt-br/community/education/#students)
Faça a extração do arquivo .tar.gz com o comando `tar -xzf <nome_Arquio>.tar.gz` no diretório de sua escolha
<img src="resources/images/datagrip/1_linux.png">
Depois acesse o diretório **bin** do novo diretório gerado e rode o script `datagrip.sh`, esse é o script que roda o Datagrip, você pode utilizar o Script [DatagripStarter.sh](https://tools.ages.pucrs.br/Joinfut/joinfut-database/-/blob/main/Script_Linux/DatagripStarter.sh) para automatizar o inicio do Datagrip, sendo que o Datagrip deve estar na pasta download e o script na pasta desktop e dai só rodar o arquivo pelo terminal com o seguintes comandos:
```shell
cd Desktop
chmod +x DatagripStarter.sh
./DatagripStarter.sh
```
---
<a name="windows"></a>
## Windows
Va até a [página oficial](https://www.jetbrains.com/datagrip/) do Datagrip
Clique em fazer o Download
<img src="resources\images\datagrip\1.png">
<img src="resources\images\datagrip\2.png">
Deixe instalar completamente no seu computador
<img src="resources\images\datagrip\3.png">
Quando tiver terminado a instalação ele vai mostrar a página abaixo
<img src="resources\images\datagrip\4.png">
Deixe o local de salvamento padrão
<img src="resources\images\datagrip\5.png">
Selecione todas as opções de modificadores que precisa e clique em **NEXT**
<img src="resources\images\datagrip\6.png">
Clique para instalar e deixe ele concluir a instalação
<img src="resources\images\datagrip\7.png">
<img src="resources\images\datagrip\8.png">
Pronto! dai só clicar para reiniciar o computador para terminar de instalar tudo.
<img src="resources\images\datagrip\9.png">
---
<a name="extensao"></a>
## Extensões úteis
* Uma extensão muito boa é o github theme, onde deixa o datagrip mais escuro, deixando melhor de ver as informações
Acesse os **Settings** do datagrip.
<img src="resources\images\datagrip\10.png">
Acesse a página **Plugins** e procure pela extensão **Github Themes**
<img src="resources\images\datagrip\11.png">
<img src="resources\images\datagrip\12.png">
\ No newline at end of file
### Wiki normal
<br>
[![](https://img.shields.io/badge/P%C3%A1gina%20Inicial-323330?style=for-the-badge)](home)
[![](https://img.shields.io/badge/Instala%C3%A7%C3%A3o-323330?style=for-the-badge)](Instalação)
---
### Wiki Backend
<br>
[![](https://img.shields.io/badge/Página_inicial_backend-323330?style=for-the-badge)](backend/backend_home)
[![](https://img.shields.io/badge/Instalando_Java-323330?style=for-the-badge&logo=java&logoColor=white)](backend/java_instalacao)
[![](https://img.shields.io/badge/Instalando_maven-323330?style=for-the-badge)](backend/maven_instalacao)
[![](https://img.shields.io/badge/Instalando_postman-323330?style=for-the-badge)](backend/postman_instalacao)[![](https://img.shields.io/badge/Instalando_intellij-FF4500?style=for-the-badge)](backend/intellij_instalacao)
[![](https://img.shields.io/badge/Instalando_Datagrip-323330?style=for-the-badge)](backend/datagrip_instalacao)
<br>
[![](https://img.shields.io/badge/Utilizando_postman-323330?style=for-the-badge)]()
---
# Instalação do Intellij
## Glossário
* [**Linux**](backend/intellij_instalacao#linux)
* [**Windows**](backend/intellij_instalacao#windows)
* [**Extensões**](backend/intellij_instalacao#extensao)
---
<a name="linux"></a>
### Linux
aixe a ultima versão do Intellij no [Site oficial](https://www.jetbrains.com/pt-br/idea/download/)
A versão completa do Intellij é a **Ultimate**
Deixe terminar de baixar o instalador, enquanto isso crie uma conta de estudante no intellij [AQUI](https://www.jetbrains.com/pt-br/community/education/#students)
Faça a extração do arquivo .tar.gz com o comando `tar -xzf <nome_Arquio>.tar.gz` no diretório de sua escolha
<img src="resources/images/intellij/1_linux.png">
Depois acesse o diretório **bin** do novo diretório gerado e rode o script `idea.sh`, esse é o script que roda o intellij, você pode utilizar o Script [IntellijStarter.sh](https://tools.ages.pucrs.br/Joinfut/joinfut-database/-/blob/main/Script_Linux/IntellijStarter.sh) para automatizar o inicio do intellij, sendo que o intellij deve estar na pasta download e o script na pasta desktop e dai só rodar o arquivo pelo terminal com o seguintes comandos:
```shell
cd Desktop
chmod +x IntellijStarter.sh
./IntellijStarter.sh
```
**Pelo Ubuntu**
Acesse o **Ubuntu Software**
<img src="resources/images/intellij/2_linux.png">
Deixe carregar o catálogo de programas
<img src="resources/images/intellij/3_linux.png">
Pesquise pelo intellij e selecione o **ultimate**
<img src="resources/images/intellij/4_linux.png">
Ele vai abrir uma página com informações e só clique para instalar que ele vai fazer todo o trabalho, para inciar é só procurar por ele no seu ubuntu.
<img src="resources/images/intellij/5_linux.png">
---
<a name="windows"></a>
### Windows
Baixe a ultima versão do Intellij no [Site oficial](https://www.jetbrains.com/pt-br/idea/download/)
A versão completa do Intellij é a **Ultimate**
<img src="resources/images/intellij/1.png">
Deixe terminar de baixar o instalador, enquanto isso crie uma conta de estudante no intellij [AQUI](https://www.jetbrains.com/pt-br/community/education/#students)
Após baixado e tendo a conta de estudante, clique no instalador e vai aparecer a página abaixo, clique em **Next**
<img src="resources/images/intellij/3.png">
Selecione onde vai ser instalado o intellij, é recomentado deixar o caminho padrão dele, como mostra abaixo
<img src="resources/images/intellij/4.png">
Selecione para que ele coloque no PATH do windows automaticamente o intellij, além de que a linguagem do programa é principalmente java e criar um atalho no seu desktop
<img src="resources/images/intellij/5.png">
Deixe ele fazer a instalação e configurações necessárias
<img src="resources/images/intellij/6.png">
Pronto! agora deixe ele reiniciar o computador e quando iniciar o intellij faça login na conta de estudante criada
<img src="resources/images/intellij/7.png">
---
<a name="extensao"></a>
### Extensões úteis
1) Tema do github
Existem vários temas disponiveis para o intellij, mas o meu favorito é o tema do github:
### Wiki normal
<br>
[![](https://img.shields.io/badge/P%C3%A1gina%20Inicial-323330?style=for-the-badge)](home)
[![](https://img.shields.io/badge/Instala%C3%A7%C3%A3o-323330?style=for-the-badge)](Instalação)
---
### Wiki Backend
<br>
[![](https://img.shields.io/badge/Página_inicial_backend-323330?style=for-the-badge)](backend/backend_home)
[![](https://img.shields.io/badge/Instalando_Java-FF4500?style=for-the-badge&logo=java&logoColor=white)](backend/java_instalacao)
[![](https://img.shields.io/badge/Instalando_maven-323330?style=for-the-badge)](backend/maven_instalacao)
[![](https://img.shields.io/badge/Instalando_postman-323330?style=for-the-badge)](backend/postman_instalacao)[![](https://img.shields.io/badge/Instalando_intellij-323330?style=for-the-badge)](backend/intellij_instalacao)
[![](https://img.shields.io/badge/Instalando_Datagrip-323330?style=for-the-badge)](backend/datagrip_instalacao)
<br>
[![](https://img.shields.io/badge/Utilizando_postman-323330?style=for-the-badge)]()
---
# Instalação do Java para o projeto
* Versão do Java que iremos utilizar: ![](https://img.shields.io/badge/JAVA-11.0.16-orange)
......
### Wiki normal
<br>
[![](https://img.shields.io/badge/P%C3%A1gina%20Inicial-323330?style=for-the-badge)](home)
[![](https://img.shields.io/badge/Instala%C3%A7%C3%A3o-323330?style=for-the-badge)](Instalação)
---
### Wiki Backend
<br>
[![](https://img.shields.io/badge/Página_inicial_backend-323330?style=for-the-badge)](backend/backend_home)
[![](https://img.shields.io/badge/Instalando_Java-323330?style=for-the-badge&logo=java&logoColor=white)](backend/java_instalacao)
[![](https://img.shields.io/badge/Instalando_maven-FF4500?style=for-the-badge)](backend/maven_instalacao)
[![](https://img.shields.io/badge/Instalando_postman-323330?style=for-the-badge)](backend/postman_instalacao)[![](https://img.shields.io/badge/Instalando_intellij-323330?style=for-the-badge)](backend/intellij_instalacao)
[![](https://img.shields.io/badge/Instalando_Datagrip-323330?style=for-the-badge)](backend/datagrip_instalacao)
<br>
[![](https://img.shields.io/badge/Utilizando_postman-323330?style=for-the-badge)]()
---
# Instalação do Maven
* Versão do Maven que iremos utilizar: ![](https://img.shields.io/badge/Maven-3.6.3-green)
## Glossário
* [**Linux**](backend/maven_instalacao#linux)
......
### Wiki normal
<br>
[![](https://img.shields.io/badge/P%C3%A1gina%20Inicial-323330?style=for-the-badge)](home)
[![](https://img.shields.io/badge/Instala%C3%A7%C3%A3o-323330?style=for-the-badge)](Instalação)
---
### Wiki Backend
<br>
[![](https://img.shields.io/badge/Página_inicial_backend-323330?style=for-the-badge)](backend/backend_home)
[![](https://img.shields.io/badge/Instalando_Java-323330?style=for-the-badge&logo=java&logoColor=white)](backend/java_instalacao)
[![](https://img.shields.io/badge/Instalando_maven-323330?style=for-the-badge)](backend/maven_instalacao)
[![](https://img.shields.io/badge/Instalando_postman-FF4500?style=for-the-badge)](backend/postman_instalacao)[![](https://img.shields.io/badge/Instalando_intellij-323330?style=for-the-badge)](backend/intellij_instalacao)
[![](https://img.shields.io/badge/Instalando_Datagrip-323330?style=for-the-badge)](backend/datagrip_instalacao)
<br>
[![](https://img.shields.io/badge/Utilizando_postman-323330?style=for-the-badge)]()
---
# Instalação do Postman
---
## Glossário
* [**Linux**](backend/postman_instalacao#linux)
* [**Windows**](backend/postman_instalacao#windows)
|Ordem|Tópico|
|---|---|
|1|[**Linux**](backend/postman_instalacao#linux)
|2|[**Windows**](backend/postman_instalacao#windows)
|3|[**Utilizando postman no projeto**](backend/postman_instalacao#use)
---
<a name="linux"></a>
#### Postman Linux
## Postman no Linux
* Acesse [Site oficial](https://www.postman.com/downloads/)
* Abra um console no diretório onde foi baixado o postman:
......@@ -36,4 +63,41 @@ $ ./Postman
---
<a name="windows"></a>
#### Postman no Windows
\ No newline at end of file
## Postman no Windows
* Acesse a página ofical de Download do [Postman](https://www.postman.com/downloads/)
<img src="resources\images\postman\1.png" width="600">
* Deixe terminar de baixar o .exe e o salve onde quiser
<img src="resources\images\postman\2.png" width="600">
* Quando clicar no .exe, ele vai automaticamente instalar o postman em seu computador.
<img src="resources\images\postman\3.png" width="600">
* Crie uma conta ou faça login em uma conta do google
<img src="resources\images\postman\4.png" width="600">
* Após logado, clique na engrenagem no canto direito encima e selecione **Settings**
<img src="resources\images\postman\5.png">
* Você pode escolher o tema desejado na aba **Themes**
<img src="resources\images\postman\6.png">
* Se desejar conhecer mais sobre o postman, ele possui uma excelente [Documentação](https://learning.postman.com/docs/getting-started/introduction/)
<img src="resources\images\postman\7.png">
---
<a name="use"></a>
## Utilizando o postman no projeto
* Para utilizar o postman, leia a wiki [![](https://img.shields.io/badge/Utilizando_Postman-E34F26?style=for-the-badge)](postman_utilizacao)
### Wiki normal
<br>
[![](https://img.shields.io/badge/P%C3%A1gina%20Inicial-323330?style=for-the-badge)](home)
[![](https://img.shields.io/badge/Instala%C3%A7%C3%A3o-323330?style=for-the-badge)](Instalação)
---
### Wiki Backend
<br>
[![](https://img.shields.io/badge/Página_inicial_backend-323330?style=for-the-badge)](backend/backend_home)
[![](https://img.shields.io/badge/Instalando_Java-323330?style=for-the-badge&logo=java&logoColor=white)](backend/java_instalacao)
[![](https://img.shields.io/badge/Instalando_maven-323330?style=for-the-badge)](backend/maven_instalacao)
[![](https://img.shields.io/badge/Instalando_postman-323330?style=for-the-badge)](backend/postman_instalacao)[![](https://img.shields.io/badge/Instalando_intellij-323330?style=for-the-badge)](backend/intellij_instalacao)
[![](https://img.shields.io/badge/Instalando_Datagrip-323330?style=for-the-badge)](backend/datagrip_instalacao)
<br>
[![](https://img.shields.io/badge/Utilizando_postman-FF4500?style=for-the-badge)]()
---
# Utilizando o postman no projeto joinfut
---
### Importando Requisições Existentes
1) no topo a esquerda do postman tem a opção **import**, clique nele e ele abre uma página para fazer upload dos arquivos
<img src="resources\images\postman\1_import.png">
2) Importe a **coleção**(conjunto de requisições) e o **ambiente**(onde ficam as variáveis necessárias para as requisições) desejada do diretório **Requisições**
<img src="resources\images\postman\2_select_all.png">
3) No postman vai mostrar quais você está importanto e informações importantes
<img src="resources\images\postman\3_import_selected.png">
4) Dentro de toda coleção de requisições tem dois diretórios:
4.1) **CRUD** ficam todas as requisições base da entidade, todas devem estar funcionando
4.2) **VALIDATIONS** ficam as validações dos objetos dentro da entidade.
<img src="resources\images\postman\4_folder_organization.png">
5) As requisições devem possuir as seguintes nomenclaturas:
```
<Tipo de Operação no banco> <Nome Entidade>
```
Deve seguir o padrão CRUD
<img src="resources\images\postman\CRUD.png">
<img src="resources\images\postman\5_requisitions.png">
6) As validações o nome deve ser o que está sendo validado, onde deve possuir uma requisição para casa validação e objeto:
<img src="resources\images\postman\6_validations.png">
7) O **Ambiente** (Enviroment) ficam as constantes utilizadas no projeto, onde cada conjunto de requisição terá o seu, mesmo que tenham somente a URL de teste
* Sua localização fica a direita bem na ponta
<img src="resources\images\postman\7_enviroment.png">
<img src="resources\images\postman\8_understand_enviroment.png">
* Quando é testado, na hora que é criado um objeto da entidade, ele vai salvar o ID do objeto criado no banco e esse valor vai ser salvo no ambiente **Global** (globals), onde ficam as variáveis de utilização entre requisições
---
### Testando as requisições
| Tipos de Requisição |
|-----------------------------------------------------------------------------------|
| [POST](#post) |
| [GET By ID](#get-by-id) |
| [PUT](#put) |
| [GET ALL](#get-all) |
| [DELETE](#delete) |
| [VALIDATIONS](#validations) |
| [Rodando todos os testes ao mesmo tempo](#rodando-todos-os-testes-ao-mesmo-tempo) |
* No estilo arquitetural REST, a manipulação dos recursos disponibilizados para o cliente é realizada através de métodos do protocolo HTTP.
#### POST
* É utilizado para [**criar**]() um novo registro no banco de dados.
* Tipo de resultado: **Status Code 201 – registro criado**
* Graças ao POST, podemos fazer uma operação chamada **CREATE** no banco de dados,é uma operação de insert que o Springboot faz por nós no Controller.
* Nomenclatura dessa Requisição: `Create <Nome do Model>`
1) Na aba **Body** no postman iremos colocar os dados que queremos salvar, dai quando cliado no botão **Send** ele vai enviar os dados para a API e terá como retorno o Status que retornou da API e um JSON no **Response** com os dados salvos
<img src="resources\images\postman\9_POST1.png">
2) Na aba **Tests** os testes são criados em Javascript e devem ser colocados em ordem, assim que o resultado da requisição for 201 ele vai salvar o ID do objeto em uma variável global
<img src="resources\images\postman\9_POST2.png">
#### GET By ID
* É utilizado para [**buscar**]() um registro no banco de dados pelo ID passado na URL
* Tipo de resultado: **Status Code 200 OK**
* Graças ao GET, podemos fazer uma operação chamada **READ** no banco de dados
* Nomenclatura dessa Requisição: `Read <Nome do Model>`
1) Na **URL** da requisição chamamos a variável global que foi gerada com a requisição **POST** ou podemos criar a variável manualmente no **Enviroment**, mas somente se o conjunto de requisições não tem como conseguir esse id.
<img src="resources\images\postman\10_GETID1.png">
2) Na aba **Tests** somente tem o teste que o GET deve retornar o código 200, mas podemos ter testes que também salvam um ID específico caso precise. O retorno da requisição é o objeto que demos o ID que está salvo no banco de dados
<img src="resources\images\postman\10_GETID2.png">
#### PUT
* É utilizado para [**atualizar**]() um registro no banco de dados pelo ID passado na URL.
* Tipo de resultado: **Status Code 200 OK**
* Graças ao PUT, podemos fazer uma operação chamada **UPDATE** no banco de dados.
* Nomenclatura dessa Requisição: `Update <Nome do Model>`
1) Na **URL** da requisição chamamos a variável global que foi gerada com a requisição **POST** ou podemos criar a variável manualmente no **Enviroment**, mas somente se o conjunto de requisições não tem como conseguir esse id.
2) No **Body** da requisição colocamos quais dados queremos editar do objeto salvo no banco, eles devem ter os mesmos nomes dos objetos salvos, senão vai dar um erro
<img src="resources\images\postman\11_PUT1.png">
3) No **Response** (resposta da API) vai mostar um JSON com os dados do objeto que foram salvos no banco, já mostrando a atualização dos dados que você pediu para alterar e os dados das outras variáveis como estão salvar no banco.
<img src="resources\images\postman\11_PUT2.png">
4) Na aba **Tests** é feito um tipo diferente de teste, onde além de verificar se o ID é um número ele vai verificar se o ID da resposta é o mesmo ID da variável global criada pelo **POST**, por isso essa variável global não pode ser alterada manualmente, somente pela requisição **POST**.
<img src="resources\images\postman\11_PUT3.png">
#### GET ALL
* É utilizado para [**buscar todos**]() os dados do objeto da requisição.
* Tipo de resultado: **Status Code 200 OK**
* Funciona da mesma forma do outro **GET by ID**, onde é feito uma operação chamada **READ** no banco de dados.
* Nomenclatura dessa Requisição: `Read All <Nome do Model>`
1) Deve apresentar no **Response** todos os objetos que estão salvos no banco **do objeto passado na url**.
<img src="resources\images\postman\12_GETALL.png">
#### DELETE
* É utilizado para [**deletar por id**] um registro no banco de dados pelo ID passado na URL.
* Tipo de Resultado: **Status Code 200 OK**.
* Graças ao DELETE, podemos fazer uma operação **DELETE** no banco de dados.
* Nomenclatura da Requisição: `Delete <Nome do Model>`
1) Deve apresentar no **Response** o ID do objeto excluido.
2) Nos testes é verificado se o ID da exclusão é o mesmo que o ID salvo na variável global criada pelo **POST**, por isso essa variável global não pode ser alterada manualmente, somente pela requisição **POST**.
3) Após deletado e apresentado o ID e verificado, é limpo todas as variáveis globais.
<img src="resources\images\postman\13_DELETE.png">
#### VALIDATIONS
* **VALIDATIONS** é o nome do diretório onde se encontram todas as requisições das [**validações dos dados do objeto**](), cada validação deve ter sua própria requisição.
* Essas requisições servem para testar possíveis erros que podem acontecer na requisição, se um dado não pode ser nulo ou falta alguma informação.
* Eles são rodados como qualquer uma das requisições acima.
1) Para cada variável ou objeto, deve ter um diretório interno com suas requisições de validação
<img src="resources\images\postman\14_validations1.png">
2) Essas requisições devem dar as mensagens de erros definidos nas validações do DTO
<img src="resources\images\postman\14_validations2.png">
3) Todas as requisições vão dar o tipo de resultado **400 Bad Request** e no **Response** vai ser apresentado a mensagem definida para o tipo de erro
<img src="resources\images\postman\14_validations3.png">
4) Nos testes é somente verificado se realmente foi o status 400 que ocorreu
<img src="resources\images\postman\14_validations4.png">
#### Rodando todos os testes ao mesmo tempo
* No postman podemos rodar todas as requisições na ordem que colocarmos elas.
* Isso ajuda a não ter que rodar uma a uma para testar se tudo está certo.
* Todas as requisições devem estar na seguinte ordem:
<img src="resources\images\postman\15_runner1.png">
* Após estar na ordem correta e seguindo o padrão apresentado em cada uma das requisições do CRUD, iremos selecionar a pasta do CRUD e vai mostrar a seguinte página:
<img src="resources\images\postman\15_runner2.png">
* Ao clicar no botão **Run** na parte de cima dessa página, irá trazer todas as requisições criadas na ordem que estão no diretório, onde o postman irá verificar elas em ordem os testes definidos na aba **Tests**
<img src="resources\images\postman\15_runner3.png">
* São os testes das requisições que importam, onde todos verificam o status que deve retornar da requisição, alguns irão verificar o ID salvo com a variável global(PUT e DELETE) e alguns irão salvar o ID na variável global (POST), por isso que é importante eles estarem em ordem, porque eles vão fazer o seguinte:
* O POST vai criar o objeto, salvar no banco e pegar o ID e salvar na variável global.
* O GET vai verificar se o dado está no banco salvo mesmo
* O PUT vai alterar o dado do banco com um dado passado no body, onde o teste vai verificar se foi feito alteração e se os IDs estão iguais
* O GET ALL vai trazer todos os dados salvos do banco
* O DELETE vai deletar um dado, verificar se o ID do dado deletado é igual e apagar as variáveis globais
* Uma requisição utiliza a requisição anterior para fazer algo, estão encadeadas, por isso é importante estar na ordem correta.
* Ele vai mostrar em verde e com a mensagem **Pass** se a requisição passou no teste definido na aba **Tests**
* Para os testes serem validados pelo revisor, **TODAS AS REQUISIÇÕES DEVEM ESTAR PASSANDO NOS TESTES**.
<img src="resources\images\postman\15_runner4.png">
* é muito importante o revisor verificar se passou todos os testes e se no banco foi realmente alterado os valores, por isso o revisor deve testar um a um vendo se estão fazendo o que devia e depois testar todos ao mesmo tempo usando o runner do postman.
---
\ No newline at end of file
backend/resources/images/datagrip/1.png

185 KB

backend/resources/images/datagrip/10.png

8.02 KB

backend/resources/images/datagrip/11.png

34.1 KB

backend/resources/images/datagrip/12.png

97.2 KB

backend/resources/images/datagrip/1_linux.png

64.1 KB

backend/resources/images/datagrip/2.png

45.8 KB

backend/resources/images/datagrip/2_linux.png

55.9 KB

backend/resources/images/datagrip/3.png

3.52 KB

backend/resources/images/datagrip/4.png

28.2 KB

Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment