피드 모듈을 사용하여 외부 피드를 Drupal 9 웹사이트로 가져오는 방법

게시 됨: 2020-11-03

개발자는 외부 소스에서 데이터를 가져와야 하는 여러 상황에 직면하게 됩니다. 때로는 둘 이상의 소스에서 Drupal 9 웹사이트로 데이터를 가져와야 합니다. Drupal의 Feeds 모듈은 기술에 익숙하지 않은 사용자도 다양한 데이터 소스에서 콘텐츠를 가져올 수 있는 간단하고 번거로운 모듈입니다. Migrate 모듈과 같은 다른 Drupal 모듈보다 간단하게 만드는 것은 전체 가져오기 프로세스가 Drupal의 UI를 통해 수행된다는 것입니다. 콘텐츠가 제공되는 즉시 원하는 방식으로 콘텐츠를 제공합니다.

많은 웹사이트가 타사 사이트에서 RSS/XML 피드를 가져옵니다. 이 블로그에서는 Drupal 9의 Feeds 모듈을 사용하여 json 형식의 데이터를 제공하는 이 타사 API를 통해 가져온 뉴스 피드를 얻을 것입니다.

drupal-9-피드 모듈

Drupal Feeds 모듈 설치

Drupal 9용 Feeds 모듈을 사용하면 CSV, XML, JSON, RSS 등과 같은 다양한 형식의 데이터를 UI를 통해 노드, 사용자 및 분류 용어로 가져올 수 있습니다.

1. Drupal Feeds 모듈을 설치합니다(여기에서는 작곡가를 사용할 것입니다).

 composer require 'drupal/feeds:^[email protected]'
composer require 'drupal/feeds:^[email protected]'

2. 여기에서는 데이터를 가져오기 위해 JSON 피드를 사용하고 있습니다. 따라서 피드 확장 가능한 파서인 모듈을 하나 더 설치해야 하는 JSON 파서가 필요합니다. 이 모듈을 설치하는 가장 좋은 방법은 필요한 모든 라이브러리를 다운로드하기 때문에 작곡가를 사용하는 것입니다. (Drupal 피드 모듈이 feed_ex 모듈에 대한 종속성이 될 것이기 때문에 작곡가를 사용하여 다운로드하는 경우 첫 번째 단계를 건너뛸 수도 있습니다.)

 composer require 'drupal/feeds_ex:^[email protected]'
composer require 'drupal/feeds_ex:^[email protected]'

참고: 작곡가를 사용하여 설치하지 않는 경우 이 모듈에 필요한 라이브러리도 Ludwig 모듈과 함께 설치할 수 있습니다. Ludwig 모듈을 설치한 다음 /admin/reports/packages 로 이동하여 추가 지침을 확인하세요.

3. drush 를 사용하거나 UI를 통해 feedsfeeds_ex (Feeds Extensible Parsers) 모듈을 활성화합니다.

피드 모듈

피드 모듈 구성 및 구현

여기에서는 아래 스크린샷에 표시된 JSON 형식으로 노출되는 https://newsapi.org/ 웹사이트 기사(" 현재 TechCrunch의 주요 헤드라인 " 관련 주제)에서 데이터를 가져올 것입니다.

이 뉴스 데이터를 얻으려면 웹사이트에 로그인하고 API 키를 받아야 합니다. 그런 다음 데이터를 웹사이트로 가져올 주제를 선택합니다.

피드 모듈 구성

API를 살펴보고 데이터를 가져와야 하는 콘텐츠 유형을 만들어 보겠습니다.

콘텐츠 유형 만들기

여기에서 " 뉴스 "라는 새로운 콘텐츠 유형을 만들었습니다. 데이터를 마이그레이션해야 하는 JSON에 따라 필드 유형을 선택합니다.

콘텐츠 유형 피드 모듈

위의 스크린샷에서는 JSON 키 작성자 에서 데이터를 가져오기 위한 Text(일반) 필드인 Author 와 같은 데이터를 가져오기 위한 간단한 필드를 선택했습니다.

JSON 키 작성자

위의 스크린 샷에서 볼 때, 우리는 타입 피드의 피드 항목 필드를 추가하고 그에 따라 공급 유형을 선택했습니다. 아래의 다음 섹션에서 Feed 유형을 만드는 방법을 배울 것입니다.

피드 유형 만들기

피드 유형을 만들려면 아래 단계를 따르세요.

  1. 피드 개요 페이지( /admin/structure/feeds )로 이동합니다. 이 페이지에 나열된 모든 Drupal 피드를 볼 수 있습니다. 피드 유형 - 피드 모듈 이미 2개의 피드를 만들었습니다. 여기에서는 뉴스 피드 를 사용할 것입니다. 피드 유형 추가를 클릭하여 고유한 피드 유형을 만들 수 있습니다.
  2. 피드 유형을 수정하거나 새 피드 유형을 추가할 때 아래 옵션이 표시됩니다.
  • 기본 설정
    피드 유형에 대한 기본 설정을 구성하겠습니다. 먼저 피드 유형에 대한 이름, 설명 및 설명 또는 제출 지침을 제공합니다.
    기본 설정 피드 모듈

    가져오기 기간(아래 설정 탭에 표시)은 가져오기를 실행해야 하는 빈도를 선택하는 데 도움이 됩니다. 이것은 cron 작업을 통해 수행됩니다. 끄기 를 선택하면 가져오기가 수동으로 수행됩니다.

