2020년 11월 23일 월요일

REST API 연결

 델파이(delphi)에서 REST API 간단한 예제

1. 새폼을 만듭니다.

2. Palette 에서 REST로 찾아 아래 콘트롤을 폼에 드롭합니다.

    RESTClient, RESTRequest, RESTResponse, 

3. 예제로 동행복권API를 사용하겠습니다. RESTClient1 콘트롤에서

    BaseURL = https://www.dhlottery.co.kr

4. RestRequest1 콘트롤에서 

    client = RESTClient1,   responce = RESTReponce1,  resource = common.do

5. RESTRequest1 콘트롤의 Params 를 더블크릭하여 아래와 같이 추가합니다.



6. RESTRequest1dp 마우스 오른쪽을 크릭하여 Execcute... 을 선택하여

9. 아래의 결과를 받습니다.


10. Form에 memo 콘트롤을 하나 드롭하고 크기를 적당하게 조절한 다음. 오브젝트인스펙트에서 아래와 같이 확인합니다. 지금까지의 작업은 익스플러의 주소창에
https:/www.dhlottery.co.kr/common.do?method=getLottoNumber&drwNo=900
라고 입력하고 결과를 받는 것과 같습니다.




11. RESTREsponseDataSetAdapter, FDMemTable, ListView, Edit, button을 폼에 드롭합니다.

12. RESTResponseDataSetAdapter1 콘트롤에서

13. Listview1 마우스 오른쪽크릭하여 Columms Editor.. 선택하여 Columm을 추가하고, 

    ViewStyle = vsReport로 변경합니다.


14. LiveBindings Designer 를 불러냅니다.


11.  LiveBindings Designer에서 아래와 같이 연결합니다.

필요하면 BindSourceDB 콘트롤을 폼에 추가합니다.

12. 버튼을 크릭하여 아래코드를 추가하고 결과를 확인합니다.

procedure TForm3.Button1Click(Sender: TObject);
begin
  RESTRequest1.Execute;
end;

13. 결과


14. 같은 방법으로 https://www.data.go.kr/index.do 에 접속하여 REST API를 경험하세요.


델파이 12.1이냐 11.3이냐?

 델파이가 12.1이 나왔습니다. 혹시 11.3버전의 커뮤니티버전이 필요하시는분이 있을 수 있을 것 같아 https://altd.embarcadero.com/.../RADStudio_11_3_esd_28... 와 이것 찾느랴 엄청고생함.