API STORE 키발급및 API 사용가이드 Document Information 문서명 : API STORE 언어별 Client 사용가이드작성자 : 작성일 : 2012.11.23 업무영역 : 버전 : 1 st Draft. 서브시스템 : 문서번호 : 단계 : Document Distribution Copy Number Name(Role, Title) Date Contact (Phone/email) Revision History 버전 날짜 작성자 내용 1 st Draft 2012.11.23 초안작성 V.0.5 2013.01.21 WAPLE 적용내역업데이트 Copyright (c) KTH All Rights Reserved 1 / 9
목차 1. API 사용하기... 3 1.1 요청 API URL... 3 1.2 인증... 3 1.3 응답과요청샘플... 3 2. JAVA Client 사용하기... 4 2.1 client 설치... 4 2.2 API 호출... 5 3. Python Client 사용하기... 6 3.1 client 설치... 6 3.2 API 호출... 6 4. PHP Client 사용하기... 7 4.1 client 설치... 7 4.2 API 호출... 7 5. Ruby Client 사용하기... 7 5.1 client 설치... 7 5.2 API 호출... 8 6. Objective C Client 사용하기... 8 6.1 client 설치... 8 6.2 API 호출... 9 Copyright (c) KTH All Rights Reserved 2 / 9
1. API 사용하기 Api Store 의 API 를호출하기위해서는각언어별로제공하는클라이언트라이브러리를사용하는방식 과직접연동하는방식이가능합니다. API 의입력파라메터와응답결과는 Documentation 을참조하시 면됩니다. 1.1 요청 API URL 요청 API URL 은다음과같이구성됩니다. http://api.openapi.io/ + apiroot(of Api) + "/" + other Path and Query 1.2 인증 회원가입시발급받은 Key 의코드값을헤더 "x-waple-authorization" 의값으로설정합니다. x-waple-authorization: MS0xMzU2OTI3OTI0NzcyLTdmZmM1ODllLTMyMzUtNDczZS1iYzU4LTllMzIzNTI3M2VlMg== 오류발생시다음과같이 4 가지의오류가있습니다. 상황 응답상태코드 Key 가유효하지않은경우 401(Unauthorized) 사용량이초과된경우 Waple 내부의오류 Provider 의오류 403(Forbidden) 500(Internal Server Error) 받은상태코드를그대로 1.3 응답과요청샘플 REQUSET POST http://api.openapi.io/provider_api/user?a=1&b=2&c=3 x-waple-authorization: MS0xMzU2OTI3OTI0NzcyLTdmZmM1ODllLTMyMzUtNDczZS1iYzU4LTllMzIzNTI3M2VlMg== content-length: 0 host: localhost:8099 connection: Keep-Alive Copyright (c) KTH All Rights Reserved 3 / 9
user-agent: Apache-HttpClient/4.2.1 (java 1.5) RESPONSE 200 Content-Type: application/json Date: Mon, 31 Dec 2012 04:25:25 GMT Access-Control-Allow-Origin: * UserResource.doPost() called. 2. JAVA Client 사용하기 2.1 client 설치 APi Store 에서제공하는 Java Client 는다음의라이브러리가필요합니다. - commons-codec.jar - commons-httpclient.jar - commons-logging.jar - httpcore.jar 그림 java Client Project 구성 Copyright (c) KTH All Rights Reserved 4 / 9
2.2 API 호출 다음은자동생성된 Client 소스입니다. API url 과요청파라메터가설정되어있으며사용자는원하는파라메터를입력하면됩니다. 인증의경우회원가입후받으신 client key 와 secret 을입력하시면됩니다. import java.io.ioexception; public class usage_example { public static void main(string[] args) throws IOException { //api request method String httpmethod = "GET"; //api url String url = "http://api.openapi.io/iptr/"; // 원하시는 api parameter 를입력합니다. String parameter = "?parameter=parametervalue&"; // 회원가입시받은 client key 를입력합니다. String clientkey = "CLIENT_KEY"; ApistoreTestClient client = new ApistoreTestClient(); String response = client.httpapistoretest(url, httpmethod, clientkey, parameter); response); } //now you can do something with the response. System.out.println("API Call returned a response code of " + } API 호출시다음과같이결과를출력합니다. 그림 API 호출결과 Copyright (c) KTH All Rights Reserved 5 / 9
3. Python Client 사용하기 3.1 client 설치 Api store 에서제공하는라이브러리는다음과같습니다. Python 실행환경이정상적으로구성된경우 추가적으로설치하실사항은없습니다. 그림 python Client Project 구성 3.2 API 호출 usage_example.py 를참조하여 api 를호출합니다. 상세내역은다음과같습니다. from http_client import HttpClient httpmethod = "GET"; url = "http://api.openapi.io/iptr/" parameters = "?parameter=parametervalue&"; # Client Key 를입력합니다. clientkey = "CLIENT_KEY"; contenttype = "application/x-www-form-urlencoded"; # HttpClient 를생성합니다. client = HttpClient() # http 요청을보냅니다. response = client.sendrequest(httpmethod, url, parameters, clientkey, contenttype) # 응답을받아사용합니다. print vars(response) Copyright (c) KTH All Rights Reserved 6 / 9
위와같이설정한후실행하시면 API 로부터원하는응답을받을수있습니다. 4. PHP Client 사용하기 4.1 client 설치 Api Store 에서제공하는 PHP Client 를사용하기위해서는 PHP 환경에 curl 이기본적으로설치되어 있어야합니다. 4.2 API 호출 Api 호출을위해서 usage_example.php 를사용자환경에맞게수정하여사용하시면됩니다. <?php $httpmethod = "GET"; $url = "http://api.openapi.io/iptr/"; $parameters = "?parameter=parametervalue&"; // 사용자 client key 를입력합니다. $clientkey = "CLIENT_KEY"; $contenttype = "Content-Type: application/x-www-form-urlencoded"; //api 를호출합니다. $response = sendrequest($httpmethod, $url, $parameters, $clientkey, $contenttype); // 결과를받아서사용합니다. echo($response);?> 5. Ruby Client 사용하기 5.1 client 설치 Api Store 에서제공하는 Ruby Client 는 http_client.rb 와 usage_example.rb 로구성되어있습니다. Copyright (c) KTH All Rights Reserved 7 / 9
그림 Ruby Client Project 구성 5.2 API 호출 Api 호출을위해서 usage_example.rb 를사용자환경에맞게수정하여사용하시면됩니다. require File.join(File.dirname( FILE ), "/http_client.rb") #api request method httpmethod = "GET" #api url url = "http://api.openapi.io/iptr/" #api parameters 를입력합니다. parameters = {} parameters = parameters.merge({"parameter_name" => "parameter_value"}) # 발급받은 Client Key 를사용하여 request header 를생성합니다 contenttype = "application/x-www-form-urlencoded" clientkey = "CLIENT_KEY" #send request response = Apistore::HttpClient.do_request(httpmethod, url, parameters, clientkey, contenttype) #api response puts response 6. Objective C Client 사용하기 6.1 client 설치 Api Store 에서제공하는 Objective C Client 는다음과같이구성되어있습니다. Copyright (c) KTH All Rights Reserved 8 / 9
그림 Objective C Client Project 구성 6.2 API 호출 Api 호출을위해서 usage_example.m 을사용자환경에맞게수정하여사용하시면됩니다. #import "ApistoreTestClient.h" @interface sample : NSObject + (void) dosomething; @end @implementation sample + (void) dosomething { ApistoreTestClient* client = [[ApistoreTestClient alloc] clientkey:@"client_key"]; ApistoreResponse* response = [client httpapistoreclient:@"fill IN PARAMETERS"]; } @end NSLog(@"The HTTP status code is %d", [response code]); NSLog(@"The HTTP headers are %@", [response headers]); NSLog(@"The HTTP parsed body is %@", [response body]); NSLog(@"The HTTP raw body is %@", [response rawbody]); 위의 Client library 는무료로사용가능하며문의사항이나의견은이메일 (apistore.help@kthcorp.co.kr) 로보내주시기바랍니다. Copyright (c) KTH All Rights Reserved 9 / 9