1
시작하기
hanmj edited this page 7 months ago
xit-public-info란?
행정정보 공동이용 시스템에 연계하여 정보를 조회하는 모듈이다.
설치
xit-public-info를 사용하려면
- 프로젝트의 pom.xml에 의존성을 추가
- gpki.conf 설정
- intf-conf/public-info.conf 파일을 설정
한다.
의존성 추가
xit-public-info를 응용시스템에서 사용하려면 프로젝트의 pom.xml에 의존성을 다음과 같이 추가한다.
<dependency>
<groupId>cokr.xit.interfaces</groupId>
<artifactId>xit-public-info</artifactId>
<version>23.04.01-SNAPSHOT</version>
</dependency>
gpki.conf 설정
xit-public-info는 GPKI를 이용한 암호화 통신을 지원한다. GPKI 암호화를 사용하려면 gpki.conf를 설정한다.
public-info.conf 설정
클래스패스 상에 intf-conf 디렉토리와 public-info.conf 파일을 생성하고 다음 내용을 설정한다.
{
"정보서비스 이름": {
"apiKey": "행정정보 공동이용 서비스가 발급한 api key",
"apiUrl": "api 호출 URL",
"userServerId": "이용기관 gpki server id",
"providerServerId": "보유기관 gpki server id",
"gpki": true, /* GPKI 암복호화 사용 여부 */
"mock": false /* 보유기관 가상 데이터 사용 여부 */
}
}
다음은 '연료제원을 포함한 자동차 정보 조회'를 위한 설정 예이다.
{
"basic-info-ext": { /* 서비스 api 이름 */
"apiKey": "59f26bf09ed196bfbd98210388c4c6ea9dd0f77bde3f35526f082647a305325b", /* 행정정보 공동이용 서비스가 발급한 api key */
"apiUrl": "http://10.188.225.25:29001/piss/api/molit/SignguCarBassMatterInqireService", /* 미래행공 운영 호출 URL (행정망) */
/*"apiUrl": "http://10.188.225.94:29001/piss/api/molit/SignguCarBassMatterInqireService", /* 미래행공 개발 호출 URL (행정망) */
"userServerId": "SVR4050545002", /* 이용기관 gpki server id */
"providerServerId": "SVR1500000015", /* 보유기관 gpki server id */
"gpki": true, /* GPKI 암복호화 사용 여부 */
"mock": false /* 보유기관 가상 데이터 사용 여부 */
}
}
정보 요청/응답
정보 요청을 전송하고 응답을 수신하려면
ServiceClient
를 생성- public-info.conf에 정의한 서비스 이름을 설정
ServiceClient.request(...)
를 호출- 응답은
ServiceMessage.Response
로 반환
받는다.
다음은 위 예의 'basic-info-ext' 서비스를 실행하는 예다.
JSON json = new JSON();
MyRequest req = ...; // 사용자 정의 요청 객체
ServiceMessage.Response sresp = new ServiceClient()
.setConf("basic-info-ext") // basic-info-ext 서비스 정의 설정
.setJSON(json)
.request(req); // 요청 객체 전송
String body = sresp.getBody(); // 응답 본문 추출
if (sresp.success()) { // 성공한 응답
String data = ServiceMessage.Support.peel(body);
MyObject resp = json.parse(data, MyObject.class);
} else {
Throwable error = sresp.getError();
if (error != null)
throw runtimeException(error);
}