References




  • Callback 이란
    • call-after 함수 라고 함.
    • 함수가 끝나고 난 뒤에 실행되는 함수
    • 다른 함수의 인자로써 이용되는 함수.
    • 어떤 이벤트에 의해 호출 되어지는 함수.
    • 실행은 즉각적으로 실행되는 동기 식 콜백과, 나중에 발생하는 비동기 식 콜백으로 나뉜다.

  • Webhook 이란
    • 웹훅은 웹페이지 또는 웹 앱에서 발생하는 특정 이벤트 들을 커스텀 Callback 으로 변환해 주는 방법
    • 일반적인 API는 클라이언트가 서버를 호출하는 방식이다, 하지만 웹 훅의 경우 서버에서 특정 이벤트가 발생 햇을 때 클라이언트를 호출하는 방식이며 역방향 API 라고도 부른다.
    • 여기서 Callback URL 은 서버 측 특정 이벤트가 발생 했을 때 클라이언트의 어느 URL로 데이터를 보낼지 정해 놓은 주소라고 생각하면 된다.


  • Developer Portal 에서 웹훅
    • 특정 Event Type 에 따른 URL(API) 호출 설정 (Gateway)


  • 웹훅과 폴링의 차이
    • Polling : 주기적 호출 -> Event 확인
    • Webhook : Event 발생 시 Client 에 알림



  • webMethods API Gateway ( APIs with Callback (Webhooks (?) ))
    • API Gateway를 거치지 않는 Callback 방식
    • Enabler에서 바로 Client로 호출 한다

    • API Gateway를 거치는 호출 방식
    • API Gateway Callback Processor 에서 전달받은 callbackUrl 을 래핑한다, 래핑하여 Enabler로 전달
    • Enabler 에서 Gateway 주소로 래핑 된 Callback URL을 호출 (Gateway를 거치는 호출 방식)



cf) OAuth2.0 에서의 Callback URL 은 Redirection 되기 때문에 Redirect URL 와 혼용 되어 명칭.






  • API Callback Processor Settings (webMethods API Gateway)
    • Administration > General 탭에서 설정 가능
    • Process all API callback requests : 모든 콜백 요청 처리, 클라이언트에서 오는 모든 API 콜백 요청을 수락하고 이 요청을 기본 API로 라우팅 전에 자체 URL로 래핑 ( 체크가 없을 시 콜백 URL로 래핑 X), 해당 설정은 Gateway를 거친 콜백인지 아닌지를 결정하는 설정 (위 그림 참고)
    • Allow HTTPS access only : 콜백 요청 시 https 요청만 수신, callbackUrl 을 HTTPS 로 래핑
    • Process Only Allowed IPs requests & Trusted IP Addresses : 허용된 IPs 만 콜백 요청 처리





  • 표현 식 참고



  • API Gateway API 생성 설정
    • API 생성 (CALLBACK_TEST_01)

    • Query Test Resource Path 설정

    • Body Test Resource Path 설정


    • Header Test Resource Path 설정

  • 생성 시 문제점
    • API 생성 후 바로 Response Path 설정 시 Callback 이 생성이 안되는 오류 ( 제품 버그 인 듯 (Fix 7) ) -> 저장 후 Edit 하면 생성 가능
    • Knowledge Portal 에서 설정한 Resource Path 는 앞 슬래쉬 (/) 설정이 되어 있지만 그렇게 설정할 경우 callbackURL 이 호출이 안되는 문제가 있다 (500 Error) -> 뒷 슬래쉬 설정에는 정상 호출




  • API Enabler (Integration Server) 내부 서비스 설정
    • srvc, srvc_1 서비스 (Query, Body 확인)



    • srvc_2 서비스 (Header 확인)


    • Input / Output 세팅은 동일





  • 호출 결과 ( Gateway 의 API Calllback Processor 에 의한 url 래핑 결과 확인, 추가적인 callback 호출은 하지 않음)
    • Query 테스트

    • Body 테스트

    • Header 테스트