1
다음과 같은 클래스가 있습니다.매개 변수를 기반으로 REST에서 DTO의 속성을 제외하는 방법
public class MyDto {
private int id;
private String name;
private String address;
// getters and setters .....
}
아래와 같은 MS4J 서비스에서이 개체의 JSON을 반환합니다.
import javax.ws.rs.*;
import javax.ws.rs.core.Context;
import javax.ws.rs.core.Response;
import org.example.service.dto.MyDto;
import org.wso2.msf4j.Request;
@Path("/hello/1.[\\d]/version")
public class HelloService {
@GET
@Path("/{version}")
@Produces({"application/json"})
public Response hello(@PathParam("version") int version, @Context Request request) {
MyDto dtoObject = new MyDto(1, "TestObjName", "TestObjAddress");
if (version < 1) {
//return object without address
} else {
//return object with address
}
}
}
런타임시 버전을 기준으로 Java 클래스에서 속성을 제외해야합니다. 즉. 주소가없는 버전> 1 객체 인 경우 else 속성과 함께 객체.
주소 필드에 null을 설정하는 것은 옵션이 아닙니다. 필자는 JacksonView와 JacksonFilter를 사용하여이 작업을 시도했지만 아직이 시나리오에 맞지 않았습니다.
이 문제를 해결하기위한 아이디어 나 샘플 코드는 무엇입니까?
당신은 속성을 무시하도록 적절한 주석을MyDto
의 서브 클래스를 생성 할 수 있습니다