Make Client
Make Client
Make에는 이미 통합이 없는 API 서비스나 애플리케이션에 직접 요청을 보낼 수 있는 HTTP 클라이언트가 있어요. 이 모듈이 바로 Make Client죠. 시나리오 안에서 HTTP 요청을 만들고 서버로 보내면, 응답 번들이 출력으로 돌아오는데, 그걸 다음 모듈에서 그대로 매핑해서 쓸 수 있어요. 연결 전용 커넥터가 아직 없는 곳에 붙고 싶을 때, 그러니까 REST API든 웹훅이든 '그냥 HTTP로 때리면 되는' 상황에서 이 모듈이 가장 유연한 선택이 됩니다.
여기서 핵심은 '어떻게 인증할지'와 '요청을 어떻게 구성할지'예요. Make Client 모듈은 인증이 필요 없는 요청도, 필요 없는 요청도 모두 지원하는데, 인증이 필요하다면 대상 서비스의 API 문서에서 요구하는 방식(API key, Basic Auth, OAuth 2.0)을 골라서 쓰면 돼요. 보안을 위해 인증 정보는 헤더나 쿼리 파라미터로 직접 넘기지 말고, 전용 Credentials 필드에 담아두는 걸 권장합니다.
출처: 문서 (원본 URL
docs.make.com/en/http/client는 301로 다른 주제의 페이지로 리다이렉트되어, 실제 내용이 담긴 공식 페이지로 대체)
본문
HTTP 클라이언트 모듈 개요
계정의 HTTP 앱에는 시나리오를 만드는 데 쓸 수 있는 모듈이 몇 가지 있어요.
- Make a request — 어떤 서버로든 HTTP 요청을 보냅니다. 가장 범용적인 모듈이에요.
- Download a file — 지정된 URL에서 파일을 다운로드합니다. 다운로드한 파일(파일 데이터)은 다른 모듈에서 사용할 수 있어요.
- Resolve URL — 모든 리다이렉트를 따라가서 최종적으로 결정된 URL을 돌려줍니다.
이 모듈들은 인증이 필요 없는 요청과 인증이 필요한 요청을 모두 지원해요. 인증이 필요하다면 대상 서비스의 API 문서에 따라 다음 방식 중 하나를 선택합니다.
- Basic Auth — 사용자 이름과 비밀번호가 필요한 경우
- API key — API 키(토큰)가 필요한 경우
- OAuth 2.0 — 클라이언트 자격 증명(Client ID / Client Secret)이 필요한 경우
보안상의 이유로 인증 정보는 헤더나 쿼리 파라미터로 직접 넘기는 대신 전용 Credentials 필드에 정의하세요. 이렇게 하면 요청에서 키가 노출되지 않고, 인증 자격 증명을 한곳에서 관리할 수 있으며, 키 교체도 쉽고 안전하게 할 수 있어요.
Make a request 표준 설정
Authentication type — 인증 방식을 선택해요.
| 값 | 설명 |
|---|---|
| No authentication | 자격 증명이 필요 없는 요청(예: 웹 스크래핑)에 사용 |
| API key | 서비스 제공자가 API 키(토큰)를 요구할 때 사용 |
| Basic Auth | 서비스 제공자가 사용자 이름과 비밀번호를 요구할 때 사용 |
| OAuth 2.0 | 서비스 제공자가 클라이언트 자격 증명(Client ID / Client Secret)을 요구할 때 사용 |
Credentials — 선택한 인증 방식에 맞는 자격 증명을 추가해요. (API key·Basic Auth는 keychain을, OAuth 2.0은 connection을 만들면 돼요.)
URL — API 엔드포인트(기본 URL 포함), 웹훅, 또는 웹페이지의 URL을 https://로 시작하게 입력합니다.
https://api.example-service.com/v1/users
https://your-company.com/webhooks/listener
https://www.global-news.com/
Make는 보안상 HTTPS 연결만 허용하며, 검증되지 않은(자체 서명) 인증서를 사용하는 연결은 거부돼요.
Method — 사용할 HTTP 메서드를 선택해요.
| 메서드 | 용도 |
|---|---|
| GET | 항목의 정보를 검색 |
| HEAD | 응답 본문 없이 상태 줄과 헤더만 검색 |
| POST | 새 항목 생성 |
| PUT | 기존 항목 업데이트/대체 |
| PATCH | 항목을 부분적으로 업데이트 |
| DELETE | 항목 삭제 |
| OPTIONS | 지정된 리소스/서버에 대해 사용 가능한 작업 정보 요청 |
Headers — 요청에 추가적인 메타데이터나 지시를 위한 헤더를 추가해요. 예를 들어 클라이언트를 식별하는 User-Agent, 캐싱 지시를 위한 Cache-Control 같은 것들이죠. 인증 자격 증명과 content type은 전용 필드가 있으니 이 필드로 넣을 필요는 없어요.
Query parameters — 요청을 지정하거나 커스터마이즈할 키-값 쌍을 입력해요. 주로 GET과 DELETE 메서드에서 쓰이며, 서비스의 API 문서에서 확인할 수 있어요.
Body — HTTP body는 요청에서 전송되는 데이터를 담아요. Body content type을 선택합니다.
| Body content type | 설명 |
|---|---|
| application/json | 데이터를 JSON 형식으로 입력. JSON 문자열로 직접 입력하거나 데이터 구조를 사용 |
| multipart/form-data (supports file uploads) | 키-값 쌍으로 파일과 폼 데이터를 입력. 파일 업로드에 사용 |
| application/x-www-form-urlencoded | 키-값 쌍으로 폼 필드를 URL 스타일로 인코딩해 입력 |
| Custom | 사용자 지정 content type(예: text/plain)으로 입력 |
application/x-www-form-urlencoded 방식으로 보내면 요청 body는 하나의 쿼리 문자열이 돼요.
field1=value1&field2=value2
Parse response — yes를 선택하면 출력 데이터를 구조화해서 모든 매핑 가능한 항목을 쉽게 매핑할 수 있어요. 매핑 가능한 항목은 모듈을 한 번 실행한 뒤 사용할 수 있습니다.
페이징 (Pagination)
대용량 데이터셋을 더 작고 관리 가능한 단위로 나눠서 가져올 수 있어요. 대상 서비스의 API 문서를 통해 페이징을 지원하는지, 어떤 타입을 쓰는지 확인한 뒤 구성합니다.
- Offset based —
offset과limit두 파라미터를 사용. offset은 데이터셋의 시작 지점, limit은 페이지당 최대 레코드 수.
?offset=10&limit=10
- Page based — 현재 페이지 번호 값 + 1과 때로는 페이지 한도를 사용해 가져올 페이지를 정의.
?page=3&limit=20
- URL or link based — 서버가 다음 페이지를 정의한 미리 만들어진 URL을 제공.
- Token or cursor based — 현재 페이지의 마지막 항목 ID를 정의하거나 다음 페이지의 시작점을 매핑.
?cursor=zwjkyxi3mx0
Limit — 반환할 최대 항목 수. 1에서 10000 사이의 숫자여야 해요. 이 필드를 쓰면 Make의 기본 한도(3200)를 넘어 항목을 가져올 수도 있습니다.
고급 설정 (Advanced settings)
| 필드 | 설명 |
|---|---|
| Transport layer security (TLS) | API 보안 설정에 필요한 TLS 핸드셰이크 방식을 선택. Mutual TLS는 클라이언트와 서버가 모두 인증서로 인증하고, TLS는 서버만 인증서를 제시 |
| CA certificate (mutual TLS) | CA 인증서를 추가하는 keychain 생성 |
| Client identity (mutual TLS) | 키를 선택하거나 인증서와 개인 키를 추가 |
| Proxy | 네트워크가 중간 서버를 거쳐야 한다면 keychain 생성. host·port(1~65535)·username·password 구성 |
| Return error if HTTP request fails | 요청이 4xx 또는 5xx 오류를 반환하면 시나리오를 중단하려면 yes |
| Timeout | 응답 대기 최대 시간(초). 1~300 사이 숫자 |
| Allow redirects | HTTP 리다이렉트 응답을 자동으로 따르게 하려면 yes (최대 10회) |
| Share cookies with other HTTP modules | 다른 HTTP 모듈과 쿠키 공유를 활성화 |
| Request compressed content | 응답 데이터의 압축을 요청. Accept-Encoding 헤더 추가 |
리다이렉트(Allow redirects)를 켜면 각 상태 코드에 따라 요청을 어떻게 따르는지가 달라져요. 대표적으로 303(see other)은 원래 메서드가 무엇이든 항상 GET으로 바꿔서 새 위치에 요청하지만, 307/308 같은 코드는 원래 메서드와 body를 그대로 보존하며 리다이렉트합니다.