References
- API Mashup 이란
- "여러 API를 합쳐서 만든 기능 세트" 라고 생각하면 된다.
- API Chaining : 두개 이상의 API 를 병렬 혹은 직렬로 연결하여 연결 순서대로 호출, 선행 API 의 Response 값을 후행 API의 Request 값으로 사용 가능하다.
- API Aggregation : 병렬 구성한 API에서 Aggregation 단계를 사용한다, 집계된 API 의 응답을 설정 또는 다음 단계에서 수행할 값을 설정한다.
- 여러 외부 콜아웃 및 응답 집계를 포함하는 간단한 오케스트레이션 의 경우 API Mashup 기능을 사용하는 편이 좋지만, 복잡한 조건부 분기, 반복 요구 사항 같은 경우 IS 서비스를 이용하는 것이 좋다.
- **Aggregation 기능 추가 스터디 필요**
- Mashup 기능 테스트 API 생성 (예시)
- 생성 후 가끔 API 명이 안보이는 버그가 있음 (fix 7 기준)


- STEP01 : number1 을 받아서 Response로 넘기는 API (DEMO_MASHUP_STEP_01 생성)
- STEP02 : number2 를 받아서 Response로 넘기는 API (DEMO_MASHUP_STEP_02 생성)
- STEP03 : number1 과 number2를 받아서 addInts 하는 서비스 (DEMO_MASHUP_STEP_03 생성)
- Mashup API : DEMO_MASHUP_API_01 로 생성 ( Server 설정과 Resource Path 설정은 의미 X -> Mashup 기능으로 호출 될 것이기 때문에)
- STEP01 서비스
- 호출 확인을 위해 Response에 Message1 하드코딩

- STEP02 서비스
- 호출 확인을 위해 Response에 Message2 하드코딩

- STEP03 서비스
- 전달 받은 Message1,2 매핑, number1와 number2를 덧셈 하여 OUTPUT 설정

- Mashup 설정
- STEP01 설정

- Custom Header 에 Content-type : application/json (JSON Path 사용을 위해)
- Mashup API 호출 시 요청 파라미터 매핑 (number1)
- STEP02 설정

- Custom Header 에 Content-type : application/json (JSON Path 사용을 위해)
- Mashup API 호출 시 요청 파라미터 매핑 (number2)
- STEP03 설정

- STEP01과 STEP02 의 Response를 STEP03 의 Request Parameter 와 매핑
- number1 : STEP01 의 Response Query
- number2 : STEP02 의 Response Query
- Message1 : STEP01 의 Response Payload (JSONPath)
- Message2 : STEP02 의 Response Payload (JSONPath)
- 호출 테스트
- STEP03 API 호출

- Message1, Message2 값이 없음 ( STEP01와 STEP02 가 호출되지 않음 )
- Mashup API 호출

- Message 값을 통해 STEP01 API 와 STEP02 API가 호출 되었음을 확인