json 및 xml로 변환하려는 일부 중요한 도메인 객체가 있습니다. 이 작업을 수행하기 위해 봄보기 해상도를 사용하고 있지만 그 점 옆에 있습니다.잭슨과 JaxB 직렬화로 내 RESTful 웹 서비스를 설계하는 방법
xml/json으로 변환해야하는 필드를 지정하기 위해 도메인 객체에 주석을 추가하고 싶습니다.
뭔가
@XmlRootElement
public class SensitiveDomainObject {
...
public String getPassword() {...}
@XmlAttribute
@JsonValue
public String getAccountName() {...}
@XmlAttribute
@JsonValue
public String getGoldMemberStatus() {...}
}
처럼 내가 원하는 getAccountName()와 getGoldMemberStatus()는 JSON과 XML로 직렬화 할 수 있지만하려면 getPassword는 직렬화되지 않을 수 있습니다. 내가 원하지 않는 무엇
는 JSON과 하나가 표준으로 다른 방법으로 다른 방법을 마크 업 할 필요가있는 경우 그 혼란수록 XML에 대한
1) 별도의 '주석 배치 전략'입니다.
2) 명시 적으로 필드를 무시해야합니다. 일부 프로그래머가 미래에 와서 예를 들어 @JsonIgnore 주석을 포함하지 않고 새로 민감한 필드를 추가하면 갑자기 민감한 필드가 공유되기 때문입니다.
3) getPassword()와 같은 메소드를 private으로 설정해야합니다. 나는 여전히 내부적으로 getPassword()를 호출 할 수 있기를 원한다.
누구든지이 작업을 했습니까?
편집은 본질적으로 비즈니스 로직 계층에 주석을 명시 적으로 DTO들과 내가 함께 실행 한 디자인을 보여주는 IBM에서 사진을 포함. 프리젠 테이션 레이어는 들어오는 URL을 기반으로 요청하고 제공 할 DTO를 파악합니다.
대안을 테스트 한 후 완전히 동의하고 제안한 경로를 따라갔습니다. 또한, 나머지 API에서는 응답에 도메인 개체 정보뿐만 아니라 관련 도메인 개체 및 기타 정보에 대한 액세스 URL도 포함되도록하고 있습니다.원래의 도메인 객체를 깨끗하고 일관되게 유지하려면 제안을 따르고 명시적인 DTO를 만드는 것이 더 좋습니다. –