2015-01-31 3 views
2

내 안드로이드 애플 리케이션에서 JSON 데이터를 여러 REST API에 게시하고 구문 분석을 위해 JSON 데이터를 다시 가져와야합니다. GSON을 사용하여 데이터를 serialize/deserialize하고 싶습니다.각 REST JSON 요청 및 응답에 대해 하나의 클래스를 정의해야합니까?

각 REST API에는 서로 다른 입력/출력 필드가 있습니다. 각 API 요청 및 응답에 대한 데이터를 보유 할 별도의 클래스를 정의해야합니까?

public class API1RequestData{ 
    public String field1; 
    public String field2; 
} 

나는 내가 JSON 요청을 구성하기 위해 파이썬을 사용하고 있다면, 내가 클래스를 정의 할 필요가 없기 때문에, 사전 할 것,이 요청하고있다.

+0

은 'retrofit'을 살펴볼 수 있습니다. https://github.com/square/retrofit/blob/master/samples/github-client/src/main/java/com/example/retrofit/GitHubClient.java –

답변

2

나는 디자인을해야한다고 믿는다. (내가 할 수있을 때 다시 사용한다.) 이렇게하면 불필요한 데이터를 서버에 보내지 않아도됩니다. 당신이 데이터 소비에 대해 정말 고민하는 경우에

, 난 당신을 추천 :

  • 서버 (그들은 null 도착하면 바로 확인)에 null 값을 보내지 마십시오; 응답에 오류
  • 사용 integers, 대신 boolean 또는 string
  • 일부 데이터 (이하 "데이터 버전"의 일부 체크/타임 스탬프를 저장하고 확인)
  • 를 새로 고칠 경우에만 새로운 물건을 보내기 ...

모두 응용 프로그램에 무엇이 필요한지에 따라 다릅니다. 때로는 아무것도하지 않고 개발 속도를 늦추는 디자인 패턴을 추가 할 필요가 없습니다.

2

게시 및 가져 오기를위한 모든 기능을 가진 기본 클래스를 만든 다음 해당 클래스를 상속하고 클래스의 컬렉션 부분을 무시합니다. . 모든 요청의 일부는 인증, 요청 유형 및 요청 본문입니다. 모든 응답의 일부는 응답 유형, 권한 수준 및 데이터입니다. 데이터는 대부분의 상속 된 클래스에서 컬렉션이됩니다. 이 방법은 양쪽에서 직렬화 및 직렬화 해제에 잘 작동하며 기본 클래스를 사용하면 코드 유지 관리를 최소화 할 수 있습니다.

저는 여러 가지 이유로 여러 가지 다른 일을 해왔습니다. 어떤 작품이 좋든. 동일하게 구조화 된 요청이 있지만 그 이름이 다른 경우, 하나의 클래스를 만들고 컨텍스트에 의존하여 그 클래스가 무엇인지 파악하십시오. 요청이 다르게 구조화 된 경우 다른 클래스를 사용하십시오.

관련 문제