앱과 서버 통신시 채택완료
그누가사랑을모르나
7년 전
조회 3,462
앱에서 자료를 요청하면 서버쪽에서 해당 데이터를 보내주는 기능을 구현중입니다.
기본동작은 되는데 그냥 열려있어 이렇다할 앱 검증단계가 없는 상태입니다.
그래서 영화진흥위원회의 open Api를 제공받는 관련자료를 찾기는 했는데요.
질문1) 아래처럼 키를 할당하는데 아무문자 조합이나 만들면 되는 건지요?
let key = "your Key" // 영화진흥회에서 받을 key
질문2) 앱에서 자료를 요청할때 보내온 let key = "your Key"를 어떻게 추출해서 if문을 어떻게 구성해서 판별해야 할까요?
질문3) 아래 방법 말고 더 좋은 방법이 있으면 도움 부탁드립니다.
</p>
<p>// 영화진흥회 자료받기</p>
<div><font style="font-size: 14px;"><span style="box-sizing: border-box;">[</span><span style="color: rgb(119, 0, 136); box-sizing: border-box;">class</span><span style="box-sizing: border-box;"> </span><span style="color: rgb(0, 0, 255); box-sizing: border-box;">ViewController</span><span style="box-sizing: border-box;">]</span></font></div>
<div><span style="color: rgb(170, 85, 0); box-sizing: border-box;"><font style="font-size: 14px;">// *1-1.</font></span></div>
<div><font style="font-size: 14px;"><span style="color: rgb(119, 0, 136); box-sizing: border-box;">let</span><span style="box-sizing: border-box;"> </span><span style="color: rgb(0, 0, 255); box-sizing: border-box;">key</span><span style="box-sizing: border-box;"> </span><span style="color: rgb(152, 26, 26); box-sizing: border-box;">=</span><span style="box-sizing: border-box;"> </span><span style="color: rgb(170, 17, 17); box-sizing: border-box;">"your Key"</span><span style="box-sizing: border-box;"> </span><span style="color: rgb(170, 85, 0); box-sizing: border-box;">// 영화진흥회에서 받을 key</span></font></div>
<div><font style="font-size: 14px;"><span style="color: rgb(119, 0, 136); box-sizing: border-box;">var</span><span style="box-sizing: border-box;"> </span><span style="color: rgb(0, 0, 255); box-sizing: border-box;">targetDate</span><span style="box-sizing: border-box;"> </span><span style="color: rgb(152, 26, 26); box-sizing: border-box;">=</span><span style="box-sizing: border-box;"> </span><span style="color: rgb(170, 17, 17); box-sizing: border-box;">"20180505"</span><span style="box-sizing: border-box;"> </span><span style="color: rgb(170, 85, 0); box-sizing: border-box;">// 나중에 날짜를 지정해서 변화를 줄때 이를 class 내에 반영하도록 </span></font></div>
<div><font style="font-size: 14px;"><span style="color: rgb(119, 0, 136); box-sizing: border-box;">var</span><span style="box-sizing: border-box;"> </span><span style="color: rgb(0, 0, 255); box-sizing: border-box;">baseURL</span><span style="box-sizing: border-box;"> </span><span style="color: rgb(152, 26, 26); box-sizing: border-box;">=</span><span style="box-sizing: border-box;"> </span><span style="color: rgb(170, 17, 17); box-sizing: border-box;">"URL : </span><a href="<a href="http://www.kobis.or.kr/kobisopenapi/webservice/rest/" target="_blank" rel="noopener noreferrer">http://www.kobis.or.kr/kobisopenapi/webservice/rest/</a>" style="color: rgb(170, 17, 17); box-sizing: border-box;"><a href="http://www.kobis.or.kr/kobisopenapi/webservice/rest/" target="_blank" rel="noopener noreferrer">http://www.kobis.or.kr/kobisopenapi/webservice/rest/</a></a><span style="color: rgb(170, 17, 17); box-sizing: border-box;">"</span><span style="box-sizing: border-box;"> </span><span style="color: rgb(152, 26, 26); box-sizing: border-box;">+</span></font></div>
<div><font style="font-size: 14px;"><span style="box-sizing: border-box;"> </span><span style="color: rgb(170, 17, 17); box-sizing: border-box;">"boxoffice/searchDailyBoxOfficeList.json?key=\(</span><span style="color: rgb(0, 0, 0); box-sizing: border-box;">key</span><span style="color: rgb(170, 17, 17); box-sizing: border-box;">)&targetDt=\(</span><span style="color: rgb(0, 0, 0); box-sizing: border-box;">targetDate</span><span style="color: rgb(170, 17, 17); box-sizing: border-box;">)"</span></font></div>
<div><span style="color: rgb(170, 85, 0); box-sizing: border-box;"><font style="font-size: 14px;">// *1-2.</font></span></div>
<div><font style="font-size: 14px;"><span style="color: rgb(119, 0, 136); box-sizing: border-box;">var</span><span style="box-sizing: border-box;"> </span><span style="color: rgb(0, 0, 255); box-sizing: border-box;">dataStructure</span><span style="box-sizing: border-box;">:</span><span style="box-sizing: border-box;"> </span><span style="color: rgb(0, 0, 0); box-sizing: border-box;">BoxOffice</span><span style="color: rgb(152, 26, 26); box-sizing: border-box;">?</span><span style="box-sizing: border-box;"> </span><span style="color: rgb(170, 85, 0); box-sizing: border-box;">// 앞으로 json 데이터를 받을 자료구조타입의 변수</span></font></div>
<div> </div>
<div><font style="font-size: 14px;"><span style="color: rgb(119, 0, 136); box-sizing: border-box;">override</span><span style="box-sizing: border-box;"> </span><span style="color: rgb(119, 0, 136); box-sizing: border-box;">func</span><span style="box-sizing: border-box;"> </span><span style="color: rgb(0, 0, 255); box-sizing: border-box;">viewDidLoad</span><span style="box-sizing: border-box;">()</span><span style="box-sizing: border-box;"> </span><span style="box-sizing: border-box;">{</span></font></div>
<div><font style="font-size: 14px;"><span style="box-sizing: border-box;"> </span><span style="color: rgb(34, 17, 153); box-sizing: border-box;">super</span><span style="color: rgb(0, 0, 0); box-sizing: border-box;">.viewDidLoad</span><span style="box-sizing: border-box;">()</span></font></div>
<div><font style="font-size: 14px;"><span style="box-sizing: border-box;"> </span><span style="color: rgb(170, 85, 0); box-sizing: border-box;">// *1-3. url 생성</span></font></div>
<div><font style="font-size: 14px;"><span style="box-sizing: border-box;"> </span><span style="color: rgb(119, 0, 136); box-sizing: border-box;">guard</span><span style="box-sizing: border-box;"> </span><span style="color: rgb(119, 0, 136); box-sizing: border-box;">let</span><span style="box-sizing: border-box;"> </span><span style="color: rgb(0, 0, 255); box-sizing: border-box;">url</span><span style="box-sizing: border-box;"> </span><span style="color: rgb(152, 26, 26); box-sizing: border-box;">=</span><span style="box-sizing: border-box;"> </span><span style="color: rgb(0, 0, 0); box-sizing: border-box;">URL</span><span style="box-sizing: border-box;">(</span><span style="color: rgb(0, 0, 0); box-sizing: border-box;">string</span><span style="box-sizing: border-box;">:</span><span style="box-sizing: border-box;"> </span><span style="color: rgb(0, 0, 0); box-sizing: border-box;">baseURL</span><span style="box-sizing: border-box;">)</span><span style="box-sizing: border-box;"> </span><span style="color: rgb(119, 0, 136); box-sizing: border-box;">else</span><span style="box-sizing: border-box;"> </span><span style="box-sizing: border-box;">{</span><span style="box-sizing: border-box;"> </span><span style="color: rgb(119, 0, 136); box-sizing: border-box;">return</span><span style="box-sizing: border-box;"> </span><span style="box-sizing: border-box;">}</span></font></div>
<div> </div>
<div><font style="font-size: 14px;"><span style="box-sizing: border-box;"> </span><span style="color: rgb(170, 85, 0); box-sizing: border-box;">// *1-4. 준비된 url로 데이터를 받아오는 작업</span></font></div>
<div><font style="font-size: 14px;"><span style="box-sizing: border-box;"> </span><span style="color: rgb(0, 0, 0); box-sizing: border-box;">URLSession</span><span style="color: rgb(0, 0, 0); box-sizing: border-box;">.shared.dataTask</span><span style="box-sizing: border-box;">(</span><span style="color: rgb(0, 0, 0); box-sizing: border-box;">with</span><span style="box-sizing: border-box;">:</span><span style="box-sizing: border-box;"> </span><span style="color: rgb(0, 0, 0); box-sizing: border-box;">url</span><span style="box-sizing: border-box;">)</span><span style="box-sizing: border-box;"> </span><span style="box-sizing: border-box;">{</span><span style="box-sizing: border-box;"> </span><span style="color: rgb(0, 0, 0); box-sizing: border-box;">data</span><span style="box-sizing: border-box;">,</span><span style="box-sizing: border-box;"> </span><span style="color: rgb(0, 0, 0); box-sizing: border-box;">response</span><span style="box-sizing: border-box;">,</span><span style="box-sizing: border-box;"> </span><span style="color: rgb(0, 0, 0); box-sizing: border-box;">error</span><span style="box-sizing: border-box;"> </span><span style="color: rgb(119, 0, 136); box-sizing: border-box;">in</span></font></div>
<div><font style="font-size: 14px;"><span style="box-sizing: border-box;"> </span><span style="box-sizing: border-box;">...</span><span style="box-sizing: border-box;"> </span><span style="color: rgb(170, 85, 0); box-sizing: border-box;">// 전달 받은 data, response, error 를 이용해 처리하는 블럭(클로저) </span></font></div>
<div><font style="font-size: 14px;"><span style="box-sizing: border-box;"> </span><span style="box-sizing: border-box;">}</span><span style="color: rgb(0, 0, 0); box-sizing: border-box;">.resume</span><span style="box-sizing: border-box;">()</span></font></div>
<div><span style="box-sizing: border-box;"><font style="font-size: 14px;">}</font></span></div>
<p>
</p>
<p>// 영화진흥공사 서버쪽</p>
<p class="api_intro_title">1. REST 방식</p>
<ul>
<li><span>기본 요청 URL : <a href="http://www.kobis.or.kr/kobisopenapi/webservice/rest/boxoffice/searchDailyBoxOfficeList.xml" target="_blank" rel="noopener noreferrer">http://www.kobis.or.kr/kobisopenapi/webservice/rest/boxoffice/searchDailyBoxOfficeList.xml</a> (또는 .json)</span></li>
<li><span>요청 parameter : 3번항의 요청 인터페이스 정보를 참조하여 GET 방식으로 호출</span></li>
</ul>
<p><a href="<a href="http://www.kobis.or.kr/kobisopenapi/webservice/rest/boxoffice/searchDailyBoxOfficeList.json?key=430156241533f1d058c603178cc3ca0e&targetDt=20120101" target="_blank" rel="noopener noreferrer">http://www.kobis.or.kr/kobisopenapi/webservice/rest/boxoffice/searchDailyBoxOfficeList.json?key=430156241533f1d058c603178cc3ca0e&targetDt=20120101</a>" target="balnk"><font color="#0066cc"><a href="http://www.kobis.or.kr/kobisopenapi/webservice/rest/boxoffice/searchDailyBoxOfficeList." target="_blank" rel="noopener noreferrer">http://www.kobis.or.kr/kobisopenapi/webservice/rest/boxoffice/searchDailyBoxOfficeList.</a><strong>json</strong></font><font color="#0066cc">?key=430156241533f1d058c603178cc3ca0e&targetDt=20120101</font></a></p>
<p>
댓글을 작성하려면 로그인이 필요합니다.
답변 1개
채택된 답변
+20 포인트
답변에 대한 댓글 1개
�
그누가사랑을모르나
7년 전
감사합니다. 해결했습니다. ^^
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인