메뉴 건너뛰기

app

[PHP] 나라기록검색서비스 OpenApi Library for PHP

박영식2008.07.25 13:41조회 수 3009댓글 0

  • 1
    • 글자 크기
나라기록검색 OpenAPI Library for PHP



나라기록검색 OpenAPI Library for PHP는 나라기록검색 OpenAPI를 PHP에서 사용할 수 있게 해주는 라이브러리입니다. XML파싱과 HTTPREQUEST로 XML을 요청하기 위해 xmlparser class와 httprequest class를 사용하였습니다.




작성자 : 박영식




나라기록검색 OpenAPI Library for PHP에 관해 버그 신고를 하거나, 기타 문의할 부분이 있다면, 작성자(박영식)에게 연락을 주세요. 제 홈페이지(http://lispro.ohpy.com)나 메일(suritam9@nate.com) 등으로 연락하시면 됩니다.




다운로드


나라기록검색 OpenAPI Library for PHP는 제 홈페이지에서 받을 수 있습니다.(이 게시물)


 




<aos.zip 의 구성>




PHP.HTTPRequest.php // httprequest class


xmlparser.php // xmlpasing class


aos.php // 나라기록검색 OpenApi Library for PHP


aostest.php // aos 테스트 파일




의존성


나라기록검색 OpenAPI Library for PHP은 다음과 같은 조건을 만족해야 사용할 수 있습니다.


        PHP 5.1 이상


        SPL - Standard PHP Library


        SimpleXML




인클루드 한 라이브러리




        XML Parser Class (GNU General Public License)


        PHP.HTTPRequest (GNU General Public License)




나라기록검색 OpenAPI Library for PHP에서는 PHP함수 file_get_contents()를 서버에서 사용할 수 없는 경우를 위해 HTTPRequest를 사용했습니다.




        aos.php를 포함시키시면 상기한 라이브러리를 포함하고 있습니다.




        require_once 'aos.php';




라이브러리를 로드한 다음에는 나라기록검색 OpenAPI를 사용하기 위해 인증키를 발급 받으셔야합니다.




나라기록검색 서비스담당자(국가기록원 나라기록검색서비스 웹마스터, arc-search@mopas .go.kr)에게 아래 정보를 기록하여서 메일을 보내시면, 인증키를 메일로 발송하여 드립니다. 발급 받은 인증키를 이용하여 OpenAPI를 이용 하실 수 있습니다.


   - 기관명


   - 기관주소


   - 담당자명


   - 전화번호


   - 이메일


   - 사용목적


자세한 내용은 나라기록 100배 활용하기 나라기록검색 OpenAPI 활용을 참고하세요.


http://search.archives.go.kr/ArchivesHelp06.htm


라이브러리를 로드한 다음에는 api키를 설정합니다.


Aos::$aoskey = '나라기록검색서비스 openAPI key';


참고문서에는 rc_type이 필수 parameter로 되어 있는데, 요청하지 않으면, rfile과 ritem이 같이 나옵니다. 그래서 더 많은 검색결과가 제공됩니다.


display의 기본값이 10이라고 되어 있는데, 현재는 20개가 나옵니다.




검색어를 입력하며, 여러 결과를 출력해 주는데, 검색어를 지정합니다.


        $query = "검색어";




원하는 검색결과를 다음과 같이 제공합니다.


1. 검색결과


        제공되는 검색결과 : total, title, prod_name, prod_year, is_open, link


                            rc_code, rc_rfile_no, rc_ritem_no


2. 상세정보 page(HTML scrapping)


상세정보와 철의 경우 관련 건, 건의 경우 철제목에 대한 상세정보 page를 리턴합니다.




※ 현재 링크에 QUERY가 달리지 않아, QUERY를 붙여주는 처리를 했습니다.




- 검색하기 : 아래와 같이 생성하게 되면, 결과가 리턴됩니다.


       $result = new Aos($query,$param); // 생성


1. 검색결과는 search함수로 $param차이를 두고 요청합니다. 결과는 각 변수에 저장되어 있으며, $result->item->rc_code, $result->item->title 등으로 이용하시면 됩니다. 첫 번째 결과의 경우는 item[1]->title, 두 번째 결과는 item[2]->title로 사용하게 되어 있습니다.


예제코드


<?


    include_once 'aos.php'; // 필수 라이브러리
    Aos::$aoskey=""; // 필수 apikey
    $query="검색어"; // 필수 쿼리
    $prod_year_from;
    $prod_year_to;
    $prod_code;
    $is_open;
    $online_reading="Y";
    $record_type;
    $doc_type;
    $mgt_organ;
    $sort;
    $order;
    $display=7; // 기본 설정
    $pageno=1; // 기본 설정
    $param="&prod_year_from=".$prod_year_from."&prod_year_to=".$prod_year_to."&prod_code=".$prod_code."&is_open=".$is_open."&online_reading=".$online_reading."&record_type=".$record_type."&doc_type=".$doc_type."&mgt_organ=".$mgt_organ."&sort=".$sort."&order=".$order."&display=".$display."&pageno=".$pageno;

    $result = new Aos($query,$param); // 생성자


echo $result->title."(".$result->total.")"; // 국가기록원 오픈 API 검색 결과(int)


    foreach($result->item as $item):
        echo "<li>".$item->title."</li>";
    endforeach


?>


-----------------------------결----------------과-------------------------------------


국가기록원 오픈 API 검색 결과(3)


  • 농업경제 문헌검색어집 1985.12

  • 농업경제 문헌검색어집(제5-10호)

  • 한국행정사 문헌목록집
  • -------------------------------------------------------------------------------------------

    레퍼런스


    생성자 : $name = new Aos(string $query, string $param)


    매서드 : $name->Aos(string $query, string $param)


            url을 생성하고, 파싱함수를 호출한다.


            $name->parsing(string $url)


            생성된 url을 httprequest로 요청하여 파싱하고, 간단한 변수에 저장한다.


            $name->doc_type(string $type)


            기호로 된 기록물 형태를 설명글로 반환한다.


            $name->arcave_type(string $type)


            기호로 된 기록물 유형을 설명글로 반환한다.


           $name->link(string $url)


            해당 url 정보의 내용을 출력합니다.



    멤버    $result = new Aos(string $query, string $param); // 생성


            $result->title; // 요청 url 문서의 title


            $result->total; // 검색 총 개수


            $result->url; // 요청 url
           $result->query; // 요청한 query

    // 요청 파라미터 //
        $result->pageno;
        $result->display;
        $result->prod_year_from;
        $result->prod_year_to;
        $result->prod_code;
        $result->is_open;
        $result->online_reading;
        $result->record_type;
        $result->doc_type;
        $result->mgt_organ;
        $result->sort;
        $result->order;
    // 요청 파라미터 //


            $result->item->rc_type; // 개별 검색 결과 철/건구분(철:RFILE/건:RITEM)




            $result->item->rc_code, ; //기록물 연계 기관 번호,기록물 철 번호


            $result->item->rc_rfile_no; //,기록물 건 번호를 뜻합니다.


            $result->item->rc_ritem_no; //내부적으로 검색된 해당 기록물을 찾아가기


                                                            위한 키로 사용됩니다.




            $result->item->title; // 검색결과 문서의 제목[철제목, 건제목]


            $result->item->is_open; // 공개구분


            $result->item->prod_year; // 생산년도


            $result->item->prod_name; // 생산기관명


            $result->item->mgt_org_name; // 소장기관명


            $result->item->arcave_type; // 기호로 표시한 기록물 유형


            기록물 유형


    [01:일반기록물, 02:시청각기록물, 03:대통령기록물, 04:총독부기록물, 05:정부간행물, 06:해외기록물, 07:역사기록물, 08:행정박물, 09:민간기록물, 10:영화필름, 11:방송프로그램]


            $result->item->arcavetype; // 설명글로 표시한 기록물 유형


            $result->item->doc_type; // 기호로 표시한 기록물 형태


            기록물 형태


    [1:행정박물(관인류), 2:행정박물(상징기념물), 3:행정박물(사무집기류), 4:행정박물(기타), A:일반문서류, B:도면류, C:사진,필름류, D:녹음,동영상류, E:카드류, F:대장류, G:국무회의록, H:지도, I:대통령전자문서, M:정부간행물, O:일반도서, P:총독부간행물]


            $result->item->doctype; // 설명글로 표시한 기록물 형태

    박영식 (비회원)
    • 1
      • 글자 크기
    대한민국 zip 코드 한국zipcode (by 박영식) [PHP] XML 파서 (by 박영식)

    댓글 달기

    박영식
    2010.09.09 조회 4787
    박영식
    2010.05.25 조회 4090
    박영식
    2010.01.14 조회 4969
    박영식
    2009.09.21 조회 4146
    박영식
    2008.08.18 조회 6061
    박영식
    2008.08.17 조회 4192
    박영식
    2008.07.24 조회 4621
    박영식
    2008.07.23 조회 7998
    박영식
    2008.07.22 조회 3347
    박영식
    2008.04.11 조회 2198
    박영식
    2008.01.20 조회 2038
    박영식
    2007.12.23 조회 3222
    첨부 (1)
    aos_v1.zip
    9.3KB / Download 59
    위로