다음 등의 포털 사에서는 자사 데이터 일부를 Open API로 공개하고 있습니다.
특히 지도나 주소, 검색 등은 직접 데이터를 수집하는 것보다 포털의 데이터를 활용하는 것이 개발 및 유지보수에 유리할 수 있습니다.
오늘은 데브기어 테크게시판을 통해 다음 카카오의 주소검색 API 연동을 문의주셔서 해당 내용을 공유합니다.
아래 샘플을 REST API를 이용해 카카오 주소 검색 Open API와 연동하는 내용입니다.
(카카오 Open API의 대부분은 REST API를 제공합니다. )
해당 내용을 잘 익혀서 다양한 Open API를 여러분의 앱에서 활용하실 수 있습니다.
카카오 개발자 > 로컬 : https://developers.kakao.com/docs/restapi/local
카카오 Open API를 연동하기 위해서는 앱을 등록하고, 앱 키를 받아야 합니다.(해당 내용의 설명은 생략합니다.)
카카오 개발자 > 내 애플리케이션 : https://developers.kakao.com/apps
위 링크를 참고해 개발했으며, 제일 문제가 됐던 부분은 HTTP 해더에 Authorization 값을 추가하는 부분입니다.
연동한 결과는 아래와 같습니다.
주요 코드는 아래와 같습니다.
uses REST.TYpes; const API_KEY = ''; { https://developers.kakao.com/ 등록 > 앱 생성 > 앱키(REST API 키)를 위(API_KEY)에 입력 } procedure TForm2.Button1Click(Sender: TObject); begin RESTRequest1.Params.ParameterByName('query').Value := Edit1.Text; RESTRequest1.Execute; end; procedure TForm2.FormCreate(Sender: TObject); var Param: TRESTRequestParameter; begin RESTClient1.BaseURL := 'https://dapi.kakao.com'; RESTClient1.Accept := 'application/json, text/plain; q=0.9, text/html;q=0.8,'; RESTClient1.AcceptCharset := 'UTF-8, *;q=0.8'; RESTRequest1.Resource := 'v2/local/search/address.json?query={query}'; Param := RESTRequest1.Params.AddHeader('Authorization', 'KakaoAK ' + API_KEY); Param.Options := [TRESTRequestParameterOption.poDoNotEncode]; RESTResponseDataSetAdapter1.RootElement := 'documents'; end;
샘플 프로젝트
문단제목
- REST Client Library - http://docwiki.embarcadero.com/RADStudio/en/REST_Client_Library