Salesforce Platform API 알아보기

cherryjenny·2024년 5월 7일

사용자에게 "API Enabled" permission이 있어야 접근 가능함!
또한 SOAP API login() 을 제외한 모든 API call에는 authentication이 필요하다.

API의 목적

  • 데이터를 조작하거나 데이터 변경사항을 적용할 수 있도록 하는 것.
    to let you manipulate your Salesforce data or subscribe to data changes
  • 페이지 레이아웃을 사용자 정의하거나 사용자 정의개발 도구를 구축하는 작업 가능!
    let you do things like customize page layouts or build custom development tools

Salesforce API 종류

REST API

RSETful 원칙을 기반으로 하는 간단하고 강력한 웹 서비스. XML과 JSON을 지원한다. request, response가 가벼운 프레임워크를 사용하기 때문에 모바일이나 웹 개발에 활용 추천!

  • CRUD records
  • 데이터 검색 또는 쿼리
  • 개체 메타데이터 검색
  • 조직의 제한 정보에 액세스

SOAP API

WSDL(Web Services Descriotion Laguage)파일을 사용하여 parameter를 엄격히 정의한다. SOAP API의 대부분의 기능은 REST API를 통해서도 사용할 수 있다. 서버 간 통합을 위해 사용하는 것을 추천!

Bulk API

Bulk API는 많은 양의 데이터를 한 번에 로드하고 쿼리하기 위한 RESTful API이다. 비동기로 이뤄지기 때문에 response를 나중에 확인할 수 있다. 처음으로 org에 데이터를 로드하는 등 많은 record가 포함된 작업을 수행할 때 적합하다.

Pub/Sub API

외부 시스템을 trigger나 이벤트에 실시간으로 반영하고자 할 때 사용한다. baradcast data나 custom notification 채널을 구독하는 방식이기 때문에 request를 줄일 수 있다는 장점이 있다. 변경사항을 자주 poll해야야 하는 경우 적합하다.


API limit

익숙하듯이, multitenant 환경에 공유되고 있는 리소스에 영향을 주지 않기 위해 api 호출에도 제한이 있다. 각 제한은 조직 유형이나 라이센스에 따라 다르기도 하다! 호출 수를 초과하는 경우 알림을 주고 싶다면 Setup에서 API Usage NotificationsAPI Usage Notifications를 선택하면 된다.

  1. timeout limits : 단일 호출 실행이 허용되는 시간 제한
  2. concurrent request limits : 한번에 실행되는 장기 실행 호출 수 제한
  3. total request allocations : 24시간 동안 호출된 api수 제한

남은 호출 수 확인하는 방법

  • From Setup, enter System Overview
  • response body (in <type\>API REQUESTS</type\>) for SOAP APIs.
  • The /limits call in the REST API.

유형별 API 사용 예시

REST API를 사용하는 경우

REST API를 기반으로 하는 웹 서비스 인터페이스를 제공한다. 통합과 개발이 쉽다는 장점이 있으며, 모바일 애플리케이션과 웹 프로젝트에 사용할 수 있다. REST API를 기반으로 하는 Salesforce REST API를 용도에 맞게 활용하면 된다. (아래 설명)

list view나 action, dependente picklist등을 포함한 CRUD하는 UI를 개발할 때는 User Interface API가 적합하다. B2B Commerce, CMS managed content, Experience Cloud sites, and Chatter등엔 Connect REST API가 적합하다.

SOAP API를 사용하는 경우

SOAP API는 Salesforce와 상호 작용하기 위한 SOAP 기반 웹 서비스 인터페이스를 제공한다. CRUD 가능, 검색도 가능. SOAP API를 사용하여 ERP등과 Salesforce org를 통합하거나, 회사 포털에 실시간 판매 및 지원정보를 제공할 수 있다.

Connect REST API를 사용하는 경우

Connect REST API는 B2B Commerce, CMS 관리 콘텐츠, Experience Cloud 사이트, 파일, 알림, 주제 등에 대한 액세스를 제공한다.

User Interface API를 사용하는 경우

Android, iOS 및 모바일 웹을 구축하기 위해 사용한다. record, list view, actions, favorites 등의 UI를 구축할 때 사용한다. single response에 metadata를 받을 수 있고, 변경이 있어도 모두 반영된다. 또한 layout, picklist, field-level security, or sharing 등의 설정값이 모두 반영 된다.

Analytics API를 사용하는 경우

Datasets, lenses, dashboards와 같은 분석과 관련된 asset에 접근할 때 사용한다. Analytics Platform에 직접 쿼리를 보내서 원하는대로 dataset을 정제할 수 있다.

Bulk API를 사용하는 경우

대규모 data set을 로드하거나 삭제할 때 최적화되어있는 API. batch를 돌려서 많은 레코드를 비동기적으로 관리하기 때문에 실시간에는 약한 편. 반면 SOAP API는 실시간으로 업데이트가 필요할 때 사용할 수 있지만 많은 레코드를 한번에 처리할 땐 효율이 떨어짐. Bulk API를 활용하는 가장 쉬운 방법은 CSV파일을 Data Loader로 처리하도록 활성화 하는 것!

Metadata API를 사용하는 경우

샌드박스 또는 test org 의 변경사항을 production 환경에 마이그레이션 할 때 사용한다. 데이터 자체가 아닌 메타데이터 모델을 관리할 수 있는 도구를 구축하기 위한 것!

Apex REST API를 사용하는 경우

REST를 활용하여 Apex class와 method를 외부 애플리케이션에서 사용하고 싶을 때 사용

Apex SOAP API를 사용하는 경우

SOAP를 활용하여 Apex class와 method를 외부 애플리케이션에서 사용하고 싶을 때 사용

Tooling API를 사용하는 경우

기존 플랫폼 도구에 기능을 추가하거나 특정 서비스를 위한 특수 개발 도구를 구축할 수 있다. SOQL기능을 사용하여 대화형 애플리케이션 개발이 가능하다.

GraphQl API를 사용하는 경우

클라이언트 쪽에 필요한 데이터만 반환하고 싶은 경우에 사용. field selection, resource aggregation, schema introsepection 등의 REST API 문제점을 보완한 API라고 보면 된다.

profile
세일즈포스 개발..로그..

0개의 댓글