인공지능기반대화형 생활법률지식서비스구축 OPEN API 매뉴얼 MOJ-DE-03-UX Copyright 2016 다음소프트 다음소프트의사전승인없이본내용의전부또는일부에대한복사, 전재, 배포, 사용을금합니다. 1
목 차 1. OPEN API 소개 3 2. OPEN API 매뉴얼 5 3. API 신청 17 2
1. OPEN API 소개 1.1 OPEN API(Application Program Interface) 란? 누구나사용할수있도록공개된 API" 로법무부법질서선진화과는대화형생활법률지식서비스관련 콘텐츠및데이터를누구나쉽게활용하고웹서비스및어플리케이션개발을지원하기위하여 API 를 외부에공개한것을말합니다. 위키피디아에서는 API 를 응용프로그램에서사용할수있도록만든 인터페이스 로정의하고있습니다. 이 API 를외부에서사용할수있도록공개한것이 OPEN API 이며, 웹서비스의개방지향적인성격을가지고있습니다. 1.2 제공서비스소개 1.3 서비스방식 REST(Representational State Transfer) 방식 REST 는월드와이드웹과같은분산하이퍼미디어시스템을위한 소프트웨어아키텍처의한형식으로, 로이필딩 (Roy Fielding) 의 2000 년박사학위논문에서소개되었습니다. 발표당시는대규모의네트워크시스템을위한방법이라는뜻이었지만최근이용되고있는 REST 는 HTTP 와 XML 을이용하여데이터를주고받는웹서비스를이용하는것으로쓰이고있습니다. 3
위그림에서 http:// 운영도메인 /openapi/service/cardnews.do?authkey= tmw7pzg7hsa46jwza6zspiijiloafz12&query= 변제권 같은 URL 을통해서데이터를요청하고있으며그결과는 XML 또는 JSON 형태로반환되며, 각각의 요청과반환되는 JSON 형식은아래와같은구조로이루어집니다. 위와같은방법을통해개발자는다양한매쉬업서비스및자체적인웹서비스, 응용 어플리케이션을제작할수있습니다. 4
2. OPEN API 매뉴얼 2.1 개발가이드 API 개발가이드 본가이드는대화형생활법률지식서비스콘텐츠를활용하기위한 OPEN API 개발가이드입니다. 본개발가이드는많은개발방법중한가지예시이며, 일반적인웹서비스클라이언트개발과는어느정도차이가있음을알려드립니다. 환경구성 -J2EE 기반의 OPEN API Client 개발을위한개발환경은아래와같습니다. 개발 Platform Java developer s kit Eclipse 3.4 JDK 1.6 추가적으로다음과같은 Library 파일이필요합니다. 종류 Library File Name Apache Commons Apache HttpComponents Commons-io-1.3.2.jar Commons-logging-1.2.jar Commons-codec-1.9.jar Httpclient-4.5.2.jar Httpcore-4.4.4.jar 위라이브러리가운데 Apache Commons 라이브러리 (http://commons.apache.org/) 와 HttpComponents(http://hc.apache.org/) 라이브러리는명시된버전넘버보다최신의것을 사용하셔도됩니다. 5
환경구성파일다운로드주소 개발 Platform http://www.eclipse.org/downloads/ Java developer's kit http://www.oracle.com/technetwork/java/javase/downloads/ index.html Apache Commons 라이브러리 http://commons.apache.org Http Components 라이브러리 http://hc.apache.org/ Httpclient JAVA 소스 /** * 대화형생활법률지식서비스 * 오픈 API Httpclient 샘플소스 * @return * @throws Exception */ public String samplecontents() throws Exception { String url = "http:// 운영도메인 /openapi/service/cardnews.do"; HttpClient client = HttpClientBuilder.create().build(); HttpPost post = new HttpPost(url); List<NameValuePair> urlparameters = new ArrayList<NameValuePair>(); urlparameters.add(new BasicNameValuePair("AUTHKEY", "tmw7pzg7hsa46jwza6zspiijiloafz12")); urlparameters.add(new BasicNameValuePair("QUERY", " 변제권 ")); urlparameters.add(new BasicNameValuePair("START", "1")); urlparameters.add(new BasicNameValuePair("DISPLAY", "10")); urlparameters.add(new BasicNameValuePair("BCATEGORY", "")); urlparameters.add(new BasicNameValuePair("MCATEGORY", "")); urlparameters.add(new BasicNameValuePair("SCATEGORY", "")); 6
urlparameters.add(new BasicNameValuePair("TAG", "")); post.setentity(new UrlEncodedFormEntity(urlParameters, "UTF-8")); HttpResponse response = client.execute(post); BufferedReader rd = new BufferedReader( new InputStreamReader( response.getentity().getcontent(), "UTF-8")); StringBuffer result = new StringBuffer(); String line = ""; while ((line = rd.readline())!= null) { } result.append(line); return result.tostring(); } 7
2.2 대화서비스 실시간대화서비스를통해생활법률지식서비스정보를제공합니다. 호출 URL 및대화상담화면 URL : http://112.175.32.84:8080/openapi/talk/openapitalk.do 호출 URL 및대화상담화면 8
2.3 카드뉴스 카드뉴스정보를제공합니다. 요청 URL URL : http:// 운영도메인 /openapi/service/cardnews.do 샘플 : http:// 운영도메인 /openapi/service/cardnews.do?authkey= tmw7pzg7hsa46jwza6zspiijiloafz12&query= 변제권 요청변수 요청변수 값 설명 AUTHKEY string 인증키 QUERY string 사용자검색어 START int 페이지번호 ( 기본값 : 1) DISPLAY int 페이지사이즈 ( 기본값 : 10) BCATEGORY string 대분류 MCATEGORY string 중분류 SCATEGORY string 소분류 TAG string 태그검색어 출력결과필드출력변수 값 설명 count int 검색결과개수 query string 사용자검색어 tag string 태그검색어 coll string 컨텐츠종류 b_cat_cd string 대분류코드 b_cat_nm string 대분류코드명 m_cat_cd string 중분류코드 m_cat_nm string 중분류코드명 s_cat_cd string 소분류코드 s_cat_nm string 소분류코드명 article_no string 글번호 summary string 요약 9
title string 제목 content string 내용 b_img_url string 이미지URL reg_dt date 등록일 mod_dt date 수정일 샘플페이지 {"count":1, "query":" 변제권 ", "list":[{ "result":[{ "summary":"' 우선변제권 </strong>' 이라고쓰고유비무환이라읽는다 ", "m_cat_cd":"004", "tag":" 우선변제권 \n\n보증금\n\n보증금변제\n\n보증금반환\n\n전세금반환\n\n전세금변제", "s_cat_nm":" 우선변제권 ", "s_img_url":"/cmsdata/editor/images/2016/11/09/03_1.jpg", "s_cat_cd":"013", "b_cat_nm":" 부동산임대차 ", "mod_dt":"", "reg_dt":"20161101", "b_cat_cd":"001", "content":"", "title":"' 우선변제권 </strong>' 이라고쓰고유비무환이라읽는다 ", "article_no":"9", "b_img_url":"/cmsdata/editor/images/2016/11/09/ckeditor_1478668012718_01.jpg", "m_cat_nm":" 주택임대차 "}], "count":1, "coll":"card_news"}]} 에러메시지 error : 인증키오류 시스템에러발생시메시지 10
2.4 생활법률카툰 생활법률카툰정보를제공합니다. 요청 URL URL : http:// 운영도메인 /openapi/service/cartoon.do 샘플 : http:// 운영도메인 /openapi/service/cartoon.do?authkey= tmw7pzg7hsa46jwza6zspiijiloafz12&query= 임대 요청변수 요청변수 값 설명 AUTHKEY string 인증키 QUERY string 사용자검색어 START int 페이지번호 ( 기본값 : 1) DISPLAY int 페이지사이즈 ( 기본값 : 10) BCATEGORY string 대분류 MCATEGORY string 중분류 SCATEGORY string 소분류 TAG string 태그검색어 출력결과필드출력변수 값 설명 count int 검색결과개수 query string 사용자검색어 tag string 태그검색어 coll string 컨텐츠종류 b_cat_cd string 대분류코드 b_cat_nm string 대분류코드명 m_cat_cd string 중분류코드 m_cat_nm string 중분류코드명 s_cat_cd string 소분류코드 s_cat_nm string 소분류코드명 article_no string 글번호 title string 제목 11
content string 내용 b_img_url string 이미지URL cartoon_url string 카툰URL reg_dt date 등록일 mod_dt date 수정일 샘플페이지 {"count":4, "query":" 임대 ", "list":[{ "result":[{ "m_cat_cd":"004", "tag":" 주택명도청구 \n\n명도청구\n\n대항력\n\n주민등록\n\n주택의인도\n\n전입신고 ", "s_cat_nm":" 대항력 ", "s_img_url":"/cmsdata/contents/images/cms_1479889834692_@temp_video_item03.jpg", "s_cat_cd":"012", "b_cat_nm":" 부동산임대차 ", "mod_dt":"", "reg_dt":"20161123", "b_cat_cd":"001", "content":" 임대 <\/strong> 계약기간중바뀐집주인이퇴거를요구하는경우 ", "title":" 계약기간중갑자기바뀐집주인!! 이럴땐어떻게?", "cartoon_url":"/cmsdata/contents/images/cartoon02.mp4", "article_no":"7", "b_img_url":"/cmsdata/contents/images/cms_1479889834622_@temp_video_item03.jpg", "m_cat_nm":" 주택임대차 " }], "count":4, "coll":"cartoon"}]} "coll":"card_news"}]} 에러메시지 error : 인증키오류 시스템에러발생시메시지 12
2.5 문답지식 문답지식정보를제공합니다. 요청 URL URL : http:// 운영도메인 /openapi/service/lawqna.do 샘플 : http:// 운영도메인 /lawqna.do?authkey=tmw7pzg7hsa46jwza6zspiijiloafz12&query= 전세금 요청변수 요청변수 값 설명 AUTHKEY string 인증키 QUERY string 사용자검색어 START int 페이지번호 ( 기본값 : 1) DISPLAY int 페이지사이즈 ( 기본값 : 10) BCATEGORY string 대분류 MCATEGORY string 중분류 SCATEGORY string 소분류 TAG string 태그검색어 출력결과필드출력변수 값 설명 count int 검색결과개수 query string 사용자검색어 tag string 태그검색어 coll string 컨텐츠종류 b_cat_cd string 대분류코드 b_cat_nm string 대분류코드명 m_cat_cd string 중분류코드 m_cat_nm string 중분류코드명 s_cat_cd string 소분류코드 s_cat_nm string 소분류코드명 article_no string 글번호 title string 제목 content string 내용 13
reg_dt date 등록일 mod_dt date 수정일 샘플페이지 {"count":3, "query":" 전세금 ", "list":[{ "result":[{ "content":" 영주권자는직접적으로주택임대차보호법의보호를받을수없으나전세권설정등기를하여보호를받을수있습니다. 영주권자인임차인에게전세권설정등기를하면임대차보증금 ( 전세금 <\/strong>) 을보호받을수있다는사실을알려주고, 전세계약을체결하시기바랍니다.", "title":" 임차인이대한민국국적의영주권자인데주택을임차할때보증금을보호할수있는방안이있으면주택을임차한다고합니다. 어떻게해주어야하나요.", "m_cat_cd":"004", "tag":"", "s_cat_nm":" 보증금반환 / 건물명도 ", "article_no":"1001414", "s_cat_cd":"016", "b_cat_nm":" 부동산임대차 ", "mod_dt":"", "reg_dt":"", "b_cat_cd":"001", "m_cat_nm":" 주택임대차 "}], "count":3, "coll":"law_qna"}]} 에러메시지 error : 인증키오류 시스템에러발생시메시지 14
2.6 법률용어사전 법률용어사진정보를제공합니다. 요청 URL URL : http:// 운영도메인 /openapi/service/dictionary.do 샘플 : http:// 운영도메인 /openapi/service/dictionary.do?authkey= tmw7pzg7hsa46jwza6zspiijiloafz12&query= 채권 요청변수 요청변수 값 설명 AUTHKEY string 인증키 QUERY string 사용자검색어 START int 페이지번호 ( 기본값 : 1) DISPLAY int 페이지사이즈 ( 기본값 : 10) BCATEGORY string 대분류 MCATEGORY string 중분류 SCATEGORY string 소분류 TAG string 태그검색어 출력결과필드출력변수 값 설명 count int 검색결과개수 query string 사용자검색어 tag 태그검색어 coll string 컨텐츠종류 article_no string 글번호 title string 제목 content string 내용 reg_dt date 등록일 mod_dt date 수정일 샘플페이지 15
{"count":201, "query":" 채권 ", "list":[{ "result":[{ "title_dp":"", "tag":"", "content_dp":"", "mod_dt":"", "reg_dt":"20161123", "content":" 상행위로생긴채권 </strong> 의소멸시효를말한다. 상행위로생긴채권 </strong>( 예 : 상행위인소비대차로생긴채권 </strong>) 의소멸시효기간은 5년이다 ( 상법제64조 ). 이것은민사채권 </strong>( 民事債權 ) 의소멸시효기간을 10년으로하고있는것 ( 민법...", "title":" 상사채권 </strong> 의소멸시효 ( 商事債權의消滅時效 )", "article_no":"378"}], "count":201, "coll":"dictionary"}]} 에러메시지 error : 인증키오류 시스템에러발생시메시지 16
3. API 신청법무부법질서선진화과는대화형생활법률지식서비스 OPEN API는 HTTP 요청및 XML 응답형식의프로토콜을지원합니다. 이를통해개발자는다양한매쉬업서비스및자체적인웹서비스, 응용어플리케이션을제작할수있습니다. 본서비스를사용하기위해서는먼저회원가입이필요합니다. 회원가입후인증기발급신청을통해인증키발급이필요합니다. 회원가입신청 인증키발급신청 오픈 API 신청내역 17