API레이어를 델파이에서 이용하기
- 2021-05-31
- Posted by: Narae Kim
- Categories: 기술자료, 메인 노출
- 원문 링크: https://blogs.embarcadero.com/using-apilayer-rest-apis-from-delphi/?utm_source=Eloqua&utm_medium=email&utm_content=Article-210528-Integration
- 작성자 (작성일): 마르코 칸투 (2021.1.25)
이미 알고 있겠지만, (엠바카데로의 모회사인) 아이데라는 API레이어(apilayer)를 최근 인수했다. API레이어는 수많은 REST API 마이크로 서비스를 제공하는 회사이다. 제공하는 서비스는 IP 주소기반 위치, 이메일 및 전화번호 확인, 재무 정보, 날씨, 항공편 추적 등 광범위하다. 제공되는 서비스 상품 목록은 https://apilayer.com/에서 확인할 수 있다. 각 서비스 상품 별로 별도의 웹사이트가 제공되므로, 원하는 웹사이트에 로그인하면 REST API 호출을 할 수 있다. 일정 호출 횟수까지는 무료이다.
이 블로그 포스트는 API레이어에서 어떤 서비스를 제공하는 지에 대한 내용이 아니라, RAD스튜디어에서 어떻게 호출할 수 있는지에 대해 다루고자 한다. 호출 대상으로는 무료 REST 국가 API와 유료 위치 서비스이다.
REST 국가 API 이용하기
우선 간단하고 완전히 무료로 제공되는 API레이어 서비스부터 살펴보자. https://github.com/apilayer/restcountries 에는 이 서비스에 대한 도움말이 있다. 일단 테스트를 하기 위해 REST디버거를 사용하여 서비스 조회를 해보았다. 아래 그림과 같이 “name” 엔드포인트를 사용하고 “united”를 파라미터로 전달하여서 결과를 받았다:
REST디버거에서 나온 정확한 데이터가 나오면, [Copy Components] 버튼을 사용하여 REST 클라이언트 라이브러리를 복사하여 애플리케이션을 만들 때 그대로 사용할 수 있다. 이제 RAD스튜디오에서 (VCL이든 FMX든) 델파이 또는 C++애플리케이션을 하나 만들고, 데이터 모듈에서 붙여넣기를 한다 – 또는 테스트 목적이라서 데이터 모듈을 따로 만들기가 귀찮다면 일반 폼에서 붙여넣어도 된다.
이어서 Panel 1개, Edit 1개, (DataSource 컴포넌트와) DBGrid 1개를 폼에 추가한 후 앞서 붙여넣기를 통해 자동으로 추가된 컴포넌트들 중 RESTRequest 컴포넌트를 클릭하고 마우스 오른쪽을 이용하여 Execute를 실행하여, 데이터를 잘 가져오는 지를 개발화면에서 다시 확인했다.
국가명을 필터링하는 코드 구현은 매우 간단하다:
1 2 3 4 5 6 7 8 |
procedure TForm43.Button1Click(Sender: TObject); begin if Edit1.Text = ” then RESTRequest1.Resource := ‘name’ else RESTRequest1.Resource := ‘name/’ + Edit1.Text; RESTRequest1.Execute; end; |
위 작업 이외에 특별히 내가 수정해야 했던 것은 한 가지이다. RESTResponseDataSetAdapter1 컴포넌트의 속성 중 TypesMode의 값을 JSONOnly로 바꾸어야했다. 이유는 실행중 일부 시간대 관련 문장까지도 변환하려고 시도함에 따라 예외가 발생했기 때문이다.
Position Stack API를 사용하여 위치정보 분석하기
다음으로, 유료 API인 https://positionstack.com/ 에서 무료로 제공하는 만큼만 이용해보았다. 이 서비스는 위치값 분석, 위도와 경도, 기타 해당 지역 정보등을 제공한다. 예를 들면 아래와 같이 위치를 제공하면 위도, 경도, 지역의 기타 정보를 받을 수 있는 “forward” 지오코딩을 REST디버거를 이용해서 사용해보았다. 결과를 표에서 보기위해서 REST 응답 데이터 중 “data” 요소를 JSON Root Element로 지정하였다.
이 서비스를 사용하려면, 회원 가입을 하고 받은 개발자 키를 Request에 파라미터로 전달해야 한다. (아마 애플리케이션을 완성하고 실제로 사용할 때에는 해당키를 인코딩함으로써 키값을 그대로 노출하지 않는 것이 보다 안전할 것이다.)
데이터를 잘 가져온 것을 확인했으면 첫번째 데모와 같이 [Copy Components] 버튼을 클릭하여 복사한 후 RAD스튜디오에서 사용한다. FMX 앱에서 위치센스를 이용하는 것도 좋다. (위치센서 튜토리얼: http://docwiki.embarcadero.com/RADStudio/Sydney/en/Mobile_Tutorial:_Using_Location_Sensors_(iOS_and_Android)
결론
마이크로서비스 API를 활용하여 모바일이나 데스크톱 애플리케이션을 만들면, 혁신적인 기능을 매우 빠르게 만들고 배포할 수 있다. 이와 동시에 서비스 구독 기반이므로 인프라의 확장성 확보할 수 있다. API레이어 서비스를 잘 활용하여 더 멋진 앱을 만들 수 있기를 응원한다.
참고: 여기에 사용된 REST디버거는 RAD스튜디오/델파이/C++빌더에 들어있으므로 IDE >메뉴>Tools에서 사용할 수 있다.
12.0 12.1 AI AWS C++ c++빌더 chatgpt DelphiCon ios rad서버 RAD스튜디오 UI UIUX UX uxsummit vcl 개발 개발사례 고객사례 기술레터 기술백서 데브옵스 데이터 데이터베이스 델파이 리눅스 마이그레이션 맥 머신러닝 모바일 새버전 샘플 세미나 안드로이드 웹 윈도우 인공지능 인터베이스 출시 커뮤니티에디션 코드 클라우드 파이썬 파이어몽키 현대화