13/11/2021 - Aula 4 de Backend com Java (Presencial)
Após algumas semanas sem aula por problemas de saude e disponibilidade da sala, a aula voltou hoje, sendo a ultima do ano e da materia.
O Professor Djonathan começa a aula falando sobre padrão de organização de um projeto. Comparando alguns tipos. Ele falou que posteriormente vai passar um material sobre isso.
Essa parte de organização vai ser utilizada para o trabalho, além de uma forma de documentar a nossa API utilizando OpenAPI. O professor foi atualizando o projeto que temos, do qual vamos ter que seguir para entregar o trabalho.
Isso foi o que foi visto pela manha. Após o almoço, começamos a ver sobre APIs REST e os seus verbos HTTP, vimos sobre HATEOAS e sobre o uso de Swagger.
Voltamos as aulas presenciais, pois o decreto que permitia não está mais em vigor. O Professor Djonathan começa a aula fazendo uma revisão da segunda aula.
- Princípio da Responsbilidade Única
- Classes e metodos sempre coesos, que ele ~e responsavel por ele mesmo.
- Princípio Aberto-Fechado
- Uma forma melhor de escrever, que garante a sustentabilidade do código.
- Padrões
Depois de revisar, a aula continuou com Spring, utilizando o projeto unipar-2021-aula-2 para implementar alguns recursos do Spring, conforme o professor ia fazendo ele ia explicando a utilização dos componentes.
- @Component
- @AutoWired
- Injeção de dependência por Setter
- Contrutor
Tudo isso visto até o momento foi o modulo 1, agora vamos começar o modulo 2, que é a utilização de APIs.
Livro: How Do You Fight a Horse-Sized Duck?: Secrets to Succeeding at Interview Mind Games and Getting the Job You WantComo levar o monte Fuji do Japão para a India? R: Uma foto já faz você levar para a India.
API
API é um conjunto de definições e protocolos usado no desenvolvimento e na integração de software de aplicações.
REST
O estilo de Transferência de Estado Representacional (REST) é uma abstração dos elementos arquiteturais de um sistema de distribuição de hipermídia.
Estruturas como URIs (Coleções vs Recursos vs Hierarquias)
- /planos
- /planos/1
- /planos/1/dependentes/
- /planos/1/dependentes/4
Obs: sempre utilizar substantivos e nunca verbos
- /planos/cancelar (errado)
Padrões para URIs
- Mantenha tudo em caixa baixa
- Substitua espaços com hífens ou underscore
Representação
- Deve ser consistentes (a mesma requisição deve retornar a mesma resposta caso o recurso não tenha sido modificado)
- O conteúdo pode ser negociado
JSON
Exemplo de JSON
{
"nome": "João da Silva",
"idade": "20",
"cidade": "São Paulo",
"estado": "SP",
"pais": "Brasil"
}
Exemplo 2
{
"cliente": 1,
"data": "2020-10-10",
"itens": [
{
"id": 1,
"nome": "Item 1",
"quantidade": 10,
"valor": 100.00
},
{
"id": 2,
"nome": "Item 2",
"quantidade": 20,
"valor": 200.00
}
]
}
Com isso terminamos a aula pela parte da manhã, vamos para o almoço e depois a aula continuou com a criação de um novo projeto, para ser a nossa API.
Esse projeto é um sistema para aulas online, começamos montando a parte da disciplina, criando os metodos GET para retornas todos os dados, POST, para criar uma nova disciplina, PUT para atualizar os dados da disciplina por inteiro e PATCHE para atualizar somente um dado, e por fim, DELETE para deletar a disciplina.
Além de ver alguns dos verbos HTTPS, foi falado sobre os códigos de status HTTP.
Com isso foi finalizado a aula.
As informações do trabalho estão na pagina da disciplina.
Link