HTTP POST(RestAPI)명령을 사용한 영화 정보 조회 > 블로그 & Tips

본문 바로가기

Forguncy

블로그 & Tips

HTTP POST(RestAPI)명령을 사용한 영화 정보 조회

페이지 정보

작성자 GCK낸시 작성일 22-11-23 15:29 조회 154회 댓글 0건

본문

첨부파일

포건시에서는 HTTP 매소드를 통해 다양한 Restful API와 직관적으로 연결하고 쉽게 데이터를 주고 받을 수 있는 UI를 플러그인을 통해서 제공하고 있습니다. 


그렇기 때문에 Fetch, Ajax 또는 Axios를 이용한 HTTP 통신을 위한 별도의 전문적인 코딩이 필요하지 않으며, 

Rest API와 통신을 위한 로직을 포건시 명령을 통해 클릭 만으로 쉽게 구현할 수 있습니다.


포건시의 HTTP 통신 그리고 JSON 파싱을 지원하는 플러그인을 통해, Rest API 서비스를 제공하는 다양한 ERP, 그룹웨어, CRM, 공공 오픈API 등의 데이터를 포건시에서 다양한 방법으로 시각화하고 이를 활용할 수 있습니다. 


이번 포스팅에서는 포건시(Forguncy)에서 HTTP Request 보내기 플러그인을 이용하여, "영화진흥위원회 일별 박스오피스 API"와 "한국영화데이터베이스 API"를 활용하여 영화 정보를 조회하는 방법을 설명합니다.


9d0c4e8d4011f09e20d5f39f9e58bf91_1669334552_6572.gif


해당 포스팅의 샘플 프로젝트를 다운로드하려면, 첨부된 파일을 다운로드 하거나, 여기를 클릭하세요. 

- Rest API를 활용한 영화정보 불러오기 샘플 실행하기



플러그인 설치 


포건시에서 RestAPI를 사용하고, 해당 데이터를 사용하려면 아래 두개의 플러그인을 설치해야 합니다. 아래 링크를 클릭하면 다운로드 파일과 사용방법을 확인할 수 있습니다.

플러그인 설치하기를 클릭하면 플러그인 설치방법을 확인할 수 있습니다. 



일별박스오피스 JSON 데이터 가져오기



일별박스오피스와 영화상세정보 RestAPI를 사용하기 위해는 서버단 명령을 만들어야합니다.
 

서버단 명령어는 말 그데로 포건시 서버에서 작동하는 명령어로 웹 브라우저에서 동작하지 않고, 강력한 서버의 성능을 활용하기 때문에, 동적 데이터 수집 및 계산의 논리를 더 빠르고 잘 수행할 수 있습니다.




먼저, 일별박스오피스의 순위, 관객수, 수익 등을 정보를 받아 올 수 있도록, 서버단 명령어를 작성해보도록 하겠습니다.



1. 프로젝트 탐색기에서 서버단 명령에 오른쪽 마우스 버튼을 클릭 한 후, 오른쪽 마우스 메뉴에서 "서버단 명령 생성하기"를 선택합니다. 

9d0c4e8d4011f09e20d5f39f9e58bf91_1669251208_5966.png
 

2. 서버단 명령 실행창에서 이름을 "일별박스오피스"로 설정합니다. 

9d0c4e8d4011f09e20d5f39f9e58bf91_1669251409_2633.png
 

3. RestAPI 호출 시 사용할 파라미터를 만들어주기 위해 [파라미터]탭에서 "파라미터 추가"버튼을 클릭하여 "Date"파라미터를 추가합니다.

9d0c4e8d4011f09e20d5f39f9e58bf91_1669251506_6047.png

 

4. [명령]탭에서 "명령 편집"을 클릭합니다.

9d0c4e8d4011f09e20d5f39f9e58bf91_1669252014_9755.png
 

5. "새 명령"을 클릭한 후, 명령을 아래와 같이 설정합니다. 


5-1. POST 데이터 명령 

