2014-12-23 3 views
0

나는이 버전의 문제의 주위에 내 머리를 정리하려고, 나는 약간의 도움을 부탁드립니다 :버전의 서버 응답

이러한 요청 JSON에서 만들어진 가정

  • 이 서버를 말 엔드 포인트에 대한/X, 안드로이드 클라이언트 응용 프로그램 버전 1에서 [필드 A를 메시지와 B
  • 를 반환, 당신은 당신이 응답을 얻을 때 필드 A와 B를 얻을 것으로 기대/X

A로부터 길면 Android 클라이언트 앱 버전 2에서는 더 이상 필드 B가 필요하지 않습니다.

일부 사용자에게는 Android 클라이언트 앱 버전 1이 계속 표시되므로 응답에서 필드 B를 가져올 수 없습니다. 레거시 필드를 사용하여 최신 안드로이드 클라이언트에 대한 응답을 복잡하게합니다.


이러한 응답의 버전을 확인하는 좋은 방법은 무엇입니까?

  • 핸들 서버의 버전과는
  • 이 경우에 도움을 버전 protobuf 않습니다 (스키마의 요청 버전 클라이언트 요청에 또는에 따라) 안드로이드 클라이언트 버전에 따라 적절한 응답을 보내? 우리는 항상 새로운 응답을 위해 기존의 B 매개 변수를 보내야하기 때문에,
  • 다른 제안 사항이 있습니까?
+0

내 앱 중 하나에 대해 비슷한 우려가있었습니다. 나는 첫 번째 "서버에서 버전 관리를 처리하고, 안드로이드 클라이언트 버전 (또는 클라이언트가 요청한 스키마의 요청 된 버전에 따라)에 따라 적절한 응답을 보냅니다." – Rohit5k2

답변

0

서버에서 핸들 버전, 적절한 응답 안드로이드 클라이언트 버전에 따라 전송 (또는 스키마의 요청 버전에 따라 그 클라이언트 요청) 나 '

d 서버에서 버전 관리를 처리합니다. 당신은 미래 버전이 소개 할 다른 변화가 무엇인지 모른다.

이 경우 protobuf 버전 관리가 도움이됩니까?

글쎄, 다소. 클라이언트가 매개 변수 A를 인식하고 B가 아니라면 문제없이 A를 읽을 수 있습니다. 양쪽 모두를 인식하는 클라이언트는 양쪽 모두를 읽을 수 있습니다. 두 경우 모두 클라이언트의 동작이 정확하며 유일한 문제는 중복 매개 변수입니다 (성능에 해를 줄 수 있지만 정확하지는 않음).

다른 제안 사항이 있습니까?

서버가 버전 # 1과 버전 # 2를 구별하고 적절한 매개 변수를 보내도록하십시오. 각 API 버전에 대해 별도의 API를 설정할 수도 있습니다. 따라서 V1 클라이언트는 www.myapi.com/api/apiv1에 연결하고 V2는 www.myapi.com/api/apiv2 또는 이와 유사한 항목에 연결합니다.