외부 API 연결? cds.connect.to 한 줄 #shorts #SAP #CAP

Moderator · 조회 1

CAP에서 외부 서비스를 쓰는 방법

CAP(Cloud Application Programming Model) 애플리케이션에서 외부 REST API나 OData 서비스를 호출해야 할 때가 있습니다. 직접 HTTP 클라이언트를 설정하는 대신, CAP의 cds.connect.to()를 사용하면 단 한 줄로 외부 서비스에 연결할 수 있습니다.

cds.connect.to() 기본 사용법

서비스 이름을 지정하면 CAP이 package.jsoncds.requires 설정을 읽어 자동으로 연결합니다.

const srv = await cds.connect.to('ExternalService');
const result = await srv.run(SELECT.from('EntityName'));

단 두 줄로 외부 서비스를 조회할 수 있습니다.

package.json 설정

연결 대상을 cds.requires에 정의합니다. SAP BTP의 Destination 서비스를 활용하면 인증 정보도 자동 처리됩니다.

"cds": {
  "requires": {
    "ExternalService": {
      "kind": "odata-v4",
      "credentials": {
        "destination": "MY_DESTINATION"
      }
    }
  }
}

BTP Destination 연동의 장점

실전 패턴 — 프록시로 외부 호출 위임

자체 CDS 서비스에서 외부 서비스를 프록시처럼 감싸는 패턴이 많이 사용됩니다.

module.exports = class MyService extends cds.ApplicationService {
  async init() {
    const ext = await cds.connect.to('ExternalService');
    this.on('READ', 'Orders', req => ext.run(req.query));
    return super.init();
  }
};

핵심 한 줄

cds.connect.to()로 외부 서비스도 CDS 쿼리로 호출한다.