​일별 박스오피스 RestAPI를 호출할 수 있도록 아래와 같이 명령을 생성합니다. 
 

 해당 포스팅에서는 영화진흥위원회에서 제공하는 API를 사용하고 있습니다. 

 영화진흥위원회 일별 박스오피스 API문서는 아래 사이트틀 참고하세요.

    - 영화진흥위원회 일별 박스오피스 API 문서

  • 명령 선택: POST 데이터 명령    
  • URL: https://kobis.or.kr/kobisopenapi/webservice/rest/boxoffice/searchDailyBoxOfficeList.json
  • API 방식: GET
  • 데이터 유형: 복합구조 

    • 이름: key        값: 영화진흥위원회에서 발급받은 키
    • 이름: targetDt   값: =Date   ("3번"에서 설정한 파라미터)
  • 파라미터의 결과 요청: boxoffice (Rest API로 부터 받은 JSON 결과 값을 저장하는 사용자 임의 변수명)
9d0c4e8d4011f09e20d5f39f9e58bf91_1669253019_2775.png

 * POST 데이터 명령에 대한 설명은, 아래의 도움말을 참고해주세요.
 - 도움말 바로가기   

 

5-2. 반환 명령 생성하기 


​5-1번에서 설정한 파라미터의 결과 값인 "boxoffice" 변수(JSON 문자열 결과값)를 반환할 수 있도록 명령을 설정합니다. 

  • 명령 선택: 반환 명령 생성하기
  • 반환 메시지: =boxoffice  (5-1번에서 설정한 파라미터의 결과 값) 

9d0c4e8d4011f09e20d5f39f9e58bf91_1669253491_109.png
 


일별박스오피스 조회 웹 페이지 만들기 



다음으로 일별박스오피스 명령을 통해 JSON으로 받은 결과를 리스트뷰 형식으로 가져와 사용자들이 데이터를 쉽게 볼 수 있도록 아래와 같이 설정합니다. 



1.셀 영역을 선택하고, [홈]>[리스트뷰설정]을 클릭 한 후, 테이블 선책 창에서 [없음]을 클릭하여 리스트뷰를 생성합니다. 리스트뷰의 열 (순위, 영화명, 개봉일, 매출액, 관객수, 스크린수)을 열 헤더에 기입해줍니다. 

9d0c4e8d4011f09e20d5f39f9e58bf91_1669271335_139.png
 

2. 페이지 로딩 시 명령이 바로 실행될 수 있도록 페이지 설정에서 "페이지 로딩 시 처리 명령 편집"을 클릭합니다.  

9d0c4e8d4011f09e20d5f39f9e58bf91_1669270538_4246.png
 

3. 명령 창에서 아래와 같이 명령을 설정합니다. 
 

 1) 명령1 

 이전에 생성한 "일별박스오피스" 서버단 명령을 호출해줍니다.  

  • 명령 선택: 서버단 명령 호출
  • 서버단 명령: 일별박스오피스 
  • 파라미터이름:  Date      값: =BE9 셀 (H7셀에 있는 TODAY()-1의 변환된 값) 
  • 반환 메시지 셀: =BA19

9d0c4e8d4011f09e20d5f39f9e58bf91_1669270936_7789.png
 

2) 명령 2

​JSON으로 받은 결과값을 리스트뷰 형식으로 가져오기 위해 아래와 같이 명령을 설정합니다. 

  • 명령 선택: JSON 데이터를 리스트뷰로 가져오기
  • JSON 데이터 소스: =BA19

    • JSON 설정 예제: RestAPI 반환값 입력
  • JSON 경로: boxOfficeResult.dailyBoxOfficeList
  • 리스트뷰: 리스트뷰1

리스트뷰 열 

  •  속성이름

    열 

     rank (순위)

    =D17 

     movieNm (영화이름)

    =G17 

     openDt (개봉일)

    =Z17 

     salesAmt (수익)

    =AF17 

     audiCnt (관객수)

    =AM17 

     scrnCnt (스크린수)

    =AS17


9d0c4e8d4011f09e20d5f39f9e58bf91_1669271874_0309.png


4. 리스트뷰의 "영화명"을 클릭하면 "영화상세정보"페이지로 이동할 수 있도록, 리스트뷰의 "영화명"셀을 하이퍼링크로 설정한 후, 명령편집을 아래와 같이 설정해줍니다. 

  • 명령 설정: 팝업 보여주기
  • 페이지 선택: 영화상세정보
  • ​값을 대상 페이지에 전달

    • 전달 셀: =G17(영화명)      대상 셀: =H21
    • 전달 셀: =Z17(개봉일)      대상 셀: =H23

9d0c4e8d4011f09e20d5f39f9e58bf91_1669273943_102.png
 



영화상세정보 JSON 데이터 가져오기


