본문 바로가기
웹디자인 (HTML,JS)

n8n HTTP Request 노드로 효율적인 데이터 수집을 위한 페이징 설정

by 날으는물고기 2024. 12. 2.

n8n HTTP Request 노드로 효율적인 데이터 수집을 위한 페이징 설정

n8n의 HTTP Request 노드에서 페이징 옵션을 활용하는 방법입니다.

1. API의 페이징 방식 이해하기

사용하려는 API가 페이징을 어떻게 지원하는지 이해하는 것이 중요합니다. 일반적으로 API 문서에서 페이징에 대한 정보가 제공됩니다. 다음과 같은 사항을 확인해야 합니다.

  • 페이지 크기 제한: API가 한 번에 반환할 수 있는 최대 항목 수
  • 페이지 넘버 또는 오프셋: 각 요청에서 페이지 넘버 또는 데이터의 시작 지점을 설정하는 방법
  • 다음 페이지 URL: 응답에 다음 페이지의 URL이 포함되어 있는지 여부

2. 페이징 모드 설정

n8n의 HTTP Request 노드에서 페이징을 설정합니다.

  1. 노드 열기: HTTP Request 노드를 열고, API 요청에 필요한 URL, 메서드, 헤더 등을 설정합니다.
  2. Pagination Mode 활성화: 아래 단계에 따라 페이징을 설정합니다.
    • Node options에서 Add Option을 클릭하여 Pagination을 선택합니다.
    • Pagination Mode에서 페이징 모드를 선택합니다:
      • Off: 페이징 비활성화
      • Update a Parameter in Each Request: 요청마다 특정 매개변수를 업데이트하는 방식. 주로 page 또는 offset 파라미터를 사용하는 API에 적합합니다.
      • Response Contains Next URL: 응답에 다음 페이지의 URL이 포함되어 있는 경우. 이 모드는 API 응답의 특정 필드에서 다음 페이지의 URL을 추출하여 사용합니다.

3. Update a Parameter in Each Request 방식 사용하기

가장 일반적인 페이징 방식으로, 페이지 번호나 오프셋 값을 매번 증가시키며 데이터를 가져오는 방법입니다.

  1. Parameter Name: 페이지를 나타내는 파라미터 이름을 입력합니다. 일반적으로 page, offset, 또는 start와 같은 이름이 사용됩니다.
  2. Parameter Value: 페이징 값(페이지 번호 또는 오프셋)을 설정합니다. 예를 들어, {{$pageCount}}를 사용하면, 자동으로 페이지 번호가 증가합니다.
  3. Start Value: 페이징 시작 값을 설정합니다. 일반적으로 0 또는 1로 설정합니다.
  4. Limit Parameter Name: 요청당 반환할 항목 수를 설정할 수 있는 파라미터 이름을 입력합니다.
  5. Limit Value: 한 페이지에 반환될 항목 수를 설정합니다.

4. Response Contains Next URL 방식 사용하기

응답 데이터에 다음 페이지의 URL이 포함되어 있는 경우 이 모드를 사용합니다.

  1. Next URL Expression: 응답에서 다음 페이지의 URL을 찾기 위한 표현식을 입력합니다. 예를 들어, {{$response.body.next}}와 같이 설정합니다.
  2. Stop Condition: 더 이상 다음 페이지가 없을 때 페이징을 중지할 조건을 설정합니다.

5. 페이징 테스트 및 확인

모든 설정이 완료되면 노드를 실행하여 페이징이 제대로 작동하는지 확인합니다. API가 제공하는 데이터의 전체 페이지를 올바르게 가져오는지, 마지막 페이지에서 멈추는지 등을 점검합니다.

6. 실제 사용 예시

  • REST API로 여러 페이지에서 사용자 목록 가져오기
    • Update a Parameter in Each Request를 사용하여 page 파라미터를 매번 증가시킵니다.
    • Limit 파라미터를 사용하여 각 요청마다 10명의 사용자를 가져옵니다.

 

이렇게 설정된 HTTP Request 노드는 대규모 데이터를 페이징을 통해 효율적으로 수집할 수 있게 해줍니다. n8n의 HTTP Request 노드에서 offset 값을 처음에는 0으로 시작하고, 이후 요청에서 300씩 증가되게 설정하는 방법입니다.

1. 기본 설정

  • Method: GET (데이터를 조회하는 요청이라고 가정)
  • URL: 원하는 API의 엔드포인트를 입력합니다. 예를 들어, https://api.example.com/data.

2. 페이징 모드 설정

  • Pagination Mode: Update a Parameter in Each Request를 선택합니다.

3. 페이징 파라미터 설정

  • Parameter Name: offset으로 설정합니다. 이 파라미터는 API에서 오프셋을 지정하는데 사용됩니다.
  • Parameter Value: {{$parameterValue}}를 입력합니다. 이 변수는 각 요청마다 증가된 값을 사용합니다.
  • Start Value: 0으로 설정합니다. 첫 번째 요청에서 offset의 시작 값이 0이 되도록 합니다.
  • Increment Value: 300으로 설정합니다. 각 요청마다 offset 값이 300씩 증가되도록 합니다.

4. Limit 값 설정

  • Limit Parameter Name: limit으로 설정합니다. (API가 한번에 몇 개의 항목을 반환할지 제어하는 파라미터)
  • Limit Value: 원하는 값으로 설정합니다. 예를 들어, 100으로 설정하면 각 요청마다 100개의 항목이 반환됩니다.

전체 설정

  1. Method: GET
  2. URL: https://api.example.com/data
  3. Pagination Mode: Update a Parameter in Each Request
    • Parameter Name: offset
    • Parameter Value: {{$parameterValue}}
    • Start Value: 0
    • Increment Value: 300
  4. Limit Parameter Name: limit
    • Limit Value: 100

요청 흐름

  1. 첫 번째 요청
    • URL: https://api.example.com/data?offset=0&limit=100
  2. 두 번째 요청
    • URL: https://api.example.com/data?offset=300&limit=100
  3. 세 번째 요청
    • URL: https://api.example.com/data?offset=600&limit=100

이 설정을 사용하면 첫 번째 요청에서 offset=0으로 시작하고, 이후 요청마다 offset 값이 300씩 증가하여 계속 데이터를 가져오게 됩니다. 필요한 만큼 페이징을 자동으로 처리할 수 있게 되며, API의 모든 데이터를 효과적으로 수집할 수 있습니다.

728x90

댓글