Bem-vindo à API RESTful para o sistema de gerenciamento de produtos. Esta API segue os princípios fundamentais da arquitetura REST e inclui suporte ao HATEOAS (Hypermedia as the Engine of Application State).
Certifique-se de ter o ambiente configurado com Java e as dependências do Spring Boot. Além disso, é recomendável ter um banco de dados configurado.
A API segue os pilares fundamentais da arquitetura REST:
-
Stateless: Cada requisição do cliente para o servidor deve conter todas as informações necessárias para entender e processar a requisição. O servidor não deve armazenar informações do estado do cliente entre requisições.
-
Uniform Interface: A interface é simplificada e consistente para todas as interações. Isso inclui a utilização de verbos HTTP padronizados (GET, POST, PUT, DELETE), URIs significativas e a representação de recursos no formato JSON.
-
Client-Server: A separação entre cliente e servidor permite a evolução independente de ambas as partes, facilitando a escalabilidade e a manutenção.
-
Cacheability: As respostas devem ser explicitamente marcadas como cacheáveis ou não-cacheáveis. Isso melhora a eficiência e a escalabilidade.
-
Layered System: A arquitetura pode ser composta por camadas hierárquicas, facilitando a escalabilidade e a manutenção.
A API implementa o HATEOAS. Isso significa que as respostas incluem links para recursos relacionados, permitindo que o cliente navegue pela aplicação de maneira dinâmica.
Por exemplo:
- Ao obter a lista de produtos, cada produto possui links para visualizar detalhes específicos desse produto.
- Ao visualizar os detalhes de um produto, há um link para retornar à lista completa de produtos.
- POST /products: Cria um novo produto.
- GET /products: Retorna a lista completa de produtos.
- GET /products/{id}: Retorna os detalhes de um produto específico.
- PUT /products/{id}: Atualiza as informações de um produto.
- DELETE /products/{id}: Exclui um produto.