2010-04-20 19 views
8

Estoy diseñando una API REST para una aplicación web. Quiero una versión clara de la API, para que la interfaz pueda cambiarse en el futuro sin romper los servicios existentes. Por lo tanto, en mi API v1.0, quiero identificarlo claramente como la API v1.0, dejándome la libertad de lanzar una versión v1.1 futura con cambios de última hora.¿Es una mala práctica poner un punto en una ruta de URI?

Mi pregunta es, sería un período en el componente de trazado de un URI de una mala práctica?

por ejemplo. ¿Hay alguna buena razón para no usar http://example.com/myapi/v1.0/services como URI para mi servicio?

Respuesta

10

colocando un punto en el URI está perfectamente bien. Poner un número de versión en un URI definitivamente no es una mejor práctica.

Here son mis razones y here es un buen artículo sobre el tema por alguien mucho más inteligente que yo.

+0

Gracias otra vez Darren. A través de su enlace, la respuesta de Shonzilla a esta pregunta: http://stackoverflow.com/questions/389169/best-practices-for-api-versioning me ha convencido de que el control de versiones es probablemente una mala idea. Una preocupación que tengo es si un cliente que no es navegador, p. un sitio web PHP que consuma mi servicio manejará una redirección http, si tuviera que usar ese enfoque para manejar los cambios de última hora? – saille

-1

Creo que es una buena idea. He visto varios servicios de descanso que hacen esto.

3

Es perfectamente aceptable utilizar un punto en una ruta de URI. También es válido según RFC 3986 section 2.3.

1

pienso diferente de los otros ... No creo que es una buena práctica para usarlo en la url.

En mi humilde opinión es mucho mejor si la versión de la cabecera Content-Type.

A modo de ejemplo, si está utilizando application/xml:

Content-Type: application/v1.0 + xml.

Utilizando el tipo de contenido, sino que también indica que el propio recurso se versiona. Aunque si lo usa en la url parece que está versionando el servicio (que no parece ser así), y si está cambiando el servicio en sí, probablemente cambie la url, por lo que no necesita la versión número.

EDIT: También se debe utilizar en la cabecera Accept, no sólo en el tipo de contenido.

+1

Mire más de cerca la pregunta y las respuestas. La mayoría de las respuestas se refieren al uso de un período en la URL, nada que ver con el control de versiones. Lo mencioné, pero no fue la pregunta original. –

+0

Aunque no fue la pregunta, agradezco su comentario; es una muy buena sugerencia. – saille

Cuestiones relacionadas