다음으로 최종 사용자가 일별박스오피스 각각의 영화에 대한 상세정보를 확인하고자 할 경우, 영화에 대한 상세 정보를 Rest API를 통해서 가져올 수 있도록 서버단 명령어를 작성해 보겠습니다.


1. 프로젝트 탐색기에서 서버단 명령에 오른쪽 마우스 버튼을 클릭한 후, 오른쪽 마우스 메뉴에서 "서버단 명령 생성하기"를 선택합니다. 


2. 서버단 명령 실행창에서 이름을 "영화상세정보"로 설정합니다. 

9d0c4e8d4011f09e20d5f39f9e58bf91_1669253896_1656.png

3. RestAPI 호출 시 사용할 파라미터를 만들어주기 위해[파라미터]탭에서 "파라미터 추가"버튼을 클릭하여 아래 파라미터를 추가합니다.

  • Movienm - 영화제목
  • releaseDts - 개봉일

9d0c4e8d4011f09e20d5f39f9e58bf91_1669253971_8095.png


4. [명령]탭에서 "명령 편집"을 선택합니다.


5. "새 명령"을 클릭한 후, 명령을 아래와 같이 설정합니다.   


   5-1. POST 데이터 명령

    영화명, 개봉일을 통해서, ​영화상세정보 RestAPI를 호출할 수 있도록 아래와 같이 명령을 생성합니다. 
 

한국영화데이터베이스에서 제공하는 API를 사용하고 있습니다. 

한국영화데이터베이스 API문서는 아래 사이트틀 참고하세요.

   - 한국영화데이터베이스 API 문서

  • 명령 선택: POST 데이터 명령    
  • URL: https://api.koreafilm.or.kr/openapi-data2/wisenut/search_api/search_json2.jsp?
  • API 방식: GET
  • 데이터 유형: 복합구조 

     이름

     값

     detail

     Y

     releaseDts

     releaseDts ("3번"에서 설정한 파라미터)

     listCount

     3

     collection

     kmdb_new2

     title

     =Mivenme  ("3번"에서 설정한 파라미터)

     ServiceKey

     한국영화데이터베이스에서 발급받은 키

  • 파라미터의 결과 값 변수: SearchMovie (영화상세정보 결과에 대한 결과 JSON을 담을 변수명)

9d0c4e8d4011f09e20d5f39f9e58bf91_1669254894_6872.png
 


5-2. 반환 명령 생성하기 


5-1번에서 설정한 파라미터의 결과 값인 "SearchMovie(영화상세정 JSON 결과)"를 반환할 수 있도록 명령을 설정합니다. 

  • 명령 선택: 반환 명령 생성하기
  • 반환 메시지: =SearchMovie (5-1번에서 설정한 파라미터의 결과 값) 

9d0c4e8d4011f09e20d5f39f9e58bf91_1669597505_5984.png
 


영화상세정보 페이지 만들기


박스오피스페이지에서 선택한 영화의 상세정보를 보여줄 수 있도록 아래와 같이 설정합니다. 

영화 상세정보는 영화상세정보 명령을 통해 JSON으로 받은 결과​를 아래와 같이 셀, 리스트뷰 형식으로 가져옵니다.



1. 페이지에서 RestAPI 결과값을 입력받을 셀을 아래 셀유형에 맞춰 만들어줍니다,

화면 구성에 대한 자세한 정보는 첨부된 포건시 프로젝트을 참고해주세요.

 셀 유형

 결과값

 셀 

 없음

영화명

제작연도

상영시간

개봉일

제작국가

장르

감독

H21

H23

H25

H27

H29

H31

H33

 여러 줄 텍스트

 포스터 이미지 묶음 - 여러 문자열 링크

 AC7 (AC열 숨김처리)

 이미지

 포스터 이미지
 (여러 줄 텍스트에서 정제한 값 입력)

 C4

 리스트뷰

 출연진

 H36

   

7f52b503613a102ceece540031e6b92e_1669706017_6405.png
 


2. 포스터 이미지 ​문자열을 정제합니다.  

RestAPI에서 가져온 포스터 결과 값은 아래 이미지 문자열과 같이 "|" 구분자로 여러 개의 이미지 값을 가지고 있는 문자열입니다. 이미지 문자열에서 첫번째 값만 가져와서 이미지 셀에 해당 값을 설정해주어야 합니다. 


이미지 문자열에서 첫번째 이미지 값만 가져오기 위해서는 아래와 같이 함수를 이용하여 "Poster" 셀에서 "|" 구분자를 찾고, 첫번째 값만 가져오도록 설정합니다.


  • 이미지 문자열 

