Gestionar Versiones de Api Rest

Iniciado por 50l3r, 17 Septiembre 2015, 23:46 PM

0 Miembros y 1 Visitante están viendo este tema.

50l3r

Buenas noches a todos,

Hace mucho que no me paso por el foro, y me gustaría poder estar de vuelta para participar en otros temas y solventar alguna dudilla que me pueda salir por el camino.

Estoy desarrollando un servicio para gestionar CRUD por medio de una api rest. Lo que busco es que programadores iniciados u otros que no quieran toparse con las altas/bajas/modificaciones/listados de sus proyectos, creen su usuario en mi plataforma y por medio de una librería puedan gestionar toda su información (Todo esto muy resumido).

Pegándome una ducha estaba pensado en que ocurriría si a nivel de api tuviera que modificar cualquier tipo de parámetro o funcionalidad, una vez ya estuviera desplegado el proyecto y con usuarios activos.

¿Debería crear varias versiones de la misma api o simplemente facilitar la nueva librería? En ese caso... ¿No seria un poco coñazo para los usuarios que ya terminaron su proyecto, el tener que modificar obligatoriamente el código para que les vuelva a funcionar de nuevo?

En si la parte de que los usuarios tengan que buscarse la vida no la contemplo, así que entiendo que haya otras maneras de gestionar los desarrollos bajo apis.

Dadme vuestra opinión ;)

MinusFour

La pregunta es, ¿Estás dispuesto a mantener dos versiones de API? ¿Esta nueva API invalida el funcionamiento de tu versión anterior? Si sigues reglas semánticas para tus versiones entonces puedes ofrecer tus dos API con una URLs base diferente que siga la versión mayor. Por ejemplo:

Api v1.x.x
http://tudominio.com/v1

Api v2.x.x
http://tudominio.com/v2

Hay varias empresas que hacen esto, imgur por ejemplo.

50l3r

Cita de: MinusFour en 18 Septiembre 2015, 00:00 AM
La pregunta es, ¿Estás dispuesto a mantener dos versiones de API? ¿Esta nueva API invalida el funcionamiento de tu versión anterior? Si sigues reglas semánticas para tus versiones entonces puedes ofrecer tus dos API con una URLs base diferente que siga la versión mayor. Por ejemplo:

Api v1.x.x
http://tudominio.com/v1

Api v2.x.x
http://tudominio.com/v2

Hay varias empresas que hacen esto, imgur por ejemplo.

¿Entiendo que si no variara las urls, parametros y resultados, no habría ningún problema no?

La principal idea que tenia es la que comentas, dos versiones, aunque me parece un poco tedioso y una manera de duplicar código.

MinusFour

Cita de: 50l3r en 18 Septiembre 2015, 20:08 PM
¿Entiendo que si no variara las urls, parametros y resultados, no habría ningún problema no?

Realmente, son problemas muy especificos. Por ejemplo, si estas trabajando con una base de datos. Haces un cambio en el esquema de la base de datos e invalidas tu API anterior para trabajar con esta nueva base datos. Las única opciones que tienes son dejar la base de datos como esta y agregar una nueva, dejando dos bases de datos diferentes para cada API o simplemente invalidar la API anterior. Dos bases de datos diferentes puede ser un problema enorme también, sobre todo si quieres juntar alguna información de las dos bases de datos.

Si tu API anterior es insostenible entonces no te queda mas que forzar a tus usuarios a moverse a una nueva API.