빠른 시작: Node.js를 사용하여 Bing Custom Search 엔드포인트 호출
경고
2020년 10월 30일에 Bing Search API가 Azure AI 서비스에서 Bing Search Services로 이동되었습니다. 이 문서는 참조용으로만 제공됩니다. 업데이트된 문서는 Bing search API 문서를 참조하세요. Bing 검색을 위한 새 Azure 리소스 만들기에 대한 지침은 Azure Marketplace를 통해 Bing Search 리소스 만들기를 참조하세요.
이 빠른 시작을 사용하여 Bing Custom Search 인스턴스의 검색 결과를 요청하는 방법에 대해 알아봅니다. 이 애플리케이션은 JavaScript로 작성되지만 Bing Custom Search API는 대부분의 프로그래밍 언어와 호환되는 RESTful 웹 서비스입니다. 이 샘플의 소스 코드는 GitHub에 제공됩니다.
사전 요구 사항
Bing Custom Search 인스턴스 자세한 내용은 빠른 시작: 첫 번째 Bing Custom Search 인스턴스 만들기를 참조하세요.
Azure 리소스 만들기
다음 Azure 리소스 중 하나를 만들어 Bing Custom Search API 사용을 시작합니다.
Bing Custom Search 리소스
- 리소스를 삭제할 때까지 Azure Portal을 통해 사용할 수 있습니다.
- 평가판 가격 책정 계층을 사용하여 서비스를 사용해보고, 나중에 프로덕션용 유료 계층으로 업그레이드합니다.
다중 서비스 리소스
- 리소스를 삭제할 때까지 Azure Portal을 통해 사용할 수 있습니다.
- 여러 Azure AI 서비스에서 애플리케이션에 동일한 키와 엔드포인트를 사용합니다.
애플리케이션 만들기 및 초기화
즐겨 찾는 IDE 또는 편집기에서 새 JavaScript 파일을 만들고 요청 라이브러리에 대해
require()
문을 추가합니다. 구독 키, 사용자 지정 구성 ID 및 검색어에 대한 변수를 만듭니다.var request = require("request"); var subscriptionKey = 'YOUR-SUBSCRIPTION-KEY'; var customConfigId = 'YOUR-CUSTOM-CONFIG-ID'; var searchTerm = 'microsoft';
검색 요청 보내고 받기
요청에서 전송되는 정보를 저장할 변수를 만듭니다. 검색어를
q=
쿼리 매개 변수에 추가하고 검색 인스턴스의 사용자 지정 구성 ID를customconfig=
매개 변수에 추가하여 요청 URL을 구성합니다. 매개 변수를 앰퍼샌드(&
)로 분리합니다. 다음 코드에서 글로벌 엔드포인트를 사용하거나 리소스의 Azure Portal에 표시되는 사용자 지정 하위 도메인 엔드포인트를 사용할 수 있습니다.var info = { url: 'https://api.cognitive.microsoft.com/bingcustomsearch/v7.0/search?' + 'q=' + searchTerm + "&" + 'customconfig=' + customConfigId, headers: { 'Ocp-Apim-Subscription-Key' : subscriptionKey } }
JavaScript 요청 라이브러리를 사용하여 Bing Custom Search 인스턴스에 검색 요청을 보내고 이름, URL 및 웹 페이지가 마지막으로 크롤링된 날짜를 비롯한 결과에 대한 정보를 출력합니다.
request(info, function(error, response, body){ var searchResponse = JSON.parse(body); for(var i = 0; i < searchResponse.webPages.value.length; ++i){ var webPage = searchResponse.webPages.value[i]; console.log('name: ' + webPage.name); console.log('url: ' + webPage.url); console.log('displayUrl: ' + webPage.displayUrl); console.log('snippet: ' + webPage.snippet); console.log('dateLastCrawled: ' + webPage.dateLastCrawled); console.log(); }