Tenho conduzido algumas pesquisas sobre o design de serviços da Web RESTful e cheguei ao que considero um ponto de decisão fundamental, então pensei em oferecer à comunidade para obter alguns conselhos.
De acordo com os princípios de uma arquitetura RESTful, quero apresentar uma API detectável, por isso darei suporte aos vários verbos HTTP da maneira mais completa possível. Minha dificuldade vem com a escolha da representação desses recursos. Veja bem, seria fácil criar minha própria API que cobre como os resultados da pesquisa devem ser apresentados e como os links para outros recursos são fornecidos, mas isso seria exclusivo para o meu aplicativo.
Eu li sobre o Atom Publishing Protocol ( RFC 5023 ) e como o OData promove seu uso, mas parece adicionar um nível extra de abstração sobre o que é (atualmente) uma API bastante simples.
Então, minha pergunta é: quando um desenvolvedor deve selecionar AtomPub como sua escolha de representação - se é que existe? E se não, qual é a atual abordagem recomendada?
fonte
Respostas:
Depois de fazer uma boa quantidade de pesquisas sobre o assunto, aqui estão minhas descobertas:
Parece haver três formatos e abordagens principais: AtomPub, OData e HAL. Resumi a pesquisa para cada um abaixo.
AtomPub
OData
Pro: fornece uma boa estrutura de consulta URI
Con: Apresenta uma estrutura completa (substitui essencialmente o Dropwizard)
HAL
Então, quando devo usar o AtomPub?
Pelo exposto, você deve escolher o AtomPub se estiver satisfeito com a complexidade adicional e quiser usar bibliotecas padrão para seus clientes. Provavelmente seria esse o caso se você estiver executando um grande repositório de documentos.
Eu coloquei mais detalhes (que estão fora do escopo desta pergunta) em um artigo recente do blog que pode ajudar outros.
fonte