피드 모듈
  • 가져오기 설정 옵션은 콘텐츠를 가져오거나 가져오는 위치를 보여줍니다.
    선택할 수 있는 3가지 옵션을 제공하며,
  1. 디렉토리:- 웹사이트에 이미 있는 파일 또는 일련의 파일에서 콘텐츠를 가져옵니다.
  2. URL에서 다운로드:- url에서 콘텐츠를 가져옵니다(이 경우 선택).
  3. 파일 업로드:- 파일 에서 콘텐츠를 가져옵니다.

선택한 Fetcher에 따라 Fetcher 설정을 구성해야 합니다. 페처 설정의 보조 옵션에 대해 아래 설정 목록이 있습니다.

  • 피드 자동 감지
  • PubSubHubbub 사용
  • 항상 다운로드
  • 요청 시간 초과

그에 따라 보조 설정을 구성합니다.

구성 - 피드 모듈

Parser를 사용하여 피드 형식을 구성할 수 있습니다. 여기에는 CSV, HTML, OPML, JsonPath(저희 설정) 등 선택할 수 있는 다양한 옵션이 있습니다. 피드 형식에 따라 드롭다운 메뉴에서 하나를 선택하세요.

선택한 파서에 따라 파서 설정을 구성해야 합니다. 우리의 경우 JsonPath 유형의 파서에 대한 파서 설정이 없습니다.

프로세서 설정은 피드가 생성할 콘텐츠 유형의 구성을 보여줍니다.

마찬가지로 아래 이미지와 같이 프로세서에 대한 보조 설정 옵션이 있습니다.

피드 모듈

요구 사항에 따라 보조 설정을 구성합니다.
아래 스크린샷은 페처, 파서 및 프로세서의 기본 설정을 보여줍니다.

피드 모듈


3. 대상에 소스 매핑

  • 문맥

도움말 텍스트에는 실행할 기본 쿼리가 나와 있으며, Drupal 피드 가져오기를 콘텐츠로 가져올 대상 데이터의 루트 또는 기본을 보여줍니다. 이 예에서는 데이터가 기사 키 안에 있기 때문에 "$.articles .*"로 구성했습니다. 이 경로 문서를 참조하여 구성하십시오.

  • 필드 매핑

이제 피드 모듈을 구성하여 JSON에서 가져온 값이 Drupal 뉴스 콘텐츠 유형의 어떤 필드에 매핑되어야 하는지 결정할 수 있습니다.

이러한 대상은 Drupal 데이터 필드이며 피드 유형을 생성할 때 선택한 프로세서를 기반으로 가져옵니다. 또한 언어, 필터 형식(텍스트 형식 필드에 적용 가능), 고유(콘텐츠가 신규 또는 기존 콘텐츠인지 추적하는 데 사용되는 고유 식별자) 등과 같은 필드의 특정 매핑에 대한 다른 설정을 구성할 수도 있습니다.

예를 들어 JSON 피드 뉴스 기사 콘텐츠 제목 을 Drupal 뉴스 콘텐츠 제목 필드로 가져오려는 경우 대상은 Drupal 제목 필드가 되고 소스는 아래 스크린샷과 같이 JSON 뉴스 기사 제목 키가 됩니다.

JSON 피드

여기에서는 아래 스크린샷과 같이 매핑 구성을 사용하고 있습니다.

피드 모듈

Drupal 9에서도 지원되는 Entity clone Drupal 모듈을 사용하여 피드 유형을 복제할 수도 있습니다.

피드 만들기

피드를 만들려면 콘텐츠 -> 피드 탭 -> 피드 추가 -> 피드 유형 선택으로 이동합니다.

피드 모듈

나는 이미 뉴스를 위해 하나를 만들었습니다 . 새 피드를 만들려면 + 피드 추가 버튼을 클릭하고 필요에 따라 피드를 구성합니다. 블로그의 경우 아래 스크린샷과 같이 구성했습니다.

피드 모듈

구성 후 저장 및 가져오기 를 클릭합니다. Drupal 피드를 콘텐츠로 가져옵니다. 데이터를 가져오면 아래 스크린샷과 같이 처리 상태가 표시됩니다.

피드 모듈

JSON 데이터가 콘텐츠로 마이그레이션되면 아래 스크린샷과 같이 뉴스 콘텐츠 유형에 추가된 콘텐츠를 볼 수 있습니다.

피드 모듈

이제 가져온 콘텐츠를 피드와 비교해 보겠습니다.

피드 모듈
techcrunch 기사의 소스 콘텐츠
피드 모듈
Drupal 피드 가져오기 - 피드 모듈

자세한 내용은 이 가이드를 참조하세요.

피드 모듈을 확장하는 추가 모듈

• Feed Tamper 모듈은 소스 데이터를 웹사이트로 가져오기 전에 수정하고 업데이트하는 데 도움이 됩니다.
• 피드 확장 가능한 파서는 XPath XML 및 HTML, JSONPath JSON 및 JSON 라인 파서 등과 같은 파서 세트를 포함합니다.
• 피드 가져오기 미리보기 모듈을 사용하면 가져오기 전에 소스의 콘텐츠를 볼 수 있습니다.
• Commerce Feeds 모듈은 Drupal Commerce 사이트로 제품을 가져오는 데 도움이 됩니다.