외부 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.json의 cds.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 연동의 장점
- 인증 정보(OAuth, Basic Auth)를 코드에서 분리 관리
- 환경별(dev/prod) URL 전환이 설정 변경만으로 가능
- SAP Connectivity Service와 자동 연동
실전 패턴 — 프록시로 외부 호출 위임
자체 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 쿼리로 호출한다.