Lo que llama API REST individuales podría llamarse el conjunto particular de recursos o recursos de la API REST . También podría verlo como las funcionalidades de REST API . Como cualquier tipo de software, todo el paquete está versionado / actualizado, no funcionalidades o recursos únicos.
Su pregunta tendría sentido en el contexto donde los recursos del paquete REST API son modulares y, por lo tanto, potencialmente desarrollados y versionados por separado.
Entonces, por lo que veo, los principales inconvenientes de su convención de nomenclatura de localizador de recursos propuesta son:
- Para el usuario API , resultaría en localizadores de recursos mucho más complejos, menos predecibles, menos memorables y menos estables.
- Para los desarrolladores de módulos , ahora es más trabajo tener que lidiar con esta versión en su propio localizador de recursos.
- Los cambios en los localizadores de recursos se vuelven mucho más frecuentes, ya que hay múltiples módulos que se actualizan, por lo que los inconvenientes anteriores son exponenciales ...
Al crear una API, uno de sus objetivos principales es facilitar su uso ...
¿Podría encontrar una mejor manera de introducir un cambio importante o incluso versionar la API REST con quizás un encabezado HTTP?
Para saber un poco más sobre el enfoque de encabezados HTTP, vea otras respuestas a continuación y: https://www.troyhunt.com/your-api-versioning-is-wrong-which-is/
vnd
parte y la+
sintaxis del tipo: para indicar que este es un subtipo deapplication/json
tipo específico del proveedor . Esto es exactamente para lo que están diseñados los tipos de contenido. Su recurso está disponible en múltiples formatos. Le está pidiendo al cliente que elija qué formato quiere. Además, no hay ninguna razón por la cual las solicitudes de API no puedan usar la semántica de almacenamiento en caché HTTP estándar.La clave es que si versiona cada punto final por separado, debe poder implementar cada punto final por separado.
Las API generalmente tienen una versión porque todos los puntos finales están en la misma base de código y, por lo tanto, tienen dependencias compartidas y se implementan juntos.
Si no está actualizando la versión cuando realiza un cambio porque "Oh, estoy bastante seguro de que mi cambio no afecta eso", entonces se meterá en problemas cuando cometa un error.
Además, querrás tener v1 y v2 de tu API implementadas al mismo tiempo. Esto normalmente se realiza implementando cada versión en un servidor separado y enrutando el tráfico en consecuencia.
Si no tiene una única versión de API, esto se vuelve mucho más complejo.
fuente