2011-05-15 4 views
1

iPhone 클라이언트와 Rails 서버가있는 애플리케이션을 개발 중입니다. 우리는 첫 번째 버전을 발표했으며, 이제 1.1 버전에서 작업하기 시작했습니다. 두 가지 기본 요구 사항을 해결하기위한 도구 (외부 또는 hostingrails 제공)가 있는지 궁금합니다. - 레일스 응용 프로그램의 개발/프로덕션 버전 - 예를 들어 지원을 계속 유지하기위한 응용 프로그램의 동시 라이브 버전 (버전이 지정된 API) 이전 버전의 클라이언트 애플리케이션 iPhoneRails 애플리케이션 서버의 라이프 사이클 관리

우리가 지금 생각하고있는 첫 번째 방법은 각각의 특정 URL에 의해 참조되는 각 API 버전에 대한 응용 프로그램을 복제하는 것입니다. 예 : myapp.com/v1, myapp.com/v2. .. 이 전체 스택 자체는 라이브/프로덕션 버전과 개발 용 버전을 갖기 위해 복제됩니다. 테스트가 완료되면 개발 버전이 프로덕션 버전으로 전환됩니다.

이 접근 방식에 대해 어떻게 생각합니까? 응용 프로그램의 수명주기를 관리 할 수있는 도구가 있습니까? Rails에는 이러한 기능을 지원하는 기본 제공 기능이 있습니까?

감사

답변

2

가장 간단한 것은 그냥 따라서 API의 두 가지 버전을 유지하는 필요성을 제거, 이전 버전과 호환되는 당신의 API를 유지하기 위해, 그리고 당신은 이전 버전과의 호환성을 깨는 방식으로 진화해야하는 경우, 비추천 것 이전 API를 사용하고 실제로 종료 날짜를 지정하면 무한정 지원되지 않습니다.

이 길을 꼭 가야하는 경우 먼저 Fowler의 블로그 게시물 (http://martinfowler.com/bliki/TolerantReader.html)을 읽고 API 경로의 네임 스페이스를 살펴보십시오. 레일에서는 네임 스페이스 경로와 컨트롤러를 사용하여이 작업을 수행 할 수 있습니다, 그래서 당신은

I (나는 당신이 쉽게 기존 고객에 대한 엔드 포인트를 변경할 수 있으리라 믿고있어) /application/endpoint에서 원래 API와 /application/v2/endpoint에서 새로운 버전이있을 수 있습니다 귀하가 해결하고자하는 문제를 명시 적으로 해결한다고 주장하는 도구는 모르지만, 레일스에서 ​​해결할 수 없다는 생각보다는 개발자가 필요로하지 않는 것을 더 많이 사용한다고 생각합니다. .

관련 문제