Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Hateoas vs ResponseEntity.created(uri).body(dto)

Retornar o location no header da requisição me parece similar a usar hateoas, mas quando usar um ou outro, ou nem usar. Na busca por resposta acabei com mais perguntas, existem frameworks de front que conseguem fazer um bom uso disso? Um swagger bem implementado não traria benefícios melhores, não onerando o pacote de dados de usuários mobile?

2 respostas
solução!

Oi Gladson, tudo bem?

O Hateoas é um conceito que visa facilitar a navegação e descoberta dos recursos em uma API. Ele permite que você retorne links relacionados aos recursos em suas respostas, permitindo que o cliente da API navegue facilmente entre eles. Por exemplo, se você tem uma API de produtos, ao retornar os detalhes de um produto, você pode incluir links para a listagem de todos os produtos, para a atualização do produto e assim por diante.

Por outro lado, o ResponseEntity.created(uri).body(dto) é utilizado quando você deseja retornar o código HTTP 201 (Created) em uma requisição de criação de um recurso na API. Além disso, ele permite que você inclua no cabeçalho da resposta a URI do recurso criado e no corpo da resposta os dados desse recurso. Isso é útil quando você precisa informar ao cliente da API onde ele pode encontrar o recurso criado.

A escolha entre um ou outro vai depender das necessidades específicas da sua API e do contexto em que você está trabalhando. Se você precisa apenas retornar o código 201 e a URI do recurso criado, o ResponseEntity.created(uri) é o suficiente. Porém, se você deseja adicionar links relacionados aos recursos e facilitar a navegação do cliente, o Hateoas pode ser uma boa opção.

Quanto à sua pergunta sobre frameworks de front-end que conseguem fazer bom uso disso, sim, existem vários frameworks que suportam o Hateoas e facilitam a navegação entre os recursos da API. Alguns exemplos são o Angular, React e Vue.js. Esses frameworks possuem recursos e bibliotecas que permitem consumir uma API que utiliza Hateoas de forma mais fácil e intuitiva.

Quanto à sua pergunta sobre o Swagger, ele é uma ferramenta que permite documentar e testar APIs. Embora o Swagger possa ajudar na documentação da API e na geração de clientes, ele não está diretamente relacionado ao uso do Hateoas ou do ResponseEntity.created(uri).body(dto). São conceitos diferentes e podem ser utilizados em conjunto, se necessário.

Espero ter ajudado a esclarecer suas dúvidas!

Um abraço e bons estudos.

Obrigado Lorena :)