He estado realizando algunas investigaciones sobre el diseño de servicios web RESTful y he llegado a lo que creo que es un punto de decisión clave, así que pensé en ofrecerlo a la comunidad para obtener algunos consejos.
De acuerdo con los principios de una arquitectura RESTful, quiero presentar una API reconocible, por lo que apoyaré los diversos verbos HTTP de la manera más completa posible. Mi dificultad viene con la elección de la representación de esos recursos. Verá, sería fácil para mí crear mi propia API que cubra cómo se presentan los resultados de búsqueda y cómo se proporcionan los enlaces a otros recursos, pero esto sería exclusivo de mi aplicación.
He leído sobre el Protocolo de publicación Atom ( RFC 5023 ) y cómo OData promueve su uso, pero parece agregar un nivel adicional de abstracción sobre lo que es (actualmente) una API bastante simple.
Entonces mi pregunta es, ¿cuándo debería un desarrollador seleccionar AtomPub como su elección de representación, si es que lo hace? Y si no, ¿cuál es el enfoque recomendado actual?
fuente
Respuestas:
Después de investigar bastante sobre esto, aquí están mis hallazgos:
Parece que hay 3 formatos y enfoques principales: AtomPub, OData y HAL. He resumido la investigación para cada uno a continuación.
AtomPub
OData
Pro: proporciona una buena estructura de consulta URI
Con: introduce un marco completo (esencialmente reemplaza a Dropwizard)
HAL
Entonces, ¿cuándo debo usar AtomPub?
De lo anterior, debe elegir AtomPub si está satisfecho con la complejidad adicional y desea utilizar bibliotecas estándar para sus clientes. Este probablemente sería el caso si está ejecutando un repositorio de documentos de gran tamaño.
He puesto más detalles (que está fuera del alcance de esta pregunta) en un artículo reciente del blog que podría ser de ayuda para otros.
fuente