http://file.koreafilm.or.kr/thm/02/99/17/86/tn_DPK019772.jpg|http://file.koreafilm.or.kr/thm/02/99/17/88/tn_DPK019872.jpg 

  • 이미지 문자열에서 첫번째 이미지 가져오게 설정 (엑셀 함수 사용)

=LEFT(Poster,FIND("|",Poster,1)-1)


 9d0c4e8d4011f09e20d5f39f9e58bf91_1669602802_774.png 


3. 페이지 로딩 시 명령이 바로 실행될 수 있도록 페이지 설정에서 "페이지 로딩 시 처리 명령 편집"을 클릭합니다. 


4. 명령창에서 아래와 같이 명령을 설정합니다.


  1) 명령1

    ​이전에 생성한 "영화상세정보" 서버단 명령을 호출해줍니다.  

  • 명령 선택: 서버단 명령 호출
  • 서버단 명령: 영화상세정보 
  • 파라미터 이름: Movienm     값:=H21     (박스오피스페이지의 전달 값)
  • 파라미터 이름: releaseDts   값:=H23     (박스오피스페이지의 전달 값)
  • 반환 메시지 셀: =X12

9d0c4e8d4011f09e20d5f39f9e58bf91_1669276686_8996.png

 2) 명령2

​JSON으로 받은 결과값을 셀에 가져오기 위해 아래와 같이 명령을 설정합니다.

  • 명령 선택: JSON 데이터를 셀로 가져오기 
  • JSON 데이터 소스: =X12
    • JSON 설정 예제: RestAPI 반환값 입력
  • JSON 경로: Data.Result
  • 목표 셀

 속성이름

 셀

 directors.director.directorNM

 =H33

 posters

 =AV7 (숨김 셀 - 이미지 문자열)

 runtime

 =H25

 genre

 =H31

 nation

 =H29

 ratings.rating.releaseDate

 =H27


9d0c4e8d4011f09e20d5f39f9e58bf91_1669333199_0039.png
 

 3) 명령3 

  JSON으로 받은 결과값을 리스트뷰 형식으로 가져오기 위해 아래와 같이 명령을 설정합니다.

 "JSON 데이터를 리스트뷰로 가져오기" 명령을 이용하여 출연진 정보를 리스트뷰에 가져옵니다.
9d0c4e8d4011f09e20d5f39f9e58bf91_1669333460_8291.png
 

 4) 명령4  

  포스터가 Img 셀에 나오도록 Img 셀 값을 2번에서 설정한 이미지 경로로 설정합니다. 

  • 명령 선택: 셀 속성과 내용 변경하기 
  • 대상셀: =Img      
  • 속성 유형: 대상 셀에 설정 값을 입력     
  • 설정값: =AV14

 9d0c4e8d4011f09e20d5f39f9e58bf91_1669609039_3235.png

이제 모든 설정이 끝났습니다!




실행화면

일일 박스오피스에서 영화명을 클릭하면 해당 영화에 대한 상세정보를 확인할 수 있습니다. 

9d0c4e8d4011f09e20d5f39f9e58bf91_1669334552_6572.gif
 

해당 포스팅의 샘플 프로젝트를 다운로드하려면, 첨부된 파일을 다운로드 하거나, 여기를 클릭하세요. 

- Rest API를 활용한 영화정보 불러오기 샘플 실행하기






지금 바로 Forguncy를 다운로드하여 직접 테스트해보세요!

fgc.png

 
  • 페이스북으로 공유
  • 트위터로  공유
  • 구글플러스로 공유
  • 카카오톡으로 보내기

댓글목록

등록된 댓글이 없습니다.

그레이프시티 홈페이지를 통해 제품에 대해서 더 자세히 알아 보세요!
홈페이지 바로가기

태그

인기글

더보기
  • 인기 게시물이 없습니다.
그레이프시티 홈페이지를 통해 제품에 대해서 더 자세히 알아 보세요!
홈페이지 바로가기
이메일 : sales-kor@grapecity.com | 전화 : 1670-0583 | 경기도 안양시 동안구 시민대로 230, B-703(관양동, 아크로타워) 그레이프시티(주) 대표자 : 허경명 | 사업자등록번호 : 123-84-00981 | 통신판매업신고번호 : 2013-경기안양-00331 Copyright ⓒ 2023 GrapeCity inc.