Question

Nous développons une application qui a un client iPhone et un serveur Rails. Nous avons publié une première version et commence maintenant à travailler sur la version 1.1. Nous nous demandons s'il existe des outils (externes ou fournis par HostingRails) pour répondre à ces deux exigences de base: - Versions de développement / production d'une application Rails - Versions live simultanées de l'application (API versionnées) par exemple pour continuer à prendre en charge les anciennes versions de L'application client iPhone.

Une première approche à laquelle nous pensons actuellement serait de dupliquer l'application pour chaque version de l'API que nous voulons avoir, chacune d'elles étant référencée par une URL spécifique par exemple: myapp.com/v1 , myapp.com/v2... Toute cette pile serait elle-même dupliquée pour avoir une version en direct / de production, et une version de développement. Une fois testé, la version de développement serait commutée avec la version de production.

Que pensez-vous de cette approche ? Y a-t-il des outils qui permettent de gérer le cycle de vie de l'application? Rails a-t-il des fonctionnalités intégrées facilitant cela?

Merci

Était-ce utile?

La solution

La chose la plus simple serait simplement de garder votre API compatible en arrière, évitant ainsi la nécessité de maintenir deux versions de l'API, et si vous devez l'évoluer d'une manière qui casse la compatibilité en arrière, dépréciez l'ancienne API et lui donnez une véritable résiliation Date de sorte que vous ne le supportez pas à l'infini.

Si vous devez absolument emprunter cette route, lisez d'abord le billet de blog de Fowler sur le sujet (http://martinfowler.com/bliki/tolerantReader.html), puis regardez le service de noms de vos itinéraires API. Dans Rails, vous pourriez y parvenir en utilisant /application/endpoint Et votre nouvelle version à /application/v2/endpoint (Je suppose que vous ne pouvez pas changer facilement vos points de terminaison pour les anciens clients)

Je ne connais aucun outil qui prétend explicitement résoudre les problèmes que vous dites que vous souhaitez résoudre, mais je pense que cela a plus à voir avec les développeurs qui travaillent dur pour ne pas en avoir besoin que l'idée dans laquelle ils ne sont pas résolutifs dans Des rails.

Autres conseils

Avez-vous envisagé d'utiliser des sous-domaines ?: http://railscasts.com/episodes/221-subdomains-in-rails-3

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top