xit-lvis-24.06.01이란?
xit-lvis는 자동차관리 (차세대)정보시스템에 연계를 돕는 모듈로 java 17 이상에서 동작한다.
사전요건
- 행정정보 공동이용 시스템의 사용승인을 받아야 한다.
- 자동차관리 정보시스템에서
- 사용승인을 받아야 한다.
- 사용하려는 API의 cvms_apikey를 발급받아야 한다.
설치
xit-lvis를 사용하려면
- 응용시스템 프로젝트의 pom.xml에 의존성을 추가한다.
- xit-lvis와 관련 의존 모듈의 설정정보를 정의한다.
- 자동차 기본정보 조회의 로그를 저장하려면 응용시스템 DB에 로그 테이블을 생성한다.
의존성 추가
xit-lvis를 응용시스템에서 사용하려면 프로젝트의 pom.xml에 의존성을 다음과 같이 추가한다.
<dependency>
<groupId>cokr.xit.interfaces</groupId>
<artifactId>xit-lvis</artifactId>
<version>24.06.01-SNAPSHOT</version>
</dependency>
설정
gpki 지원 모듈 설정
public-info.conf
intf-conf/public-info.conf 파일을 열어 행정정보 공동이용 시스템 접속을 위한 정보를 다음과 같이 설정한다.
{
"host": "http://10.188.225.94:29001",
/* 행정정보 url
운영: http://10.188.225.25:29001
개발: http://10.188.225.94:29001
*/
"apis": [
{
"name": "lvis",
"userServerId": "이용기관 gpki server id",
"providerServerId": "보유기관 gpki server id",
"gpki": true, // 데이터 암복호화 사용 여부
"mock": false // 보유기관 가상 데이터 사용 여부
}
]
}
위 내용은 자동차관리 정보시스템 연계를 위한 행정정보 공동이용 시스템 접속 정보를 "lvis"라는 이름으로 정의한 것이다.
사용하려는 API의 url과 api_key는 아래 xit-lvis.conf에서 지정한다.
xit-lvis.conf
intf-conf/xit-lvis.conf 파일을 열어 사용하려는 API 정보를 설정한다.
{
"apis": [ /* api 아이디 및 uri 목록 */
{"id": "AC1_FD11_01", "uri": "/piss/api/molit/SignguCarBassMatterInqireService"}, /* 자동차 기본사항 조회 */
{"id": "AC1_FI59_03", "uri": "/piss/api/molit/SignguSeizrDtlsInqireService"}, /* 압류내역조회 */
{"id": "AC1_FI59_04", "uri": "/piss/api/molit/SignguAltrtvSeizrVhcleInfoService"}, /* 대체압류차량 */
{"id": "FI59_AC1_01", "uri": "/piss/api/molit/SignguCarSeizrRelisEttffService"} /* 압류연계등록 */
],
"clients": [ /* api 사용기관별 설정 */
{ "name": "설정 이름",
"sigunguCode": "시군구코드(필수)",
"deptCode": "부서코드",
"infoSysId": "정보시스템 ID(필수)",
"infoSysIp": "정보시스템 IP(필수)",
"chargerId": "담당자 id",
"chargerIp": "담당자 ip 주소",
"chargerName": "담당자명",
"publicInfo": "행정정보 공동이용 서비스 접속 설정(public-info.conf) 이름",
"apiSettings": [ /* api별 설정 */
{ "api": "api id",
"api_key": "행정정보 공동이용 서비스 발급 API 키",
/* "cntc_info_code": "연계정보코드, 연계정보코드가 api id와 다를 경우에만 설정", */
"cvmis_apikey": "교통안전공단 발급 API 키"
},
...
]
},
...
]
}
다음은 위 public-info.conf의 'lvis' 설정으로 접속하여 api 4종을 호출하도록 한 설정사례이다.
{
"apis": [
{"id": "AC1_FD11_01", "uri": "/piss/api/molit/SignguCarBassMatterInqireService"}, /* 자동차 기본사항 조회 */
{"id": "AC1_FI59_03", "uri": "/piss/api/molit/SignguSeizrDtlsInqireService"}, /* 압류내역조회 */
{"id": "AC1_FI59_04", "uri": "/piss/api/molit/SignguAltrtvSeizrVhcleInfoService"}, /* 대체압류차량 */
{"id": "FI59_AC1_01", "uri": "/piss/api/molit/SignguCarSeizrRelisEttffService"} /* 압류연계등록 */
],
"clients": [
{ "name": "default", /* 설정 이름 */
"sigunguCode": "28000", /* 시군구코드(필수) */
"deptCode": "", /* 부서코드 */
"infoSysId": "41-358", /* 정보시스템 ID(필수) */
"infoSysIp": "101.0.115.13", /* 정보시스템 IP(필수) */
"chargerId": "", /* 담당자 id */
"chargerIp": "", /* 담당자 ip 주소 */
"chargerName": "이광진", /* 담당자명 */
"publicInfo": "lvis", /* public-info.conf의 설정 'lvis' */
"apiSettings": [
{ "api": "AC1_FD11_01", /* 자동차 기본사항 조회 */
"api_key": "행정정보 공동이용 서비스 발급 API 키",
"cvmis_apikey": "교통안전공단 발급 API 키",
"log": true /* 로그 테이블 저장 여부 */
},
{ "api": "AC1_FI59_03", /* 압류내역조회 */
"api_key": "행정정보 공동이용 서비스 발급 API 키",
"cvmis_apikey": "교통안전공단 발급 API 키"
},
{ "api": "AC1_FI59_04", /* 대체압류차량 */
"api_key": "행정정보 공동이용 서비스 발급 API 키",
"cvmis_apikey": "교통안전공단 발급 API 키"
},
{ "api": "FI59_AC1_01", /* 압류연계등록 */
"api_key": "행정정보 공동이용 서비스 발급 API 키",
"cvmis_apikey": "교통안전공단 발급 API 키"
}
]
}
]
}
지원 API
자동차관리 정보시스템의 api를 사용하려면 cokr.xit.interfaces.lvis.service.VehicleInfoService를 사용한다.
@Resource(name="vehicleInfoService")
private VehicleInfoService service;
지원 API
VehicleInfoService는 자동차관리 정보시스템과 연계하여 다음 서비스를 지원한다.
findBasicInfo(..): 자동차 기본정보 조회getFrmrWlthReadng(..): 자동차 등록원부(갑), 현재 지원하지 않음getScldgrReadng(..): 자동차 등록원부(을), 현재 지원하지 않음getSeizureByVhrNo(..): 압류내역 조회addAutoSeizureByEttff(..): 압류내역 연계등록getAltrtvSeizureVhrno(..): 대체압류차량 정보 조회getCustodyTrget(..): 번호판 영치대상 조회, 현재 지원하지 않음
공통 파라미터
자동차관리 정보시스템에 요청을 전달할 때 포함되는 공통 파라미터는 다음과 같다.
- client: xit-lvis.conf의 클라이언트 설정 이름
- info_sys_id: 정보시스템 id
- info_sys_ip: 정보시스템 ip
- sigungu_code: 시군구 코드
- cntc_info_code : 정보연계 코드
- charger_id: 담당자 id
- charger_ip: 담당자 ip
- charger_nm: 담당자 이름
이중 다음 파라미터들은 xit-lvis가 설정하므로 응용시스템이 설정할 필요없다.
- info_sys_id
- info_sys_ip
- sigungu_code
- cntc_info_code
- charger_id
- charger_ip
- charger_nm
파라미터 'client'는 xit-lvis가 xit-lvis.conf의 이용기관 설정(clients)을 지정한다.
'client' 파라미터에 값을 지정하지 않으면 'default'라는 이름의 이용기관 설정을 찾는다.
API별 파라미터
자동차 기본정보 조회
- levy_stdde: 부과 기준일자
- vhrno: 자동차 등록번호
- vin: 차대번호
압류내역 조회
{
"vhrno": "자동차 등록번호",
"vin": "차대번호",
"detail_expression": "내역표시",
}
압류내역 연계 등록
{
"record": [
{
"vhrno": "자동차 등록번호",
"usr_mber_nm": "소유자 명",
"usr_mber_no": "소유자 주민번호",
"seizr_regist_se_code": "압류등록구분코드",
"ofldc_no": "압류공문서번호",
"ettff_grc_nm": "압류촉탁기관명",
"seizr_dt": "압류촉탁일",
"reg_dt": "압류촉탁등록일",
"seizr_dtls": "압류내역",
"seizr_amount": 압류금액,
"ettff_grc_telno": "촉탁기관 전화번호",
"reg_legaldong_code": "등록권리자 법정동코드",
"reg_adstrd_code": "등록권리자 행정동코드",
"reg_mntn": "등록권리자 산",
"reg_lnbr": "등록권리자 번지",
"reg_ho": "등록권리자 호",
"reg_adres_nm": "등록권리자 상세주소",
"reg_road_nm_code": "등록권리자 도로명코드",
"reg_undgrnd_buld_se_code": "등록권리자 지하건물구분코드",
"reg_buld_main_no": "등록권리자 건물주요번호",
"reg_buld_sub_no": "등록권리자 건물부번호",
"reg_mber_nm": "등록권리자 성명",
"reg_mber_no": "등록권리자 주민번호",
"seizr_requst_se_code": "압류요청구분코드",
"seizr_se_code": "압류구분코드",
"seizr_sttus_code": "압류상태코드",
"ntic_no": "고지번호",
"seizr_manage_no": "압류관리번호",
"seizr_ettff_grc_code": "압류촉탁기관코드"
}
]
}
대체 압류차량 조회
{
"vhrno": "자동차 등록번호",
"ihidnum": "대표소유자 주민번호"
}