작년 매쉬업 대회 준비하면서 올린 파일인데, 오랜만에 보니 새롭게 느껴 지네요. 곧 매쉬업 대회 일정도 시작할것 같은데, Flash 로 매쉬업을 준비하시는 분들은 참고 하시기 바랍니다.
오픈 API란 무엇인가요?
오픈 API(OpenAPI)란 자사의 API를 외부에 공개한 것으로 일반적으로 웹 서비스(Web Services)형태로 공개한 것을 말합니다. 위키피디어에서는 API를 "응용 프로그램에서 사용할 수 있도록 운영 체제나 프로그래밍 언어가 제공하는 기능을 제어할 수 있도록 만든 인터페이스"로 정의하고 있습니다.
즉, 원래는 운영체제나 언어가 제공하는 기능을 제어할 수 있는 인터페이스였으나 이를 웹서비스에서는 특정 서비스를 이용할 수 있는 인터페이스를 API라 지칭하였습니다. 또한 이것을 외부에서 사용할 수 있도록 공개한것이 오픈 API며, 웹 서비스의 개방지향적인 성격을 잘 나타내고 있습니다. 일반적으로 오픈 서비스 API, 웹 서비스 API등의 용어와 혼용하여 비슷한 의미로 사용되고 있습니다.
이런 것이지요? ㅎㅎ 대표적으로 한국에서는 다음, 네이버, 옥션, 야후 등이 서비스를 하고 있습니다.
-
package yahweh.openapi
-
{
-
import flash.system.System;
-
import flash.display.*;
-
import flash.events.*;
-
import flash.net.*;
-
import flash.xml.*;
-
-
-
public class ImageLoader extends EventDispatcher{
-
private var mInfo:Object;// OpenAPI 를 쓰기 위한 준비 내용이 들어 있다.
-
private var xmlInfo:Object;
-
public var outXMLdata:XML;
-
-
// constructor
-
public function ImageLoader():void {// 초기화 시킨다.
-
-
mInfo={apiURL:"http://openapi.naver.com/search?target=image",
-
apiKey:"", // 자신의 네이버 APIKEY 를 입력
-
query:"",
-
displayNum:10};
-
-
}
-
-
// main function
-
public function main_loadPage(_page:Number,_query:String):void {// 메인 페이지가 로드 될때 불러와 진다.
-
var page = _page + 1;
-
api_load(_query,page,mInfo.displayNum);
-
-
}
-
-
// API load function
-
private function api_load(_query:String,_page:Number,_displayNum:Number):void {
-
System.useCodePage = false;
-
var page = _page*_displayNum;
-
var loader:URLLoader=new URLLoader ;
-
loader.addEventListener(Event.COMPLETE,api_loadComplete);
-
loader.addEventListener(IOErrorEvent.IO_ERROR,api_loadError);
-
var requestURL=mInfo.apiURL + "&key=" + mInfo.apiKey + "&query=" +encodeURI(_query) + "&start=" + page + "&display=" + _displayNum;
-
trace("requestURL = " + requestURL);
-
var request:URLRequest=new URLRequest(requestURL);
-
loader.load(request);
-
//
-
-
}
-
private function api_loadComplete(event:Event):void {
-
-
trace("api load complete");
-
var loader:URLLoader=URLLoader(event.target);
-
var dataXML=new XML(loader.data);
-
outXMLdata = dataXML;
-
trace(dataXML);
-
dispatchEvent(new Event(Event.COMPLETE));
-
// 컨테이너에 연결 시킨다.
-
-
}
-
private function api_loadError(error:IOErrorEvent):void {
-
trace("api load error");
-
-
}
-
-
}// End Class
-
} |
쿼리를 날리는 as 파일입니다. 제 api 키가 들어 있으니;; 무한 실행은 하지 마시고요;;
swf 를 올리니깐 인터넷상이라 그런지 이미지가 실시간으로 안불러와 지더군요. 소스 올릴테니 참고하세요.