Output.java
public class Output {
private SimpleText simpleText;
private Carousel carousel;
public SimpleText getSimpleText() {
return simpleText;
}
public void setSimpleText(SimpleText simpleText) {
this.simpleText = simpleText;
}
public Carousel getCarousel() {
return carousel;
}
public void setCarousel(Carousel carousel) {
this.carousel = carousel;
}
}
위와 같은 형식으로 response를 리턴하였는데 오류가 발생했다.
simpleText와 carousel이 같은 output 안에 포함되어 있으면 유효하지 않은 응답값이라고 나온다.
Template.java
public class Template {
private List<Output> outputs;
public List<Output> getOutputs() {
return outputs;
}
public void setOutputs(List<Output> outputs) {
this.outputs = outputs;
}
}
template 안에 Output 리스트를 set 해야한다.
OutputText.java
public class OutputText extends Output{
private SimpleText simpleText;
public SimpleText getSimpleText() {
return simpleText;
}
public void setSimpleText(SimpleText simpleText) {
this.simpleText = simpleText;
}
}
OutputBasicCard.java
public class OutputBasicCard extends Output{
private Carousel carousel;
public Carousel getCarousel() {
return carousel;
}
public void setCarousel(Carousel carousel) {
this.carousel = carousel;
}
}
위와 같이 Output 클래스를 상속받아 하나의 setOutputs함수로 다양한 형태의 output을 받을 수 있게 하였다.
simpleText output response

basicCard output response

다양한 형태의 아웃풋을 반환할 수 있게 되었다.