Salesforce REST API – HTTP 메서드 정리

molamola·2025년 5월 12일

Salesforce

목록 보기
9/10

Salesforce에서는 REST API를 통해 오브젝트를 생성, 조회, 수정, 삭제하는 다양한 HTTP 메서드를 제공합니다.
또한 Upsert라는 매우 강력한 기능도 함께 지원되며, 외부 시스템과의 연동에 유용하게 사용됩니다.


✅ 1. GET – 데이터 조회

항목설명
목적오브젝트 또는 레코드의 데이터를 조회할 때 사용
예시 1/sobjects/Account/001Hu00000ABC123 → 특정 Account 조회
예시 2/query?q=SELECT+Name+FROM+Account → SOQL 쿼리 실행
응답JSON 형식의 레코드 정보 반환

✅ 2. POST – 레코드 생성

항목설명
목적새 레코드 생성
예시/sobjects/Account

Body:

{
  "Name": "New Company"
}

| 응답 | 생성된 레코드 ID 반환 |

✅ 3. PATCH – 레코드 수정 & Upsert

🔹 기본 사용 (수정)

항목설명
목적기존 레코드의 일부 필드만 수정
예시/sobjects/Account/001Hu00000ABC123
특징전체가 아닌 일부 필드만 전송 가능 (PATCHPUT보다 유연함)

🔹 Upsert (존재하면 수정, 없으면 생성)

PATCH 요청에 External ID 필드 기반 경로를 사용하면 Upsert가 동작합니다.

예시
PATCH /services/data/v58.0/sobjects/Order__c/External_Order_Id__c/ORD-001
{
  "Status__c": "Confirmed",
  "AccountId": "001Hu00000XXXXXX"
}
  • External_Order_Id__c = 'ORD-001'인 레코드가 있으면 수정
  • 없으면 새로 생성

❗ Upsert 시 주의사항: External ID 필드 필수

Upsert 시 경로에 사용되는 필드는 반드시 External ID로 지정된 필드여야 합니다.

✅ External ID란?

  • Salesforce가 레코드를 식별하기 위해 사용하는 필드
  • 오브젝트 설정에서 필드 생성 또는 수정 시 체크 가능
  • Text, Number, Email 타입만 가능

✅ 사용 가능한 필드 타입

타입External ID 지정 가능
Text
Number
Email
Lookup, Picklist, Date 등

❌ 일반 필드로는 Upsert 불가

예:

PATCH /sobjects/Order__c/OrderNumber__c/ORD001

→ ❌ 실패 (OrderNumber__c가 External ID가 아니면 사용 불가)


✅ 4. DELETE – 레코드 삭제

항목설명
목적레코드 삭제
예시/sobjects/Account/001Hu00000ABC123
응답상태 코드 204 (No Content) 반환

✅ 5. PUT – 전체 덮어쓰기 (잘 안 씀)

항목설명
목적전체 레코드 교체
Salesforce에서는거의 사용되지 않음. 대부분 PATCH로 처리

✅ 기타 기능

기능경로
SOQL 쿼리 실행/query?q=SELECT+Name+FROM+Account
SOSL 검색/search?q=FIND+{John}
오브젝트 정보 조회/sobjects/Account/describe
오브젝트 목록/sobjects

🔐 인증 방식 요약

방식설명
OAuth 2.0 Authorization Code사용자 로그인 기반
OAuth 2.0 Client Credentials백엔드 시스템 간 통신용
Username-Password Flow테스트/비추천 (보안상 취약)

📌 전체 요약표

메서드기능특징
GET조회쿼리 또는 ID 기반 조회
POST생성새 레코드 삽입
PATCH수정 / Upsert일부 필드 수정 / External ID 기반 Upsert
DELETE삭제레코드 제거
PUT전체 수정거의 안 씀

🧠 정리

  • PATCH + External ID 경로를 사용하면 Upsert 가능
  • 일반 필드는 Upsert에 사용할 수 없음
  • External ID는 반드시 Text / Number / Email 필드에 직접 지정해야 함
  • API 통합 시 외부 시스템의 고유 ID를 External ID로 맞추는 것이 매우 중요

0개의 댓글