Merge remote-tracking branch 'origin/master'
This commit is contained in:
commit
61eb51a4a1
9
data/dataxml/uac.service.nlib.col.getItemInfo_GET.xml
Normal file
9
data/dataxml/uac.service.nlib.col.getItemInfo_GET.xml
Normal file
@ -0,0 +1,9 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<results>
|
||||
<!-- 상세내용 -->
|
||||
<resultCode>S001</resultCode>
|
||||
<resultMessage>정상적으로 조회되었습니다.</resultMessage>
|
||||
<masterId>1111111</masterId>
|
||||
<title>제목입니다.</title>
|
||||
<typeCodeNm>도서간행물</typeCodeNm>
|
||||
</results>
|
||||
@ -22,22 +22,22 @@ public class BoardDAOApi extends DataApi
|
||||
|
||||
public DataApiResVO listNotices(DataApiReqVO reqVO) {
|
||||
reqVO.setReqUrl(RESOURCE_URI + "/notice/list");
|
||||
return get(reqVO);
|
||||
return request(reqVO);
|
||||
}
|
||||
|
||||
public DataApiResVO selectNotice(DataApiReqVO reqVO) {
|
||||
reqVO.setReqUrl(RESOURCE_URI + "/notice");
|
||||
return get(reqVO);
|
||||
return request(reqVO);
|
||||
}
|
||||
|
||||
public DataApiResVO listFAQs(DataApiReqVO reqVO) {
|
||||
reqVO.setReqUrl(RESOURCE_URI + "/faq/list");
|
||||
return get(reqVO);
|
||||
return request(reqVO);
|
||||
}
|
||||
|
||||
public DataApiResVO selectFAQ(DataApiReqVO reqVO) {
|
||||
reqVO.setReqUrl(RESOURCE_URI + "/faq");
|
||||
return get(reqVO);
|
||||
return request(reqVO);
|
||||
}
|
||||
|
||||
|
||||
@ -49,12 +49,12 @@ public class BoardDAOApi extends DataApi
|
||||
*/
|
||||
public DataApiResVO listQnAs(DataApiReqVO reqVO) {
|
||||
reqVO.setReqUrl(RESOURCE_URI + "/qna/list");
|
||||
return get(reqVO);
|
||||
return request(reqVO);
|
||||
}
|
||||
|
||||
public DataApiResVO selectQnA(DataApiReqVO reqVO) {
|
||||
reqVO.setReqUrl(RESOURCE_URI + "/qna");
|
||||
return get(reqVO);
|
||||
return request(reqVO);
|
||||
}
|
||||
|
||||
public DataApiResVO verifyWriter(DataApiReqVO reqVO) {
|
||||
@ -63,17 +63,17 @@ public class BoardDAOApi extends DataApi
|
||||
|
||||
public DataApiResVO updateQnA(DataApiReqVO reqVO) {
|
||||
reqVO.setReqUrl(RESOURCE_URI + "/qna");
|
||||
return post(reqVO);
|
||||
return request(reqVO);
|
||||
}
|
||||
|
||||
public DataApiResVO deleteQnA(DataApiReqVO reqVO) {
|
||||
reqVO.setReqUrl(RESOURCE_URI + "/qna");
|
||||
return delete(reqVO);
|
||||
return request(reqVO);
|
||||
}
|
||||
|
||||
public DataApiResVO insertQnA(DataApiReqVO reqVO) {
|
||||
reqVO.setReqUrl(RESOURCE_URI + "/qna");
|
||||
return put(reqVO);
|
||||
return request(reqVO);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -121,8 +121,8 @@ public class BoardControllerApi extends NlibCommonController
|
||||
DataApiReqVO reqVO = new DataApiReqVO();
|
||||
reqVO.setPageIndex(pageIndex);
|
||||
reqVO.setPageSize(pageSize);
|
||||
reqVO.addInfoItem("searchKeyword", searchKeyword);
|
||||
reqVO.addInfoItem("articleType", articleType);
|
||||
reqVO.putInfoItem("searchKeyword", searchKeyword);
|
||||
reqVO.putInfoItem("articleType", articleType);
|
||||
|
||||
// 요청
|
||||
DataApiResVO resVO = boardService.listNotices(reqVO);
|
||||
@ -135,7 +135,7 @@ public class BoardControllerApi extends NlibCommonController
|
||||
// itemsCount: 255
|
||||
// }
|
||||
HashMap<String, Object> retMap = new HashMap<String, Object>();
|
||||
retMap.put("data", resVO.getList());
|
||||
retMap.put("data", resVO.getList("record"));
|
||||
retMap.put("itemsCount", resVO.getRecordTotCount());
|
||||
|
||||
return makeResponseEntityJson(retMap);
|
||||
@ -172,8 +172,8 @@ public class BoardControllerApi extends NlibCommonController
|
||||
DataApiReqVO reqVO = new DataApiReqVO();
|
||||
reqVO.setPageIndex(pageIndex);
|
||||
reqVO.setPageSize(pageSize);
|
||||
reqVO.addInfoItem("boardNo", "QNA"); // 게시판ID
|
||||
reqVO.addInfoItem("articleNo", articleNo); // 게시물번호
|
||||
reqVO.putInfoItem("boardNo", "QNA"); // 게시판ID
|
||||
reqVO.putInfoItem("articleNo", articleNo); // 게시물번호
|
||||
|
||||
// 요청
|
||||
DataApiResVO resVO = boardService.selectNotice(reqVO);
|
||||
@ -181,8 +181,8 @@ public class BoardControllerApi extends NlibCommonController
|
||||
// 반환 정보
|
||||
model.addAttribute("articleNo" , articleNo);
|
||||
model.addAttribute("article" , resVO.getInfo()); // 게시물 상세
|
||||
model.addAttribute("preArticle" , resVO.getList().get(0)); // 이전글 정보
|
||||
model.addAttribute("nextArticle" , resVO.getList().get(1)); // 다음글 정보
|
||||
model.addAttribute("preArticle" , resVO.getList("record").get(0)); // 이전글 정보
|
||||
model.addAttribute("nextArticle" , resVO.getList("record").get(1)); // 다음글 정보
|
||||
model.addAttribute("message" , message);
|
||||
model.addAttribute("pageIndex" , pageIndex);
|
||||
model.addAttribute("pageSize" , pageSize);
|
||||
@ -264,8 +264,8 @@ public class BoardControllerApi extends NlibCommonController
|
||||
DataApiReqVO reqVO = new DataApiReqVO();
|
||||
reqVO.setPageIndex(pageIndex);
|
||||
reqVO.setPageSize(pageSize);
|
||||
reqVO.addInfoItem("searchKeyword", searchKeyword);
|
||||
reqVO.addInfoItem("faqType", faqType);
|
||||
reqVO.putInfoItem("searchKeyword", searchKeyword);
|
||||
reqVO.putInfoItem("faqType", faqType);
|
||||
|
||||
// 요청
|
||||
DataApiResVO resVO = boardService.listFAQs(reqVO);
|
||||
@ -278,7 +278,7 @@ public class BoardControllerApi extends NlibCommonController
|
||||
// itemsCount: 255
|
||||
// }
|
||||
HashMap<String, Object> retMap = new HashMap<String, Object>();
|
||||
retMap.put("data", resVO.getList());
|
||||
retMap.put("data", resVO.getList("record"));
|
||||
retMap.put("itemsCount", resVO.getRecordTotCount());
|
||||
|
||||
return makeResponseEntityJson(retMap);
|
||||
@ -303,14 +303,14 @@ public class BoardControllerApi extends NlibCommonController
|
||||
// REQ VO 구성
|
||||
//-------------------------------
|
||||
DataApiReqVO reqVO = new DataApiReqVO();
|
||||
reqVO.addInfoItem("boardNo", "FAQ"); // 게시판ID
|
||||
reqVO.addInfoItem("articleNo", articleNo); // 게시물번호
|
||||
reqVO.putInfoItem("boardNo", "FAQ"); // 게시판ID
|
||||
reqVO.putInfoItem("articleNo", articleNo); // 게시물번호
|
||||
|
||||
// 요청
|
||||
DataApiResVO resVO = boardService.selectFAQ(reqVO);
|
||||
|
||||
// 반환 정보
|
||||
return makeResponseEntityJson(resVO.getInfo());
|
||||
return makeResponseEntityJson(resVO);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -369,7 +369,7 @@ public class BoardControllerApi extends NlibCommonController
|
||||
DataApiReqVO reqVO = new DataApiReqVO();
|
||||
reqVO.setPageIndex(pageIndex);
|
||||
reqVO.setPageSize(pageSize);
|
||||
reqVO.addInfoItem("searchKeyword", searchKeyword);
|
||||
reqVO.putInfoItem("searchKeyword", searchKeyword);
|
||||
|
||||
// 요청
|
||||
DataApiResVO resVO = boardService.listQnAs(reqVO);
|
||||
@ -382,7 +382,7 @@ public class BoardControllerApi extends NlibCommonController
|
||||
// itemsCount: 255
|
||||
// }
|
||||
HashMap<String, Object> retMap = new HashMap<String, Object>();
|
||||
retMap.put("data", resVO.getList());
|
||||
retMap.put("data", resVO.getList("record"));
|
||||
retMap.put("itemsCount", resVO.getRecordTotCount());
|
||||
|
||||
return makeResponseEntityJson(retMap);
|
||||
@ -424,8 +424,8 @@ public class BoardControllerApi extends NlibCommonController
|
||||
DataApiReqVO reqVO = new DataApiReqVO();
|
||||
reqVO.setPageIndex(pageIndex);
|
||||
reqVO.setPageSize(pageSize);
|
||||
reqVO.addInfoItem("boardNo", "QNA"); // 게시판ID
|
||||
reqVO.addInfoItem("articleNo", articleNo); // 게시물번호
|
||||
reqVO.putInfoItem("boardNo", "QNA"); // 게시판ID
|
||||
reqVO.putInfoItem("articleNo", articleNo); // 게시물번호
|
||||
|
||||
// 요청
|
||||
DataApiResVO resVO = boardService.selectQnA(reqVO);
|
||||
@ -433,8 +433,8 @@ public class BoardControllerApi extends NlibCommonController
|
||||
// 반환 정보
|
||||
model.addAttribute("articleNo" , articleNo);
|
||||
model.addAttribute("article" , resVO.getInfo()); // 게시물 상세
|
||||
model.addAttribute("preArticle" , resVO.getList().get(0)); // 이전글 정보
|
||||
model.addAttribute("nextArticle" , resVO.getList().get(1)); // 다음글 정보
|
||||
model.addAttribute("preArticle" , resVO.getList("record").get(0)); // 이전글 정보
|
||||
model.addAttribute("nextArticle" , resVO.getList("record").get(1)); // 다음글 정보
|
||||
model.addAttribute("message" , message);
|
||||
model.addAttribute("pageIndex" , pageIndex);
|
||||
model.addAttribute("pageSize" , pageSize);
|
||||
@ -490,11 +490,11 @@ public class BoardControllerApi extends NlibCommonController
|
||||
// REQ VO 구성
|
||||
//-------------------------------
|
||||
DataApiReqVO reqVO = new DataApiReqVO();
|
||||
reqVO.addInfoItem("boardNo" , "QNA");
|
||||
reqVO.addInfoItem("title" , paramMap.get("title"));
|
||||
reqVO.addInfoItem("regUserName" , paramMap.get("regUserName"));
|
||||
reqVO.addInfoItem("email" , paramMap.get("email"));
|
||||
reqVO.addInfoItem("contentQeust", paramMap.get("contentQeust"));
|
||||
reqVO.putInfoItem("boardNo" , "QNA");
|
||||
reqVO.putInfoItem("title" , paramMap.get("title"));
|
||||
reqVO.putInfoItem("regUserName" , paramMap.get("regUserName"));
|
||||
reqVO.putInfoItem("email" , paramMap.get("email"));
|
||||
reqVO.putInfoItem("contentQeust", paramMap.get("contentQeust"));
|
||||
|
||||
String fileListJsonStr = paramMap.get("fileList");
|
||||
if(fileListJsonStr.startsWith("\"")) fileListJsonStr = fileListJsonStr.substring(1);
|
||||
@ -524,7 +524,7 @@ public class BoardControllerApi extends NlibCommonController
|
||||
|
||||
log.debug("fileMap =" + fileList);
|
||||
*/
|
||||
reqVO.addInfoItem("fileList", fileListJsonStr);
|
||||
reqVO.putInfoItem("fileList", fileListJsonStr);
|
||||
|
||||
// 요청
|
||||
DataApiResVO resVO = boardService.insertQnA(reqVO);
|
||||
@ -598,14 +598,14 @@ public class BoardControllerApi extends NlibCommonController
|
||||
DataApiReqVO reqVO = new DataApiReqVO();
|
||||
reqVO.setPageIndex(pageIndex);
|
||||
reqVO.setPageSize(pageSize);
|
||||
reqVO.addInfoItem("boardNo", "QNA"); // 게시판ID
|
||||
reqVO.addInfoItem("articleNo", articleNo); // 게시물번호
|
||||
reqVO.putInfoItem("boardNo", "QNA"); // 게시판ID
|
||||
reqVO.putInfoItem("articleNo", articleNo); // 게시물번호
|
||||
|
||||
// 요청
|
||||
DataApiResVO resVO = boardService.selectQnA(reqVO);
|
||||
|
||||
// 비밀번호 확인
|
||||
HashMap<String, Object> article = resVO.getInfo();
|
||||
HashMap<String, String> article = resVO.getInfo();
|
||||
String shaArticlePassword = nlibPasswordEncoder.encode(articlePassword);
|
||||
log.debug("updateQnAForm > 입력받은 비밀번호를 SHA256 암호화한 값 : " + shaArticlePassword);
|
||||
|
||||
@ -677,7 +677,7 @@ public class BoardControllerApi extends NlibCommonController
|
||||
//-------------------------------
|
||||
// 기존 정보 조회
|
||||
DataApiReqVO reqVO = new DataApiReqVO();
|
||||
reqVO.addInfoItem("articleNo", articleNo);
|
||||
reqVO.putInfoItem("articleNo", articleNo);
|
||||
|
||||
DataApiResVO resVO = boardService.selectQnA(reqVO);
|
||||
String oldArticlePassword = resVO.getInfoItem("articlePassword");
|
||||
@ -700,13 +700,13 @@ public class BoardControllerApi extends NlibCommonController
|
||||
// REQ VO 구성
|
||||
//-------------------------------
|
||||
DataApiReqVO updateReqVO = new DataApiReqVO();
|
||||
updateReqVO.addInfoItem("boardNo" , "QNA");
|
||||
updateReqVO.addInfoItem("articleNo" , articleNo);
|
||||
updateReqVO.addInfoItem("title" , paramMap.get("title"));
|
||||
updateReqVO.addInfoItem("regUserName" , paramMap.get("regUserName"));
|
||||
updateReqVO.addInfoItem("email" , paramMap.get("email"));
|
||||
updateReqVO.addInfoItem("contentQeust", paramMap.get("contentQeust"));
|
||||
updateReqVO.addInfoItem("articlePassword", articlePassword); // SHA256 글비밀번호
|
||||
updateReqVO.putInfoItem("boardNo" , "QNA");
|
||||
updateReqVO.putInfoItem("articleNo" , articleNo);
|
||||
updateReqVO.putInfoItem("title" , paramMap.get("title"));
|
||||
updateReqVO.putInfoItem("regUserName" , paramMap.get("regUserName"));
|
||||
updateReqVO.putInfoItem("email" , paramMap.get("email"));
|
||||
updateReqVO.putInfoItem("contentQeust", paramMap.get("contentQeust"));
|
||||
updateReqVO.putInfoItem("articlePassword", articlePassword); // SHA256 글비밀번호
|
||||
|
||||
// 요청
|
||||
DataApiResVO updateResVO = boardService.updateQnA(updateReqVO);
|
||||
@ -779,14 +779,14 @@ public class BoardControllerApi extends NlibCommonController
|
||||
DataApiReqVO reqVO = new DataApiReqVO();
|
||||
reqVO.setPageIndex(pageIndex);
|
||||
reqVO.setPageSize(pageSize);
|
||||
reqVO.addInfoItem("boardNo", "QNA"); // 게시판ID
|
||||
reqVO.addInfoItem("articleNo", articleNo); // 게시물번호
|
||||
reqVO.putInfoItem("boardNo", "QNA"); // 게시판ID
|
||||
reqVO.putInfoItem("articleNo", articleNo); // 게시물번호
|
||||
|
||||
// 요청
|
||||
DataApiResVO resVO = boardService.selectQnA(reqVO);
|
||||
|
||||
// 비밀번호 확인
|
||||
HashMap<String, Object> article = resVO.getInfo();
|
||||
HashMap<String, String> article = resVO.getInfo();
|
||||
String shaArticlePassword = nlibPasswordEncoder.encode(articlePassword);
|
||||
log.debug("updateQnAForm > 입력받은 비밀번호를 SHA256 암호화한 값 : " + shaArticlePassword);
|
||||
|
||||
|
||||
@ -401,4 +401,17 @@ public class NlibCommonController {
|
||||
|
||||
return nlibLoginVO.isAlerted();
|
||||
}
|
||||
|
||||
public String getParamStr(Map<String, String> paramMap, String paramName) {
|
||||
return getParamStr(paramMap, paramName, null);
|
||||
}
|
||||
|
||||
public String getParamStr(Map<String, String> paramMap, String paramName, String defValue) {
|
||||
if(paramMap == null) return null;
|
||||
if(StringUtil.isEmpty(paramName)) return null;
|
||||
String value = (String)paramMap.get(paramName);
|
||||
|
||||
return StringUtil.isEmpty(value) ? defValue : value;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -19,6 +19,7 @@ import java.io.Serializable;
|
||||
* @ 수정일 수정자 수정내용
|
||||
* @ ------------ -------- ---------------------------
|
||||
* @ 2021. 9. 23. JSYOO 최초 생성
|
||||
* @ 2021.10. 06. KKN 자료에 대한 세부 항목 추가
|
||||
|
||||
*
|
||||
*
|
||||
@ -39,6 +40,65 @@ public class CollectionVO extends PagingVO {
|
||||
private String mngOrgNm; /* 관리처리과명 */
|
||||
private String mngOrgCd; /* 관리처리과코드 */
|
||||
|
||||
// 상세항목 추가 (2021.10. 06.)
|
||||
private String typeDivCd; /* 자료유형코드 */
|
||||
private String typeCodeNm; /* 자료유형명 (도서간행물/문서/도면 등) */
|
||||
private String subjectNm; /* 주제분야명 */
|
||||
private String orgNm; /* 생산기관명 */
|
||||
private String creatYyyy; /* 생산년도 */
|
||||
private String interfaceId; /* 지역N문화서비스ID */
|
||||
private String openDivCd; /* 원문공개코드 */
|
||||
private String openDivNm; /* 원문공개코드명 */
|
||||
private String operReadRangeCd; /* 열람가능코드 */
|
||||
private String operReadRangeNm; /* 열람가능코드명 */
|
||||
private String operOutRangeCd; /* 대출가능코드 */
|
||||
private String operOutRangeNm; /* 대출가능코드명 */
|
||||
private String useStatus; /* 이용상태코드 */
|
||||
private String useStatusNm; /* 이용상태코드명 */
|
||||
private String rtnExpctDd; /* 반납예정일자 */
|
||||
private int awaiterCnt; /* 대출대기자수 */
|
||||
private String bookLentPsblYn; /* 현재대출신청가능여부 */
|
||||
private String rsrvPsblYn; /* 현재대출예약가능여부 */
|
||||
private String reqPsblYn; /* 현재열람신청가능여부 */
|
||||
private String interestYn; /* 사용자관심여부 */
|
||||
private String dtlsTypeDivCd; /* 세부유형코드 */
|
||||
private String dtlsTypeDivNm; /* 세부유형명 */
|
||||
private String mngtNo; /* 관리번호 */
|
||||
private String bookAuthor; /* 저자명 */
|
||||
private String bookPublisher; /* 출판사명 */
|
||||
private String bookPlbcTypeNm; /* 발간유형명 */
|
||||
private String bookPlbcMda; /* 발간매채명 */
|
||||
private String bookCallNo; /* 청구기호 */
|
||||
private String themeCodeNm; /* 테마명 */
|
||||
private String ageCodeNm; /* 시대 */
|
||||
private String chronologicalCodeStartNm; /* 연대 start */
|
||||
private String chronologicalCodeEndNm; /* 연대 end */
|
||||
private String keyword; /* 키워드목록 */
|
||||
private String bookIndex; /* 목차정보 */
|
||||
private String docNo; /* (구)문서번호 */
|
||||
private String mapTypeCd; /* 도면지도구분코드 */
|
||||
private String mapTypeNm; /* 도면지도구분코드명 */
|
||||
private String mapLoc; /* 도면지도위치주소 */
|
||||
private String photoMediaCd; /* 사진필름미디어유형구분코드 */
|
||||
private String photoMediaNm; /* 사진필름미디어매체 */
|
||||
private String photoSizeNm; /* 사진필름미디어규격 */
|
||||
private String photoDescription; /* 사진필름미디어설명 */
|
||||
private String photoAdditionalDescription; /* 사진필름미디어부가설명 */
|
||||
private String videoMediaCd; /* 녹음동영상미디어유형구분코드 */
|
||||
private String videoMediaNm; /* 녹음동영상미디어유형구분코드명 */
|
||||
private String videoTime; /* 녹음동영상미디어재생시간 */
|
||||
private String videoStat; /* 녹음동영상미디어재생화질상태 */
|
||||
private String videoDescription; /* 녹음동영상미디어설명 */
|
||||
private String videoAdditionalDescription; /* 녹음동영상미디어부가설명 */
|
||||
private String museTypeCd; /* 박물유형구분코드 */
|
||||
private String museTypeNm; /* 박물유형구분코드명 */
|
||||
private String museKindCd; /* 박물형태 */
|
||||
private String museKindNm; /* 박물형태명 */
|
||||
private String museMeterialCd; /* 박물재질 */
|
||||
private String museMeterialNm; /* 박물재질명 */
|
||||
private String assetLink; /* 자산링크 */
|
||||
|
||||
|
||||
public String getMasterId() {
|
||||
return masterId;
|
||||
}
|
||||
@ -96,5 +156,342 @@ public class CollectionVO extends PagingVO {
|
||||
public void setMngOrgCd(String mngOrgCd) {
|
||||
this.mngOrgCd = mngOrgCd;
|
||||
}
|
||||
public String getTypeDivCd() {
|
||||
return typeDivCd;
|
||||
}
|
||||
public void setTypeDivCd(String typeDivCd) {
|
||||
this.typeDivCd = typeDivCd;
|
||||
}
|
||||
public String getTypeCodeNm() {
|
||||
return typeCodeNm;
|
||||
}
|
||||
public void setTypeCodeNm(String typeCodeNm) {
|
||||
this.typeCodeNm = typeCodeNm;
|
||||
}
|
||||
public String getSubjectNm() {
|
||||
return subjectNm;
|
||||
}
|
||||
public void setSubjectNm(String subjectNm) {
|
||||
this.subjectNm = subjectNm;
|
||||
}
|
||||
public String getOrgNm() {
|
||||
return orgNm;
|
||||
}
|
||||
public void setOrgNm(String orgNm) {
|
||||
this.orgNm = orgNm;
|
||||
}
|
||||
public String getCreatYyyy() {
|
||||
return creatYyyy;
|
||||
}
|
||||
public void setCreatYyyy(String creatYyyy) {
|
||||
this.creatYyyy = creatYyyy;
|
||||
}
|
||||
public String getInterfaceId() {
|
||||
return interfaceId;
|
||||
}
|
||||
public void setInterfaceId(String interfaceId) {
|
||||
this.interfaceId = interfaceId;
|
||||
}
|
||||
public String getOpenDivCd() {
|
||||
return openDivCd;
|
||||
}
|
||||
public void setOpenDivCd(String openDivCd) {
|
||||
this.openDivCd = openDivCd;
|
||||
}
|
||||
public String getOpenDivNm() {
|
||||
return openDivNm;
|
||||
}
|
||||
public void setOpenDivNm(String openDivNm) {
|
||||
this.openDivNm = openDivNm;
|
||||
}
|
||||
public String getOperReadRangeCd() {
|
||||
return operReadRangeCd;
|
||||
}
|
||||
public void setOperReadRangeCd(String operReadRangeCd) {
|
||||
this.operReadRangeCd = operReadRangeCd;
|
||||
}
|
||||
public String getOperReadRangeNm() {
|
||||
return operReadRangeNm;
|
||||
}
|
||||
public void setOperReadRangeNm(String operReadRangeNm) {
|
||||
this.operReadRangeNm = operReadRangeNm;
|
||||
}
|
||||
public String getOperOutRangeCd() {
|
||||
return operOutRangeCd;
|
||||
}
|
||||
public void setOperOutRangeCd(String operOutRangeCd) {
|
||||
this.operOutRangeCd = operOutRangeCd;
|
||||
}
|
||||
public String getOperOutRangeNm() {
|
||||
return operOutRangeNm;
|
||||
}
|
||||
public void setOperOutRangeNm(String operOutRangeNm) {
|
||||
this.operOutRangeNm = operOutRangeNm;
|
||||
}
|
||||
public String getUseStatus() {
|
||||
return useStatus;
|
||||
}
|
||||
public void setUseStatus(String useStatus) {
|
||||
this.useStatus = useStatus;
|
||||
}
|
||||
public String getUseStatusNm() {
|
||||
return useStatusNm;
|
||||
}
|
||||
public void setUseStatusNm(String useStatusNm) {
|
||||
this.useStatusNm = useStatusNm;
|
||||
}
|
||||
public String getRtnExpctDd() {
|
||||
return rtnExpctDd;
|
||||
}
|
||||
public void setRtnExpctDd(String rtnExpctDd) {
|
||||
this.rtnExpctDd = rtnExpctDd;
|
||||
}
|
||||
public int getAwaiterCnt() {
|
||||
return awaiterCnt;
|
||||
}
|
||||
public void setAwaiterCnt(int awaiterCnt) {
|
||||
this.awaiterCnt = awaiterCnt;
|
||||
}
|
||||
public String getBookLentPsblYn() {
|
||||
return bookLentPsblYn;
|
||||
}
|
||||
public void setBookLentPsblYn(String bookLentPsblYn) {
|
||||
this.bookLentPsblYn = bookLentPsblYn;
|
||||
}
|
||||
public String getRsrvPsblYn() {
|
||||
return rsrvPsblYn;
|
||||
}
|
||||
public void setRsrvPsblYn(String rsrvPsblYn) {
|
||||
this.rsrvPsblYn = rsrvPsblYn;
|
||||
}
|
||||
public String getReqPsblYn() {
|
||||
return reqPsblYn;
|
||||
}
|
||||
public void setReqPsblYn(String reqPsblYn) {
|
||||
this.reqPsblYn = reqPsblYn;
|
||||
}
|
||||
public String getInterestYn() {
|
||||
return interestYn;
|
||||
}
|
||||
public void setInterestYn(String interestYn) {
|
||||
this.interestYn = interestYn;
|
||||
}
|
||||
public String getDtlsTypeDivCd() {
|
||||
return dtlsTypeDivCd;
|
||||
}
|
||||
public void setDtlsTypeDivCd(String dtlsTypeDivCd) {
|
||||
this.dtlsTypeDivCd = dtlsTypeDivCd;
|
||||
}
|
||||
public String getDtlsTypeDivNm() {
|
||||
return dtlsTypeDivNm;
|
||||
}
|
||||
public void setDtlsTypeDivNm(String dtlsTypeDivNm) {
|
||||
this.dtlsTypeDivNm = dtlsTypeDivNm;
|
||||
}
|
||||
public String getMngtNo() {
|
||||
return mngtNo;
|
||||
}
|
||||
public void setMngtNo(String mngtNo) {
|
||||
this.mngtNo = mngtNo;
|
||||
}
|
||||
public String getBookAuthor() {
|
||||
return bookAuthor;
|
||||
}
|
||||
public void setBookAuthor(String bookAuthor) {
|
||||
this.bookAuthor = bookAuthor;
|
||||
}
|
||||
public String getBookPublisher() {
|
||||
return bookPublisher;
|
||||
}
|
||||
public void setBookPublisher(String bookPublisher) {
|
||||
this.bookPublisher = bookPublisher;
|
||||
}
|
||||
public String getBookPlbcTypeNm() {
|
||||
return bookPlbcTypeNm;
|
||||
}
|
||||
public void setBookPlbcTypeNm(String bookPlbcTypeNm) {
|
||||
this.bookPlbcTypeNm = bookPlbcTypeNm;
|
||||
}
|
||||
public String getBookPlbcMda() {
|
||||
return bookPlbcMda;
|
||||
}
|
||||
public void setBookPlbcMda(String bookPlbcMda) {
|
||||
this.bookPlbcMda = bookPlbcMda;
|
||||
}
|
||||
public String getBookCallNo() {
|
||||
return bookCallNo;
|
||||
}
|
||||
public void setBookCallNo(String bookCallNo) {
|
||||
this.bookCallNo = bookCallNo;
|
||||
}
|
||||
public String getThemeCodeNm() {
|
||||
return themeCodeNm;
|
||||
}
|
||||
public void setThemeCodeNm(String themeCodeNm) {
|
||||
this.themeCodeNm = themeCodeNm;
|
||||
}
|
||||
public String getAgeCodeNm() {
|
||||
return ageCodeNm;
|
||||
}
|
||||
public void setAgeCodeNm(String ageCodeNm) {
|
||||
this.ageCodeNm = ageCodeNm;
|
||||
}
|
||||
public String getChronologicalCodeStartNm() {
|
||||
return chronologicalCodeStartNm;
|
||||
}
|
||||
public void setChronologicalCodeStartNm(String chronologicalCodeStartNm) {
|
||||
this.chronologicalCodeStartNm = chronologicalCodeStartNm;
|
||||
}
|
||||
public String getChronologicalCodeEndNm() {
|
||||
return chronologicalCodeEndNm;
|
||||
}
|
||||
public void setChronologicalCodeEndNm(String chronologicalCodeEndNm) {
|
||||
this.chronologicalCodeEndNm = chronologicalCodeEndNm;
|
||||
}
|
||||
public String getKeyword() {
|
||||
return keyword;
|
||||
}
|
||||
public void setKeyword(String keyword) {
|
||||
this.keyword = keyword;
|
||||
}
|
||||
public String getBookIndex() {
|
||||
return bookIndex;
|
||||
}
|
||||
public void setBookIndex(String bookIndex) {
|
||||
this.bookIndex = bookIndex;
|
||||
}
|
||||
public String getDocNo() {
|
||||
return docNo;
|
||||
}
|
||||
public void setDocNo(String docNo) {
|
||||
this.docNo = docNo;
|
||||
}
|
||||
public String getMapTypeCd() {
|
||||
return mapTypeCd;
|
||||
}
|
||||
public void setMapTypeCd(String mapTypeCd) {
|
||||
this.mapTypeCd = mapTypeCd;
|
||||
}
|
||||
public String getMapTypeNm() {
|
||||
return mapTypeNm;
|
||||
}
|
||||
public void setMapTypeNm(String mapTypeNm) {
|
||||
this.mapTypeNm = mapTypeNm;
|
||||
}
|
||||
public String getMapLoc() {
|
||||
return mapLoc;
|
||||
}
|
||||
public void setMapLoc(String mapLoc) {
|
||||
this.mapLoc = mapLoc;
|
||||
}
|
||||
public String getPhotoMediaCd() {
|
||||
return photoMediaCd;
|
||||
}
|
||||
public void setPhotoMediaCd(String photoMediaCd) {
|
||||
this.photoMediaCd = photoMediaCd;
|
||||
}
|
||||
public String getPhotoMediaNm() {
|
||||
return photoMediaNm;
|
||||
}
|
||||
public void setPhotoMediaNm(String photoMediaNm) {
|
||||
this.photoMediaNm = photoMediaNm;
|
||||
}
|
||||
public String getPhotoSizeNm() {
|
||||
return photoSizeNm;
|
||||
}
|
||||
public void setPhotoSizeNm(String photoSizeNm) {
|
||||
this.photoSizeNm = photoSizeNm;
|
||||
}
|
||||
public String getPhotoDescription() {
|
||||
return photoDescription;
|
||||
}
|
||||
public void setPhotoDescription(String photoDescription) {
|
||||
this.photoDescription = photoDescription;
|
||||
}
|
||||
public String getPhotoAdditionalDescription() {
|
||||
return photoAdditionalDescription;
|
||||
}
|
||||
public void setPhotoAdditionalDescription(String photoAdditionalDescription) {
|
||||
this.photoAdditionalDescription = photoAdditionalDescription;
|
||||
}
|
||||
public String getVideoMediaCd() {
|
||||
return videoMediaCd;
|
||||
}
|
||||
public void setVideoMediaCd(String videoMediaCd) {
|
||||
this.videoMediaCd = videoMediaCd;
|
||||
}
|
||||
public String getVideoMediaNm() {
|
||||
return videoMediaNm;
|
||||
}
|
||||
public void setVideoMediaNm(String videoMediaNm) {
|
||||
this.videoMediaNm = videoMediaNm;
|
||||
}
|
||||
public String getVideoTime() {
|
||||
return videoTime;
|
||||
}
|
||||
public void setVideoTime(String videoTime) {
|
||||
this.videoTime = videoTime;
|
||||
}
|
||||
public String getVideoStat() {
|
||||
return videoStat;
|
||||
}
|
||||
public void setVideoStat(String videoStat) {
|
||||
this.videoStat = videoStat;
|
||||
}
|
||||
public String getVideoDescription() {
|
||||
return videoDescription;
|
||||
}
|
||||
public void setVideoDescription(String videoDescription) {
|
||||
this.videoDescription = videoDescription;
|
||||
}
|
||||
public String getVideoAdditionalDescription() {
|
||||
return videoAdditionalDescription;
|
||||
}
|
||||
public void setVideoAdditionalDescription(String videoAdditionalDescription) {
|
||||
this.videoAdditionalDescription = videoAdditionalDescription;
|
||||
}
|
||||
public String getMuseTypeCd() {
|
||||
return museTypeCd;
|
||||
}
|
||||
public void setMuseTypeCd(String museTypeCd) {
|
||||
this.museTypeCd = museTypeCd;
|
||||
}
|
||||
public String getMuseTypeNm() {
|
||||
return museTypeNm;
|
||||
}
|
||||
public void setMuseTypeNm(String museTypeNm) {
|
||||
this.museTypeNm = museTypeNm;
|
||||
}
|
||||
public String getMuseKindCd() {
|
||||
return museKindCd;
|
||||
}
|
||||
public void setMuseKindCd(String museKindCd) {
|
||||
this.museKindCd = museKindCd;
|
||||
}
|
||||
public String getMuseKindNm() {
|
||||
return museKindNm;
|
||||
}
|
||||
public void setMuseKindNm(String museKindNm) {
|
||||
this.museKindNm = museKindNm;
|
||||
}
|
||||
public String getMuseMeterialCd() {
|
||||
return museMeterialCd;
|
||||
}
|
||||
public void setMuseMeterialCd(String museMeterialCd) {
|
||||
this.museMeterialCd = museMeterialCd;
|
||||
}
|
||||
public String getMuseMeterialNm() {
|
||||
return museMeterialNm;
|
||||
}
|
||||
public void setMuseMeterialNm(String museMeterialNm) {
|
||||
this.museMeterialNm = museMeterialNm;
|
||||
}
|
||||
public String getAssetLink() {
|
||||
return assetLink;
|
||||
}
|
||||
public void setAssetLink(String assetLink) {
|
||||
this.assetLink = assetLink;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
@ -29,7 +29,7 @@ public class RentDAO extends DataApi
|
||||
*/
|
||||
public DataApiResVO listRentItems(DataApiReqVO reqVO) {
|
||||
reqVO.setReqUrl(RESOURCE_URI + "/list");
|
||||
return get(reqVO);
|
||||
return request(reqVO);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -40,7 +40,7 @@ public class RentDAO extends DataApi
|
||||
*/
|
||||
public DataApiResVO listPostpones(DataApiReqVO reqVO) {
|
||||
reqVO.setReqUrl(RESOURCE_URI + "/list");
|
||||
return get(reqVO);
|
||||
return request(reqVO);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -51,7 +51,7 @@ public class RentDAO extends DataApi
|
||||
*/
|
||||
public DataApiResVO listCanceledRentItems(DataApiReqVO reqVO) {
|
||||
reqVO.setReqUrl(RESOURCE_URI + "/list");
|
||||
return get(reqVO);
|
||||
return request(reqVO);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -62,7 +62,7 @@ public class RentDAO extends DataApi
|
||||
*/
|
||||
public DataApiResVO listReservations(DataApiReqVO reqVO) {
|
||||
reqVO.setReqUrl(RESOURCE_URI + "/list");
|
||||
return get(reqVO);
|
||||
return request(reqVO);
|
||||
}
|
||||
|
||||
public DataApiResVO cancelReservations(DataApiReqVO reqVO) {
|
||||
@ -77,12 +77,12 @@ public class RentDAO extends DataApi
|
||||
*/
|
||||
public DataApiResVO listRequestsForViewingItem(DataApiReqVO reqVO) {
|
||||
reqVO.setReqUrl(RESOURCE_URI + "/read/list");
|
||||
return get(reqVO);
|
||||
return request(reqVO);
|
||||
}
|
||||
|
||||
public DataApiResVO selectRequestInfoForViewingItem(DataApiReqVO reqVO) {
|
||||
reqVO.setReqUrl(RESOURCE_URI + "/read");
|
||||
return get(reqVO);
|
||||
return request(reqVO);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -38,6 +38,7 @@ import nlib.col.service.InterestService;
|
||||
import nlib.col.service.RisVO;
|
||||
import nlib.restful.service.DataApiReqVO;
|
||||
import nlib.restful.service.DataApiResVO;
|
||||
import nlib.restful.service.DataApiVO;
|
||||
import nlib.user.service.NlibLoginVO;
|
||||
import nlib.util.StringUtil;
|
||||
|
||||
@ -251,8 +252,8 @@ public class CollectionController extends NlibCommonController
|
||||
DataApiReqVO reqVO = new DataApiReqVO();
|
||||
reqVO.setPageIndex(pageIndex);
|
||||
reqVO.setPageSize(pageSize);
|
||||
reqVO.addInfoItem("boardNo", "QNA"); // 게시판ID
|
||||
reqVO.addInfoItem("articleNo", articleNo); // 게시물번호
|
||||
reqVO.putInfoItem("boardNo", "QNA"); // 게시판ID
|
||||
reqVO.putInfoItem("articleNo", articleNo); // 게시물번호
|
||||
|
||||
// 요청
|
||||
DataApiResVO resVO = collectionService.selectItemInfo(reqVO);
|
||||
|
||||
@ -24,6 +24,7 @@ import nlib.cmm.service.NlibProperty;
|
||||
import nlib.col.service.RentService;
|
||||
import nlib.restful.service.DataApiReqVO;
|
||||
import nlib.restful.service.DataApiResVO;
|
||||
import nlib.restful.service.DataApiVO;
|
||||
import nlib.util.StringUtil;
|
||||
|
||||
/**
|
||||
@ -102,7 +103,7 @@ public class RentController extends NlibCommonController
|
||||
DataApiReqVO reqVO = new DataApiReqVO();
|
||||
reqVO.setPageIndex(pageIndex);
|
||||
reqVO.setPageSize(pageSize);
|
||||
reqVO.addInfoItem("searchKeyword", searchKeyword);
|
||||
reqVO.putInfoItem("searchKeyword", searchKeyword);
|
||||
|
||||
// 요청
|
||||
DataApiResVO resVO = rentService.listRentItems(reqVO);
|
||||
@ -115,7 +116,7 @@ public class RentController extends NlibCommonController
|
||||
// itemsCount: 255
|
||||
// }
|
||||
HashMap<String, Object> retMap = new HashMap<String, Object>();
|
||||
retMap.put("data", resVO.getList());
|
||||
retMap.put("data", resVO.getList(DataApiVO.XML_EL_NAME_RECORD));
|
||||
retMap.put("itemsCount", resVO.getRecordTotCount());
|
||||
|
||||
return makeResponseEntityJson(retMap);
|
||||
@ -162,7 +163,7 @@ public class RentController extends NlibCommonController
|
||||
DataApiReqVO reqVO = new DataApiReqVO();
|
||||
reqVO.setPageIndex(pageIndex);
|
||||
reqVO.setPageSize(pageSize);
|
||||
reqVO.addInfoItem("searchKeyword", searchKeyword);
|
||||
reqVO.putInfoItem("searchKeyword", searchKeyword);
|
||||
|
||||
// 요청
|
||||
DataApiResVO resVO = rentService.listCanceledRentItems(reqVO);
|
||||
@ -175,7 +176,7 @@ public class RentController extends NlibCommonController
|
||||
// itemsCount: 255
|
||||
// }
|
||||
HashMap<String, Object> retMap = new HashMap<String, Object>();
|
||||
retMap.put("data", resVO.getList());
|
||||
retMap.put("data", resVO.getList(DataApiVO.XML_EL_NAME_RECORD));
|
||||
retMap.put("itemsCount", resVO.getRecordTotCount());
|
||||
|
||||
return makeResponseEntityJson(retMap);
|
||||
@ -222,7 +223,7 @@ public class RentController extends NlibCommonController
|
||||
DataApiReqVO reqVO = new DataApiReqVO();
|
||||
reqVO.setPageIndex(pageIndex);
|
||||
reqVO.setPageSize(pageSize);
|
||||
reqVO.addInfoItem("searchKeyword", searchKeyword);
|
||||
reqVO.putInfoItem("searchKeyword", searchKeyword);
|
||||
|
||||
// 요청
|
||||
DataApiResVO resVO = rentService.listPostpones(reqVO);
|
||||
@ -235,7 +236,7 @@ public class RentController extends NlibCommonController
|
||||
// itemsCount: 255
|
||||
// }
|
||||
HashMap<String, Object> retMap = new HashMap<String, Object>();
|
||||
retMap.put("data", resVO.getList());
|
||||
retMap.put("data", resVO.getList(DataApiVO.XML_EL_NAME_RECORD));
|
||||
retMap.put("itemsCount", resVO.getRecordTotCount());
|
||||
|
||||
return makeResponseEntityJson(retMap);
|
||||
@ -286,7 +287,7 @@ public class RentController extends NlibCommonController
|
||||
DataApiReqVO reqVO = new DataApiReqVO();
|
||||
reqVO.setPageIndex(pageIndex);
|
||||
reqVO.setPageSize(pageSize);
|
||||
reqVO.addInfoItem("searchKeyword", searchKeyword);
|
||||
reqVO.putInfoItem("searchKeyword", searchKeyword);
|
||||
|
||||
// 요청
|
||||
DataApiResVO resVO = rentService.listReservations(reqVO);
|
||||
@ -299,7 +300,7 @@ public class RentController extends NlibCommonController
|
||||
// itemsCount: 255
|
||||
// }
|
||||
HashMap<String, Object> retMap = new HashMap<String, Object>();
|
||||
retMap.put("data", resVO.getList());
|
||||
retMap.put("data", resVO.getList(DataApiVO.XML_EL_NAME_RECORD));
|
||||
retMap.put("itemsCount", resVO.getRecordTotCount());
|
||||
|
||||
return makeResponseEntityJson(retMap);
|
||||
@ -352,7 +353,7 @@ public class RentController extends NlibCommonController
|
||||
DataApiReqVO reqVO = new DataApiReqVO();
|
||||
reqVO.setPageIndex(pageIndex);
|
||||
reqVO.setPageSize(pageSize);
|
||||
reqVO.addInfoItem("searchKeyword", searchKeyword);
|
||||
reqVO.putInfoItem("searchKeyword", searchKeyword);
|
||||
|
||||
// 요청
|
||||
DataApiResVO resVO = rentService.listRequestsForViewingItem(reqVO);
|
||||
@ -365,7 +366,7 @@ public class RentController extends NlibCommonController
|
||||
// itemsCount: 255
|
||||
// }
|
||||
HashMap<String, Object> retMap = new HashMap<String, Object>();
|
||||
retMap.put("data", resVO.getList());
|
||||
retMap.put("data", resVO.getList(DataApiVO.XML_EL_NAME_RECORD));
|
||||
retMap.put("itemsCount", resVO.getRecordTotCount());
|
||||
|
||||
return makeResponseEntityJson(retMap);
|
||||
@ -401,8 +402,8 @@ public class RentController extends NlibCommonController
|
||||
DataApiReqVO reqVO = new DataApiReqVO();
|
||||
reqVO.setPageIndex(pageIndex);
|
||||
reqVO.setPageSize(pageSize);
|
||||
reqVO.addInfoItem("boardNo", "QNA"); // 게시판ID
|
||||
reqVO.addInfoItem("articleNo", articleNo); // 게시물번호
|
||||
reqVO.putInfoItem("boardNo", "QNA"); // 게시판ID
|
||||
reqVO.putInfoItem("articleNo", articleNo); // 게시물번호
|
||||
|
||||
// 요청
|
||||
DataApiResVO resVO = rentService.selectRequestInfoForViewingItem(reqVO);
|
||||
@ -410,8 +411,8 @@ public class RentController extends NlibCommonController
|
||||
// 반환 정보
|
||||
model.addAttribute("articleNo" , articleNo);
|
||||
model.addAttribute("article" , resVO.getInfo()); // 게시물 상세
|
||||
model.addAttribute("preArticle" , resVO.getList().get(0)); // 이전글 정보
|
||||
model.addAttribute("nextArticle" , resVO.getList().get(1)); // 다음글 정보
|
||||
model.addAttribute("preArticle" , resVO.getList(DataApiVO.XML_EL_NAME_RECORD).get(0)); // 이전글 정보
|
||||
model.addAttribute("nextArticle" , resVO.getList(DataApiVO.XML_EL_NAME_RECORD).get(1)); // 다음글 정보
|
||||
model.addAttribute("message" , message);
|
||||
model.addAttribute("pageIndex" , pageIndex);
|
||||
model.addAttribute("pageSize" , pageSize);
|
||||
|
||||
@ -2,20 +2,12 @@ package nlib.restful;
|
||||
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.http.HttpEntity;
|
||||
import org.springframework.http.HttpHeaders;
|
||||
import org.springframework.http.HttpMethod;
|
||||
import org.springframework.http.HttpStatus;
|
||||
import org.springframework.http.MediaType;
|
||||
import org.springframework.http.ResponseEntity;
|
||||
import org.springframework.util.MultiValueMap;
|
||||
import org.springframework.web.client.RestTemplate;
|
||||
import org.springframework.stereotype.Repository;
|
||||
|
||||
import nlib.restful.service.DataApiReqVO;
|
||||
import nlib.restful.service.DataApiResVO;
|
||||
import nlib.restful.service.impl.DataApiTempXml;
|
||||
import nlib.util.StringUtil;
|
||||
import nlib.restful.service.impl.DataApiRESTful;
|
||||
|
||||
|
||||
/**
|
||||
@ -45,49 +37,14 @@ import nlib.util.StringUtil;
|
||||
* @version 1.0
|
||||
*
|
||||
*/
|
||||
public class DataApi extends DataApiTempXml {
|
||||
@Repository("dataApi")
|
||||
public class DataApi extends DataApiRESTful { // RESTFul 서버에 접속하여 요청/응답처리를 수행하는 경우
|
||||
//public class DataApi extends DataApiTempXml { // 로컬파일에서 읽어와서 요청/응답처리를 수행하는 경우
|
||||
|
||||
private static final Logger log = LoggerFactory.getLogger(DataApi.class);
|
||||
|
||||
/**
|
||||
* 조회
|
||||
*
|
||||
* @param reqVO
|
||||
* @return
|
||||
*/
|
||||
public DataApiResVO get(DataApiReqVO reqVO) {
|
||||
|
||||
return super.get(reqVO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 등록
|
||||
*
|
||||
* @param reqVO
|
||||
* @return
|
||||
*/
|
||||
public DataApiResVO put(DataApiReqVO reqVO) {
|
||||
return super.put(reqVO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 수정
|
||||
*
|
||||
* @param reqVO
|
||||
* @return
|
||||
*/
|
||||
public DataApiResVO post(DataApiReqVO reqVO) {
|
||||
return super.post(reqVO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 삭제
|
||||
*
|
||||
* @param reqVO
|
||||
* @return
|
||||
*/
|
||||
public DataApiResVO delete (DataApiReqVO reqVO) {
|
||||
return super.delete(reqVO);
|
||||
public DataApiResVO request(DataApiReqVO reqVO) {
|
||||
return super.request(reqVO);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -1,13 +1,19 @@
|
||||
package nlib.restful.service;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.http.HttpEntity;
|
||||
import org.springframework.http.HttpMethod;
|
||||
import org.springframework.http.ResponseEntity;
|
||||
import org.springframework.util.LinkedMultiValueMap;
|
||||
import org.springframework.util.MultiValueMap;
|
||||
import org.springframework.web.client.RestTemplate;
|
||||
import org.springframework.web.util.UriComponentsBuilder;
|
||||
|
||||
import nlib.util.StringUtil;
|
||||
|
||||
@ -37,38 +43,6 @@ public interface DataApiInterface {
|
||||
|
||||
static final Logger log = LoggerFactory.getLogger(DataApiInterface.class);
|
||||
|
||||
/**
|
||||
* 조회
|
||||
*
|
||||
* @param reqVO
|
||||
* @return
|
||||
*/
|
||||
public DataApiResVO get(DataApiReqVO reqVO);
|
||||
|
||||
/**
|
||||
* 등록
|
||||
*
|
||||
* @param reqVO
|
||||
* @return
|
||||
*/
|
||||
public DataApiResVO put(DataApiReqVO reqVO);
|
||||
|
||||
/**
|
||||
* 수정
|
||||
*
|
||||
* @param reqVO
|
||||
* @return
|
||||
*/
|
||||
public DataApiResVO post(DataApiReqVO reqVO);
|
||||
|
||||
/**
|
||||
* 삭제
|
||||
*
|
||||
* @param reqVO
|
||||
* @return
|
||||
*/
|
||||
public DataApiResVO delete (DataApiReqVO reqVO);
|
||||
|
||||
/**
|
||||
* 실제 RESTful API 서버로 요청을 전송하고, 응답받은 자료를 응답VO에 담아서 리턴한다.
|
||||
*
|
||||
@ -76,40 +50,47 @@ public interface DataApiInterface {
|
||||
* @param method
|
||||
* @return
|
||||
*/
|
||||
public DataApiResVO send(DataApiReqVO reqVO, HttpMethod method);
|
||||
public DataApiResVO request(DataApiReqVO reqVO);
|
||||
|
||||
|
||||
/**
|
||||
* 요청 VO를 Map 형태로 변환한다.
|
||||
* [POST용] 요청 VO의 입력변수값을 API 요청을 위한 MultiValueMap 형태로 변환한다.
|
||||
*
|
||||
* @param reqVO
|
||||
* @return
|
||||
*/
|
||||
public static MultiValueMap<String, String> makeParamMap(DataApiReqVO reqVO) {
|
||||
public static MultiValueMap<String, String> makeRequestParamMultiValueMap(DataApiReqVO reqVO) {
|
||||
|
||||
MultiValueMap<String, String> map = new LinkedMultiValueMap<>();
|
||||
|
||||
// 공통
|
||||
map.add("rows", "" + reqVO.getPageSize());
|
||||
map.add("page", "" + reqVO.getPageIndex());
|
||||
MultiValueMap<String, String> map = new LinkedMultiValueMap<String, String>();
|
||||
|
||||
// 추가 정보
|
||||
if(reqVO.hasInfo()) {
|
||||
HashMap<String, Object> info = reqVO.getInfo();
|
||||
HashMap<String, String> info = reqVO.getInfo();
|
||||
for(String key : info.keySet()) {
|
||||
Object val = info.get(key);
|
||||
if(val instanceof HashMap) {
|
||||
HashMap<String, String> subInfo = (HashMap)val;
|
||||
for(String subKey : subInfo.keySet()) {
|
||||
String subVal = subInfo.get(subKey);
|
||||
map.add(subKey, subVal);
|
||||
}
|
||||
} else {
|
||||
map.add(key, (String)val);
|
||||
String val = info.get(key);
|
||||
map.add(key, val);
|
||||
}
|
||||
}
|
||||
|
||||
if(reqVO.hasList()) {
|
||||
HashMap<String,List<HashMap<String,String>>> listMap = reqVO.getListMap();
|
||||
if(listMap != null) {
|
||||
for(String listName : listMap.keySet() ) {
|
||||
List<HashMap<String,String>> list = listMap.get(listName);
|
||||
|
||||
// 목록변수명은 있으나, 값이 없는 경우, 빈 배열 JSON값 설정
|
||||
if(list == null || list.size() < 1) {
|
||||
map.add(listName, "[]");
|
||||
continue;
|
||||
}
|
||||
|
||||
// 목록변수명에 대한 목록 자료 존재하는 경우, JSON 생성 처리
|
||||
map.add(listName, makeJsonStrFromListMap(list));
|
||||
|
||||
} // for
|
||||
} // if(listMap != null)
|
||||
} // if(reqVO.hasList())
|
||||
|
||||
// 요청 파라메타 확인
|
||||
for(String key : map.keySet()) {
|
||||
log.debug("MultiValueMap > " + key + "=" + map.get(key));
|
||||
@ -118,13 +99,104 @@ public interface DataApiInterface {
|
||||
return map;
|
||||
}
|
||||
|
||||
/**
|
||||
* [GET용] 요청 VO의 입력변수값을 API 요청을 위한 URL 쿼리 형태의 문자열로 리턴한다.
|
||||
*
|
||||
* @param url
|
||||
* @param reqVO
|
||||
* @return
|
||||
*/
|
||||
public static String makeRequestParamUrl(String url, DataApiReqVO reqVO) {
|
||||
|
||||
UriComponentsBuilder builder = UriComponentsBuilder.fromHttpUrl(url);
|
||||
|
||||
// 추가 정보
|
||||
if(reqVO.hasInfo()) {
|
||||
HashMap<String, String> info = reqVO.getInfo();
|
||||
for(String key : info.keySet()) {
|
||||
Object val = info.get(key);
|
||||
builder.queryParam(key, (String)val);
|
||||
}
|
||||
}
|
||||
|
||||
if(reqVO.hasList()) {
|
||||
HashMap<String,List<HashMap<String,String>>> listMap = reqVO.getListMap();
|
||||
if(listMap != null) {
|
||||
for(String listName : listMap.keySet() ) {
|
||||
List<HashMap<String,String>> list = listMap.get(listName);
|
||||
|
||||
// 목록변수명은 있으나, 값이 없는 경우, 빈 배열 JSON값 설정
|
||||
if(list == null || list.size() < 1) {
|
||||
builder.queryParam(listName, "[]");
|
||||
continue;
|
||||
}
|
||||
|
||||
// 목록변수명에 대한 목록 자료 존재하는 경우, JSON 생성 처리
|
||||
builder.queryParam(listName, makeJsonStrFromListMap(list));
|
||||
|
||||
} // for
|
||||
} // if(listMap != null)
|
||||
} // if(reqVO.hasList())
|
||||
|
||||
log.debug("makeRequestParamUrl > queryUrl = " + builder.toUriString());
|
||||
|
||||
return builder.toUriString();
|
||||
}
|
||||
|
||||
/**
|
||||
* 요청전 공통 입력 파라메터를 확인한다.
|
||||
* HashMap를 목록의 요소로 하는 리스트를 받아서 해당 요소들의 배열을 가진 JSON 객체 문자열을 생성하여 리턴한다.
|
||||
* 예 : [{"name":"James", "city":"Miracle", ...}, ..., {"name":"James", "city":"Miracle", ...}]
|
||||
*
|
||||
* @param list
|
||||
* @return
|
||||
*/
|
||||
public static String makeJsonStrFromListMap(List<HashMap<String,String>> list) {
|
||||
|
||||
// 목록변수명은 있으나, 값이 없는 경우, 빈 배열 JSON값 설정
|
||||
if(list == null || list.size() < 1) {
|
||||
return "[]";
|
||||
}
|
||||
|
||||
// 목록변수명에 대한 목록 자료 존재하는 경우, JSON 생성 처리
|
||||
String jsonListStr = "";
|
||||
for(int i=0; i<list.size(); i++) {
|
||||
HashMap<String, String> record = list.get(i);
|
||||
|
||||
String jsonRecordStr = makeJsonStrFromMap(record);
|
||||
if(StringUtil.isEmpty(jsonRecordStr)) continue;
|
||||
|
||||
if(jsonListStr.length() > 0) jsonListStr += ",";
|
||||
jsonListStr += jsonRecordStr;
|
||||
}
|
||||
return "[" + jsonListStr + "]";
|
||||
}
|
||||
|
||||
/**
|
||||
* HashMap을 받아서 해당 요소들을 맴버변수로 하는 JSON객체 문자열을 생성하여 리턴한다.
|
||||
* 예 : {"name":"James", "city":"Miracle", ...}
|
||||
*
|
||||
* @param record
|
||||
* @return
|
||||
*/
|
||||
public static String makeJsonStrFromMap(HashMap<String,String> record) {
|
||||
if(record == null || record.size() < 1) return null;
|
||||
|
||||
String jsonRecordStr = "";
|
||||
for(String subKey : record.keySet()) {
|
||||
String subVal = record.get(subKey);
|
||||
if(jsonRecordStr.length() > 0) jsonRecordStr += ",";
|
||||
jsonRecordStr += "\"" + subKey + ":" + (subVal == null? "null" : "\"" + subVal + "\"");
|
||||
}
|
||||
|
||||
return "{" + jsonRecordStr + "}";
|
||||
}
|
||||
|
||||
/**
|
||||
* 요청전 공통 필수 입력 매개변수를 체크하여 결과를 리턴한다.
|
||||
*
|
||||
* @param reqVO
|
||||
* @return
|
||||
* @throws Exception
|
||||
* @throws Exception :
|
||||
*/
|
||||
public static DataApiResVO checkReqCommonParams(DataApiReqVO reqVO) throws Exception {
|
||||
|
||||
@ -136,6 +208,10 @@ public interface DataApiInterface {
|
||||
return new DataApiResVO("ERR_NO_RURL", "데이터 요청 업무ID에 대한 URL/RUI 정보가 존재하지 않습니다.");
|
||||
}
|
||||
|
||||
if(reqVO.getReqMethod() == null) {
|
||||
return new DataApiResVO("ERR_NO_METHOD", "데이터 요청 방식 정보가 존재하지 않습니다.");
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
@ -162,75 +238,37 @@ public interface DataApiInterface {
|
||||
Map<String, Object> map = null;
|
||||
|
||||
try {
|
||||
map = XmlConverter.convert(xmlStr);
|
||||
map = XmlConverter.convert(xmlStr, DataApiVO.XML_EL_NAME_ROOT_NAME);
|
||||
} catch(Exception e) {
|
||||
e.printStackTrace();
|
||||
|
||||
resVO.setResultCode("ERR_RES_XML_FORMAT");
|
||||
resVO.setResultMessage(String.format("올바르지 않은 XML 형식의 응답입니다. : [%s]", xmlStr));
|
||||
|
||||
log.error("convertXmlToResVO > " + resVO.getResultMessage());
|
||||
e.printStackTrace();
|
||||
return resVO;
|
||||
}
|
||||
|
||||
// 처리결과 확인
|
||||
String commonKeyList = "|resulttype|code|message|page|totpages|records|".toLowerCase();
|
||||
String lowerKey = null;
|
||||
List<HashMap<String, String>> recordList = null;
|
||||
for( String key : map.keySet()) {
|
||||
|
||||
lowerKey = key.toLowerCase();
|
||||
if(commonKeyList.contains("|" + lowerKey + "|")) {
|
||||
|
||||
if(lowerKey.equals("resulttype")) {
|
||||
String resultType = (String)map.get(key);
|
||||
if(!StringUtil.isEmpty(resultType) && resultType.toLowerCase().compareTo("success") == 0) {
|
||||
resVO.setResultCode("S0000");
|
||||
}
|
||||
}
|
||||
|
||||
if(lowerKey.equals("code")) {
|
||||
String code = (String)map.get(key);
|
||||
int codeInt = 0;
|
||||
try {
|
||||
codeInt = Integer.parseInt(code);
|
||||
|
||||
if(codeInt != 0) {
|
||||
resVO.setResultCode(String.format("ERR_BIZERR(%s)", code));
|
||||
if(key.equalsIgnoreCase(DataApiVO.XML_EL_NAME_RESULT_CODE)) resVO.setResultCode((String)map.get(key));
|
||||
else if(key.equalsIgnoreCase(DataApiVO.XML_EL_NAME_RESULT_MESSAGE)) resVO.setResultMessage((String)map.get(key));
|
||||
else if(key.equalsIgnoreCase(DataApiVO.XML_EL_NAME_RECORD)) {
|
||||
// 다건 목록 데이터인 경우
|
||||
Object obj = map.get(DataApiVO.XML_EL_NAME_RECORD);
|
||||
if(obj instanceof HashMap) {
|
||||
// 맵인 경우, 리스트형식으로 저장 처리
|
||||
List<HashMap<String,String>> list = new ArrayList<HashMap<String,String>>();
|
||||
list.add((HashMap)obj);
|
||||
resVO.setList(DataApiVO.XML_EL_NAME_RECORD, list);
|
||||
} else if(obj instanceof List) {
|
||||
resVO.setList(DataApiVO.XML_EL_NAME_RECORD, (List)obj);
|
||||
} else {
|
||||
resVO.setResultCode("S0000");
|
||||
}
|
||||
} catch(Exception e) {
|
||||
if(StringUtil.isNotEmpty(code) && code.startsWith("S")) {
|
||||
codeInt = 0;
|
||||
resVO.setResultCode("S0000");
|
||||
} else {
|
||||
resVO.setResultCode(String.format("ERR_BIZERR(%s)", code));
|
||||
log.error("회신 code 정보를 정수로 변환처리 중 오류가 발생하였습니다." + e.toString());
|
||||
codeInt = -1;
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if(lowerKey.equals("message")) {
|
||||
resVO.setResultMessage((String)map.get(key));
|
||||
}
|
||||
|
||||
if(lowerKey.equals("page")) {
|
||||
resVO.setPageIndex(StringUtil.toNumber((String)map.get(key)));
|
||||
}
|
||||
|
||||
if(lowerKey.equals("totpages")) {
|
||||
resVO.setPageLastIndex(StringUtil.toNumber((String)map.get(key)));
|
||||
}
|
||||
|
||||
if(lowerKey.equals("records")) {
|
||||
resVO.setRecordTotCount(StringUtil.toNumber((String)map.get(key), 0));
|
||||
}
|
||||
} else {
|
||||
if(resVO.getInfo() == null) resVO.setInfo(new HashMap<String,Object>());
|
||||
HashMap<String,Object> info = resVO.getInfo();
|
||||
info.put(key, map.get(key));
|
||||
resVO.setResultCode("ERR_RES_XML_FORMAT_RECORD");
|
||||
resVO.setResultMessage(DataApiVO.XML_EL_NAME_RECORD + " 요소가 알수 없는 형식으로 객체화되었습니다. 확인바랍니다. : " + obj.toString());
|
||||
log.error("convertXmlToResVO > " + resVO.getResultMessage());
|
||||
return resVO;
|
||||
}
|
||||
} else resVO.putInfoItem(key, (String)map.get(key));
|
||||
}
|
||||
|
||||
return resVO;
|
||||
|
||||
@ -1,8 +1,7 @@
|
||||
package nlib.restful.service;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import org.springframework.http.HttpMethod;
|
||||
import nlib.cmm.crypto.AriaCrypto;
|
||||
|
||||
/**
|
||||
* <pre>
|
||||
@ -26,104 +25,52 @@ import java.util.Map;
|
||||
* @version 1.0
|
||||
*
|
||||
*/
|
||||
public class DataApiReqVO {
|
||||
public class DataApiReqVO extends DataApiVO {
|
||||
|
||||
public static final int DEFAULT_PAGE_SIZE = 10;
|
||||
public static final int DEFAULT_PAGE_INDEX = 1;
|
||||
|
||||
/* 페이징 정보 */
|
||||
private int pageIndex = 0; /* 요청 페이지 번호 */
|
||||
private int pageSize = 0; /* 페이지별 표출할 레코드 수 */
|
||||
|
||||
/* 기본정보 */
|
||||
private HashMap<String, Object> info = null;
|
||||
|
||||
public boolean hasInfo() {
|
||||
return (info != null && info.size() > 0);
|
||||
/**
|
||||
* 메소드를 GET으로 기본설정하여 객체 생성하는 생성자
|
||||
*/
|
||||
public DataApiReqVO() {
|
||||
this(null, HttpMethod.GET);
|
||||
}
|
||||
|
||||
/* 요청업무ID 및 처리URI */
|
||||
int reqMethod; /* 요청메소드구분값 */
|
||||
String reqUrl; /* 요청업무ID에 대한 통합시스템의 응답 처리 프로그램 URI */
|
||||
|
||||
// GET/SET
|
||||
|
||||
public int getPageIndex() {
|
||||
return (pageIndex < 1 ? DEFAULT_PAGE_INDEX : pageIndex);
|
||||
/**
|
||||
* 요청 URL을 받아 객체 생성하는 생성자
|
||||
* 메소드는 GET으로 설정된다.
|
||||
*
|
||||
* @param reqUrl
|
||||
*/
|
||||
public DataApiReqVO(String reqUrl) {
|
||||
this(reqUrl, HttpMethod.GET);
|
||||
}
|
||||
|
||||
public void setPageIndex(int pageIndex) {
|
||||
this.pageIndex = pageIndex;
|
||||
}
|
||||
|
||||
public void setPageIndex(String pageIndex) {
|
||||
try {
|
||||
this.pageIndex = Integer.parseInt(pageIndex);
|
||||
} catch(Exception e) {
|
||||
this.pageIndex = DEFAULT_PAGE_INDEX;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public int getPageSize() {
|
||||
return (pageSize < 1 ? DEFAULT_PAGE_SIZE : pageSize);
|
||||
}
|
||||
|
||||
public void setPageSize(String pageSize) {
|
||||
try {
|
||||
this.pageSize = Integer.parseInt(pageSize);
|
||||
} catch(Exception e) {
|
||||
this.pageSize = DEFAULT_PAGE_SIZE;
|
||||
}
|
||||
}
|
||||
|
||||
public void setPageSize(int pageSize) {
|
||||
this.pageSize = pageSize;
|
||||
}
|
||||
|
||||
public HashMap<String, Object> getInfo() {
|
||||
return info;
|
||||
}
|
||||
|
||||
public void setInfo(HashMap<String, Object> info) {
|
||||
this.info = info;
|
||||
}
|
||||
|
||||
public String getReqUrl() {
|
||||
return reqUrl;
|
||||
}
|
||||
public void setReqUrl(String reqUrl) {
|
||||
/**
|
||||
* 요청 URL과 메소드를 받아 객체 생성하는 생성자
|
||||
*
|
||||
* @param reqUrl
|
||||
* @param reqMethod
|
||||
*/
|
||||
public DataApiReqVO(String reqUrl, HttpMethod reqMethod) {
|
||||
this.reqUrl = reqUrl;
|
||||
}
|
||||
|
||||
public int getReqMethod() {
|
||||
return reqMethod;
|
||||
}
|
||||
|
||||
public void setReqMethod(int reqMethod) {
|
||||
this.reqMethod = reqMethod;
|
||||
}
|
||||
|
||||
public void addInfoItem(String key, String value) {
|
||||
if(key == null) return;
|
||||
|
||||
if(info == null) info = new HashMap<String, Object>();
|
||||
|
||||
info.put(key, value);
|
||||
/**
|
||||
* 사용자ID 값을 디코딩하여 리턴한다.
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
public String getMbInfoIdWithDec() {
|
||||
return AriaCrypto.decode(getMbInfoId());
|
||||
}
|
||||
|
||||
public String getInfoItem(String key) {
|
||||
if(key == null) return null;
|
||||
if(info == null) return null;
|
||||
|
||||
return (String)info.get(key);
|
||||
}
|
||||
|
||||
public void removeInfoItem(String key) {
|
||||
if(key == null) return;
|
||||
if(info == null) return;
|
||||
|
||||
info.remove(key);
|
||||
/**
|
||||
* 사용자ID를 인코딩하여 설정한다.
|
||||
*
|
||||
* @param mbInfoId
|
||||
*/
|
||||
public void setMbInfoIdWithEnc(String mbInfoId) {
|
||||
setMbInfoId(mbInfoId);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -1,9 +1,5 @@
|
||||
package nlib.restful.service;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import nlib.util.StringUtil;
|
||||
|
||||
/**
|
||||
@ -28,17 +24,21 @@ import nlib.util.StringUtil;
|
||||
* @version 1.0
|
||||
*
|
||||
*/
|
||||
public class DataApiResVO {
|
||||
public class DataApiResVO extends DataApiVO {
|
||||
|
||||
/**
|
||||
* 생성자
|
||||
*
|
||||
* @param resultCode
|
||||
* @param resultMessage
|
||||
*/
|
||||
public DataApiResVO() {
|
||||
super();
|
||||
this.resultCode = null;
|
||||
this.resultMessage = null;
|
||||
}
|
||||
|
||||
/**
|
||||
* 생성자
|
||||
* 처리결과 코드와 메시지를 입력받아 객체를 생성하는 생성자
|
||||
*
|
||||
* @param resultCode
|
||||
* @param resultMessage
|
||||
@ -48,24 +48,9 @@ public class DataApiResVO {
|
||||
this.resultMessage = resultMessage;
|
||||
}
|
||||
|
||||
|
||||
/* 처리결과 */
|
||||
String resultCode; /* 결과코드 */
|
||||
String resultMessage; /* 결과내용(오류내용) */
|
||||
|
||||
/* 페이징 정보 */
|
||||
int pageIndex = 0; /* 요청 페이지 번호 (page) */
|
||||
int pageLastIndex = 0; /* 마지막페이지번호 (totPages) */
|
||||
|
||||
/* 기본/추가 정보 */
|
||||
HashMap<String, Object> info = null;
|
||||
|
||||
/* 목록정보 */
|
||||
int recordTotCount = 0; /* 총 레코드수 (records) */
|
||||
|
||||
/**
|
||||
* 응답 처리결과가 성공인지의 여부를 리턴한다.
|
||||
* 결과코드(resultCode)의 값이 "S"로 시작하는 경우 true 리턴한다.
|
||||
* 결과코드(resultCode)의 값이 "S"로 시작하는 경우 true 리턴한다. 이외 false 리턴한다.
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
@ -74,61 +59,4 @@ public class DataApiResVO {
|
||||
return (resultCode.trim().charAt(0) == 'S');
|
||||
}
|
||||
|
||||
// GET/SET
|
||||
|
||||
public String getResultCode() {
|
||||
return resultCode;
|
||||
}
|
||||
public void setResultCode(String resultCode) {
|
||||
this.resultCode = resultCode;
|
||||
}
|
||||
public String getResultMessage() {
|
||||
return resultMessage;
|
||||
}
|
||||
public void setResultMessage(String resultMessage) {
|
||||
this.resultMessage = resultMessage;
|
||||
}
|
||||
public int getPageIndex() {
|
||||
return pageIndex;
|
||||
}
|
||||
public void setPageIndex(int pageIndex) {
|
||||
this.pageIndex = pageIndex;
|
||||
}
|
||||
public int getPageLastIndex() {
|
||||
return pageLastIndex;
|
||||
}
|
||||
public void setPageLastIndex(int pageLastIndex) {
|
||||
this.pageLastIndex = pageLastIndex;
|
||||
}
|
||||
public HashMap<String, Object> getInfo() {
|
||||
return info;
|
||||
}
|
||||
public void setInfo(HashMap<String, Object> info) {
|
||||
this.info = info;
|
||||
}
|
||||
public int getRecordTotCount() {
|
||||
return recordTotCount;
|
||||
}
|
||||
public void setRecordTotCount(int recordTotCount) {
|
||||
this.recordTotCount = recordTotCount;
|
||||
}
|
||||
|
||||
/**
|
||||
* 반복되는 목록용 리스트 정보를 가져온다.
|
||||
* - RESTful API : "<results>"요소로 반복되는 요소를 반환한다.
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
public List<HashMap<String, String>> getList() {
|
||||
if(info == null) return null;
|
||||
return (List<HashMap<String, String>>)info.get("results");
|
||||
}
|
||||
|
||||
|
||||
public String getInfoItem(String key) {
|
||||
if(key == null) return null;
|
||||
if(info == null) return null;
|
||||
|
||||
return (String)info.get(key);
|
||||
}
|
||||
}
|
||||
|
||||
288
src/main/java/nlib/restful/service/DataApiVO.java
Normal file
288
src/main/java/nlib/restful/service/DataApiVO.java
Normal file
@ -0,0 +1,288 @@
|
||||
package nlib.restful.service;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.http.HttpMethod;
|
||||
|
||||
import nlib.cmm.crypto.AriaCrypto;
|
||||
import nlib.cmm.service.NlibProperty;
|
||||
import nlib.util.StringUtil;
|
||||
|
||||
/**
|
||||
* <pre>
|
||||
* @Class Name : DataApiReqVO.java
|
||||
*
|
||||
* @Description : RESTful API 요청 VO
|
||||
*
|
||||
*
|
||||
* @프로젝트명: 지방문화원 통합자료관리시스템 구축사업 (2021)
|
||||
*
|
||||
* </pre>
|
||||
*
|
||||
* @ ------------ -------- ---------------------------
|
||||
* @ 수정일 수정자 수정내용
|
||||
* @ ------------ -------- ---------------------------
|
||||
* @ 2021. 6. 22. KNKIM 최초 생성
|
||||
*
|
||||
*
|
||||
* @author 이씨플라자 * DIGITALSHIP KNKIM
|
||||
* @since 2021. 6. 22.
|
||||
* @version 1.0
|
||||
*
|
||||
*/
|
||||
public class DataApiVO {
|
||||
|
||||
private static final Logger log = LoggerFactory.getLogger(DataApiVO.class);
|
||||
|
||||
/* 입출력 정보 중 공통 및 특정 항목들에 대한 처리를 위한 API 요소명 */
|
||||
public static final String XML_EL_NAME_ROOT_NAME = "results"; // 결과값 최상위 요소명
|
||||
public static final String XML_EL_NAME_PAGE_SIZE = "rows"; // 페이지크기 : 한페이지에 보여줄 레코드수
|
||||
public static final String XML_EL_NAME_PAGE_INDEX = "page"; // 페이지번호
|
||||
public static final String XML_EL_NAME_PAGE_LAST_INDEX = "totPages"; // 총페이지수
|
||||
public static final String XML_EL_NAME_RECORD_TOT_COUNT = "records"; // 총레코드수
|
||||
public static final String XML_EL_NAME_MB_INFO_ID = "mbInfoId"; // 시스템 내부 사용자ID
|
||||
public static final String XML_EL_NAME_RECORD = "record"; // 다건 목록 자료인 레코드 요소명
|
||||
public static final String XML_EL_NAME_RESULT_CODE = "resultCode"; // 처리결과 코드
|
||||
public static final String XML_EL_NAME_RESULT_MESSAGE = "resultMessage"; // 처리결과 메시지
|
||||
|
||||
/* 페이지 처리 기본값 */
|
||||
public static final int DEFAULT_PAGE_SIZE = NlibProperty.getInt("list.paging.page.size", 10);
|
||||
public static final int DEFAULT_PAGE_INDEX = 1;
|
||||
|
||||
String reqUrl = null; /* 요청업무ID에 대한 통합시스템의 응답 처리 프로그램 URI */
|
||||
HttpMethod reqMethod = HttpMethod.GET; /* 요청메소드구분값 */
|
||||
|
||||
String resultCode; /* 결과코드 */
|
||||
String resultMessage; /* 결과내용(오류내용) */
|
||||
|
||||
HashMap<String, String> info = null; /* 입출력 정보 맵 */
|
||||
HashMap<String, List<HashMap<String, String>>> listMap = null; /* 다건 레코드 리스트를 관리하는 맵 */
|
||||
|
||||
public DataApiVO() {
|
||||
super();
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------
|
||||
// 정보 항목 관련 IN/OUT 함수
|
||||
//--------------------------------------------------------------
|
||||
public void putInfoItem(String key, String value) {
|
||||
if(StringUtil.isEmpty(key)) return;
|
||||
if(info == null) info = new HashMap<String, String>();
|
||||
|
||||
info.put(key, value);
|
||||
}
|
||||
public String getInfoItem(String key) {
|
||||
return getInfoItem(key, null);
|
||||
}
|
||||
public String getInfoItem(String key, String defValue) {
|
||||
if(StringUtil.isEmpty(key)) return defValue;
|
||||
if(info == null) return defValue;
|
||||
|
||||
String value = info.get(key);
|
||||
|
||||
return StringUtil.isEmpty(value) ? defValue : value;
|
||||
}
|
||||
public void removeInfoItem(String key) {
|
||||
if(StringUtil.isEmpty(key)) return;
|
||||
if(info == null) return;
|
||||
info.remove(key);
|
||||
}
|
||||
public boolean hasInfo() {
|
||||
return (info != null && info.size() > 0);
|
||||
}
|
||||
|
||||
public boolean hasList() {
|
||||
return (listMap != null && listMap.size() > 0);
|
||||
}
|
||||
|
||||
public boolean hasList(String listName) {
|
||||
List list = getList(listName);
|
||||
return (list != null && list.size() > 0);
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------
|
||||
// 다건 레코드관련 함수
|
||||
//--------------------------------------------------------------
|
||||
public void addListItem(String listName, HashMap<String, String> map) {
|
||||
if(StringUtil.isEmpty(listName)) return;
|
||||
List<HashMap<String, String>> list = getList(listName);
|
||||
|
||||
if(list == null) list = new ArrayList<HashMap<String, String>>();
|
||||
list.add(map);
|
||||
setList(listName, list);
|
||||
return;
|
||||
}
|
||||
|
||||
public void removeListItem(String listName, int idx) {
|
||||
if(StringUtil.isEmpty(listName)) return;
|
||||
if(idx < 0) return;
|
||||
|
||||
List<HashMap<String, String>> list = getList(listName);
|
||||
if(list != null && list.size() > idx) list.remove(idx);
|
||||
return;
|
||||
}
|
||||
|
||||
public void clearList(String listName) {
|
||||
if(StringUtil.isEmpty(listName)) return;
|
||||
|
||||
List<HashMap<String, String>> list = getList(listName);
|
||||
if(list != null) list.clear();
|
||||
return;
|
||||
}
|
||||
|
||||
public List<HashMap<String, String>> getList(String listName) {
|
||||
if(StringUtil.isEmpty(listName)) return null;
|
||||
if(listMap == null && listMap.size() < 1) return null;
|
||||
|
||||
return listMap.get(listName);
|
||||
}
|
||||
|
||||
public void setList(String listName, List<HashMap<String, String>> list) {
|
||||
if(StringUtil.isEmpty(listName)) return;
|
||||
if(listMap == null) initList();
|
||||
|
||||
List<HashMap<String, String>> listOld = getList(listName);
|
||||
if(listOld != null) listOld.clear();
|
||||
|
||||
listMap.put(listName, list);
|
||||
return;
|
||||
}
|
||||
|
||||
private void initList() {
|
||||
if(listMap == null) listMap = new HashMap<String, List<HashMap<String, String>>>();
|
||||
return;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------
|
||||
// 페이징 처리 관련
|
||||
//--------------------------------------------------------------
|
||||
public int getPageIndex() {
|
||||
int pageIndex = 0;
|
||||
try {
|
||||
pageIndex = Integer.parseInt(getInfoItem(XML_EL_NAME_PAGE_INDEX, "0"));
|
||||
} catch(Exception e) {
|
||||
log.error("getPageIndex > " + e.toString());
|
||||
return 0;
|
||||
}
|
||||
return pageIndex;
|
||||
}
|
||||
public void setPageIndex(int pageIndex) {
|
||||
setPageIndex("" + pageIndex);
|
||||
}
|
||||
public void setPageIndex(String pageIndex) {
|
||||
putInfoItem("XML_EL_NAME_PAGE_INDEX", pageIndex);
|
||||
}
|
||||
public int getPageLastIndex() {
|
||||
int pageLastIndex = 0;
|
||||
try {
|
||||
pageLastIndex = Integer.parseInt(getInfoItem(XML_EL_NAME_PAGE_LAST_INDEX, "0"));
|
||||
} catch(Exception e) {
|
||||
log.error("getPageLastIndex > " + e.toString());
|
||||
return 0;
|
||||
}
|
||||
return pageLastIndex;
|
||||
}
|
||||
public void setPageLastIndex(int pageLastIndex) {
|
||||
setPageLastIndex("" + pageLastIndex);
|
||||
}
|
||||
public void setPageLastIndex(String pageLastIndex) {
|
||||
putInfoItem("XML_EL_NAME_PAGE_LAST_INDEX", pageLastIndex);
|
||||
}
|
||||
public int getPageSize() {
|
||||
int pageSize = 0;
|
||||
try {
|
||||
pageSize = Integer.parseInt(getInfoItem(XML_EL_NAME_PAGE_SIZE, "0"));
|
||||
} catch(Exception e) {
|
||||
log.error("getPageSize > " + e.toString());
|
||||
return 0;
|
||||
}
|
||||
return pageSize;
|
||||
}
|
||||
public void setPageSize(int pageSize) {
|
||||
setPageSize("" + pageSize);
|
||||
}
|
||||
public void setPageSize(String pageSize) {
|
||||
putInfoItem("XML_EL_NAME_PAGE_SIZE", pageSize);
|
||||
}
|
||||
public int getRecordTotCount() {
|
||||
int recordTotCount = 0;
|
||||
try {
|
||||
recordTotCount = Integer.parseInt(getInfoItem(XML_EL_NAME_RECORD_TOT_COUNT, "0"));
|
||||
} catch(Exception e) {
|
||||
log.error("getRecordTotCount > " + e.toString());
|
||||
return 0;
|
||||
}
|
||||
return recordTotCount;
|
||||
}
|
||||
public void setRecordTotCount(int recordTotCount) {
|
||||
setRecordTotCount("" + recordTotCount);
|
||||
}
|
||||
public void setRecordTotCount(String recordTotCount) {
|
||||
putInfoItem(XML_EL_NAME_RECORD_TOT_COUNT, recordTotCount);
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------
|
||||
// 사용자ID 처리 관련
|
||||
//--------------------------------------------------------------
|
||||
public String getMbInfoId() {
|
||||
return getInfoItem("XML_EL_NAME_MB_INFO_ID");
|
||||
}
|
||||
public String getEncMbInfoId() {
|
||||
return AriaCrypto.encode(getInfoItem("XML_EL_NAME_MB_INFO_ID"));
|
||||
}
|
||||
public void setMbInfoId(String mbInfoId) {
|
||||
putInfoItem("XML_EL_NAME_MB_INFO_ID", mbInfoId);
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------
|
||||
// GET & SET
|
||||
//--------------------------------------------------------------
|
||||
public String getReqUrl() {
|
||||
return reqUrl;
|
||||
}
|
||||
|
||||
public void setReqUrl(String reqUrl) {
|
||||
this.reqUrl = reqUrl;
|
||||
}
|
||||
|
||||
public HttpMethod getReqMethod() {
|
||||
return reqMethod;
|
||||
}
|
||||
|
||||
public void setReqMethod(HttpMethod reqMethod) {
|
||||
this.reqMethod = reqMethod;
|
||||
}
|
||||
|
||||
public String getResultCode() {
|
||||
return resultCode;
|
||||
}
|
||||
|
||||
public void setResultCode(String resultCode) {
|
||||
this.resultCode = resultCode;
|
||||
}
|
||||
|
||||
public String getResultMessage() {
|
||||
return resultMessage;
|
||||
}
|
||||
|
||||
public void setResultMessage(String resultMessage) {
|
||||
this.resultMessage = resultMessage;
|
||||
}
|
||||
|
||||
public HashMap<String, String> getInfo() {
|
||||
return info;
|
||||
}
|
||||
|
||||
public void setInfo(HashMap<String, String> info) {
|
||||
this.info = info;
|
||||
}
|
||||
|
||||
public HashMap<String, List<HashMap<String, String>>> getListMap() {
|
||||
return listMap;
|
||||
}
|
||||
|
||||
}
|
||||
@ -24,7 +24,7 @@ public class XmlConverter {
|
||||
|
||||
private static final Logger log = LoggerFactory.getLogger(XmlConverter.class);
|
||||
|
||||
public static HashMap<String, Object> convert(String xmlStr) throws Exception {
|
||||
public static HashMap<String, Object> convert(String xmlStr, String rootEleName) throws Exception {
|
||||
|
||||
if(xmlStr == null) return null;
|
||||
|
||||
@ -35,7 +35,7 @@ public class XmlConverter {
|
||||
XMLInputFactory inputFactory = XMLInputFactory.newInstance();
|
||||
XMLEventReader eventReader = inputFactory.createXMLEventReader(bIn);
|
||||
|
||||
resMap = getElementValue("result", eventReader, null);
|
||||
resMap = getElementValue(rootEleName, eventReader, null);
|
||||
//log.debug("Converting XML to HashMap : Done >> " + resMap);
|
||||
} catch (XMLStreamException e) {
|
||||
e.printStackTrace();
|
||||
|
||||
@ -1,5 +1,7 @@
|
||||
package nlib.restful.service.impl;
|
||||
|
||||
import java.nio.charset.StandardCharsets;
|
||||
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
@ -9,12 +11,13 @@ import org.springframework.http.HttpMethod;
|
||||
import org.springframework.http.HttpStatus;
|
||||
import org.springframework.http.MediaType;
|
||||
import org.springframework.http.ResponseEntity;
|
||||
import org.springframework.http.converter.StringHttpMessageConverter;
|
||||
import org.springframework.util.MultiValueMap;
|
||||
import org.springframework.web.client.RestTemplate;
|
||||
|
||||
import nlib.restful.service.DataApiInterface;
|
||||
import nlib.restful.service.DataApiReqVO;
|
||||
import nlib.restful.service.DataApiResVO;
|
||||
import nlib.restful.service.DataApiInterface;
|
||||
import nlib.util.StringUtil;
|
||||
|
||||
/**
|
||||
@ -53,48 +56,6 @@ public class DataApiRESTful implements DataApiInterface {
|
||||
@Value("#{properties['dataapi.server.protocol']}")
|
||||
private String DAPI_SERVER_PROTOCOL;
|
||||
|
||||
|
||||
/**
|
||||
* 조회
|
||||
*
|
||||
* @param reqVO
|
||||
* @return
|
||||
*/
|
||||
public DataApiResVO get(DataApiReqVO reqVO) {
|
||||
|
||||
return send(reqVO, HttpMethod.GET);
|
||||
}
|
||||
|
||||
/**
|
||||
* 등록
|
||||
*
|
||||
* @param reqVO
|
||||
* @return
|
||||
*/
|
||||
public DataApiResVO put(DataApiReqVO reqVO) {
|
||||
return send(reqVO, HttpMethod.PUT);
|
||||
}
|
||||
|
||||
/**
|
||||
* 수정
|
||||
*
|
||||
* @param reqVO
|
||||
* @return
|
||||
*/
|
||||
public DataApiResVO post(DataApiReqVO reqVO) {
|
||||
return send(reqVO, HttpMethod.POST);
|
||||
}
|
||||
|
||||
/**
|
||||
* 삭제
|
||||
*
|
||||
* @param reqVO
|
||||
* @return
|
||||
*/
|
||||
public DataApiResVO delete (DataApiReqVO reqVO) {
|
||||
return send(reqVO, HttpMethod.DELETE);
|
||||
}
|
||||
|
||||
/**
|
||||
* 실제 RESTful API 서버로 요청을 전송하고, 응답받은 자료를 응답VO에 담아서 리턴한다.
|
||||
*
|
||||
@ -102,42 +63,79 @@ public class DataApiRESTful implements DataApiInterface {
|
||||
* @param method
|
||||
* @return
|
||||
*/
|
||||
public DataApiResVO send(DataApiReqVO reqVO, HttpMethod method) {
|
||||
public DataApiResVO request(DataApiReqVO reqVO) {
|
||||
|
||||
log.debug("request > " + reqVO.getReqMethod());
|
||||
|
||||
DataApiResVO resVO = null;
|
||||
|
||||
try {
|
||||
|
||||
//-----------------------------------
|
||||
// 입력값 검증작업
|
||||
//-----------------------------------
|
||||
resVO = DataApiInterface.checkReqCommonParams(reqVO);
|
||||
if(resVO != null) return resVO;
|
||||
if(method == null) return new DataApiResVO("ERR_NO_METHOD", "HTTP 요청 Method가 유효하지 않습니다.");
|
||||
HttpMethod method = reqVO.getReqMethod();
|
||||
|
||||
//-----------------------------------
|
||||
// 폼 파라메터 생성 작업
|
||||
// 폼 파라메터 생성 작업 및 요청 처리
|
||||
//-----------------------------------
|
||||
String url = DAPI_SERVER_PROTOCOL + "://" + DAPI_SERVER_IP + ("80".equals(DAPI_SERVER_PORT) ? "" : ":" + DAPI_SERVER_PORT) + reqVO.getReqUrl();
|
||||
log.debug("REQ URL : " + url);
|
||||
|
||||
HttpHeaders headers = new HttpHeaders();
|
||||
headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED);
|
||||
MultiValueMap<String, String> parameters = DataApiInterface.makeParamMap(reqVO);
|
||||
|
||||
ResponseEntity<String> responseEntity = null;
|
||||
RestTemplate restTemplate = new RestTemplate();
|
||||
restTemplate.getMessageConverters()
|
||||
.add(0, new StringHttpMessageConverter(StandardCharsets.UTF_8));
|
||||
|
||||
if(method == HttpMethod.GET) {
|
||||
HttpEntity requestEntity = new HttpEntity(headers);
|
||||
responseEntity = restTemplate.exchange (DataApiInterface.makeRequestParamUrl(url, reqVO), method, requestEntity, String.class);
|
||||
} else if(method == HttpMethod.POST) {
|
||||
MultiValueMap<String, String> parameters = DataApiInterface.makeRequestParamMultiValueMap(reqVO);
|
||||
parameters.forEach((k, v) -> log.debug("params > " + k + " : " + v));
|
||||
HttpEntity<MultiValueMap<String, String>> requestEntity = new HttpEntity(parameters, headers);
|
||||
responseEntity = restTemplate.postForEntity(url, requestEntity , String.class);
|
||||
} else {
|
||||
String message = "RESTFul API Http Method 설정 오류입니다. : POST, GET 방식만 허용됩니다.";
|
||||
log.error("request > " + message);
|
||||
return DataApiInterface.makeErrorRes("E_ERR_METHOD", message);
|
||||
}
|
||||
|
||||
//-----------------------------------
|
||||
// 요청 처리
|
||||
//-----------------------------------
|
||||
RestTemplate restTemplate = new RestTemplate();
|
||||
String url = DAPI_SERVER_PROTOCOL + "://" + DAPI_SERVER_IP + ("80".equals(DAPI_SERVER_PORT) ? "" : ":" + DAPI_SERVER_PORT) + reqVO.getReqUrl();
|
||||
log.debug("REQ URL : " + reqVO.getReqUrl());
|
||||
// RestTemplate restTemplate = new RestTemplate();
|
||||
//restTemplate.setMessageConverters(msgConverters);
|
||||
|
||||
//ResponseEntity<String> responseEntity = restTemplate.exchange(url, method, requestEntity, String.class);
|
||||
// ResponseEntity<String> responseEntity = restTemplate.exchange (url, method, requestEntity, String.class);
|
||||
//ResponseEntity<String> responseEntity = restTemplate.exchange (url, HttpMethod.GET, requestEntity, String.class, parameters);
|
||||
//ResponseEntity<String> responseEntity = restTemplate.postForEntity( url, requestEntity , String.class ); // working well
|
||||
//ResponseEntity<String> responseEntity = restTemplate.getForEntity(url, String.class, parameters); // not working
|
||||
|
||||
/*
|
||||
// GET // OK
|
||||
UriComponentsBuilder builder = UriComponentsBuilder.fromHttpUrl(url)
|
||||
.queryParam("mngOrgCd", "SU01")
|
||||
.queryParam("masterId", "UR-408A9832D25C42289D9B1FC81FDA8360")
|
||||
.queryParam("typeDivCd", "IT_MUSE");
|
||||
HttpEntity<?> entity = new HttpEntity<>(headers);
|
||||
RestTemplate restTemplate = new RestTemplate();
|
||||
ResponseEntity<String> responseEntity = restTemplate.exchange (builder.toUriString(), method, entity, String.class);
|
||||
*/
|
||||
|
||||
ResponseEntity<String> responseEntity = restTemplate.exchange(url, method, requestEntity, String.class);
|
||||
|
||||
//-----------------------------------
|
||||
// 응답 처리
|
||||
//-----------------------------------
|
||||
HttpStatus statusCode = responseEntity.getStatusCode();
|
||||
log.debug("RES StatusCode : " + statusCode);
|
||||
String resultXML = "";
|
||||
resultXML = responseEntity.getBody();
|
||||
String resultXML = responseEntity.getBody();
|
||||
log.debug("RES resultXML : " + resultXML);
|
||||
|
||||
// 응답 자료 객체화
|
||||
@ -145,19 +143,22 @@ public class DataApiRESTful implements DataApiInterface {
|
||||
|
||||
// 처리결과 코드 확인
|
||||
if(StringUtil.isEmpty(resVO.getResultCode())) {
|
||||
String resultMessage = resVO.getResultMessage();
|
||||
if (statusCode == HttpStatus.OK) {
|
||||
resVO.setResultCode("S_HTTP_STATUS_OK");
|
||||
resVO.setResultMessage("정상처리되었습니다.");
|
||||
resVO.setResultMessage(StringUtil.isEmpty(resultMessage) ? "정상처리되었습니다." : resultMessage);
|
||||
} else {
|
||||
resVO.setResultCode("E_STATUS_CODE_FAIL");
|
||||
resVO.setResultMessage(String.format("처리에 실패하였습니다. (HTTP상태코드 : %s)", statusCode.toString()));
|
||||
resVO.setResultMessage(StringUtil.isEmpty(resultMessage) ? String.format("처리에 실패하였습니다. (HTTP상태코드 : %s)", statusCode.toString()) : resultMessage);
|
||||
}
|
||||
}
|
||||
|
||||
//log.debug("RES resVO : " + resVO);
|
||||
log.debug("RES resVO : resultCode = " + resVO.getResultCode());
|
||||
log.debug("RES resVO : resultMessage = " + resVO.getResultMessage());
|
||||
|
||||
} catch(Exception e) {
|
||||
e.printStackTrace();
|
||||
log.error("request > Exception 발생 : " + e.toString());
|
||||
return DataApiInterface.makeErrorRes("E_REQ_EXCEPTION", e.toString());
|
||||
}
|
||||
|
||||
|
||||
@ -10,7 +10,6 @@ import java.nio.charset.StandardCharsets;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.http.HttpEntity;
|
||||
import org.springframework.http.HttpHeaders;
|
||||
import org.springframework.http.HttpMethod;
|
||||
import org.springframework.http.HttpStatus;
|
||||
@ -19,10 +18,11 @@ import org.springframework.util.MultiValueMap;
|
||||
|
||||
import com.fasterxml.jackson.dataformat.xml.XmlMapper;
|
||||
|
||||
import nlib.restful.service.DataApiInterface;
|
||||
import nlib.restful.service.DataApiReqVO;
|
||||
import nlib.restful.service.DataApiResVO;
|
||||
import nlib.restful.service.DataApiServerResponseVO;
|
||||
import nlib.restful.service.DataApiInterface;
|
||||
import nlib.restful.service.DataApiVO;
|
||||
import nlib.util.StringUtil;
|
||||
|
||||
/**
|
||||
@ -56,47 +56,6 @@ public class DataApiTempXml implements DataApiInterface {
|
||||
private String DAPI_TEMP_XML_PATH;
|
||||
|
||||
|
||||
/**
|
||||
* 조회
|
||||
*
|
||||
* @param reqVO
|
||||
* @return
|
||||
*/
|
||||
public DataApiResVO get(DataApiReqVO reqVO) {
|
||||
|
||||
return send(reqVO, HttpMethod.GET);
|
||||
}
|
||||
|
||||
/**
|
||||
* 등록
|
||||
*
|
||||
* @param reqVO
|
||||
* @return
|
||||
*/
|
||||
public DataApiResVO put(DataApiReqVO reqVO) {
|
||||
return send(reqVO, HttpMethod.PUT);
|
||||
}
|
||||
|
||||
/**
|
||||
* 수정
|
||||
*
|
||||
* @param reqVO
|
||||
* @return
|
||||
*/
|
||||
public DataApiResVO post(DataApiReqVO reqVO) {
|
||||
return send(reqVO, HttpMethod.POST);
|
||||
}
|
||||
|
||||
/**
|
||||
* 삭제
|
||||
*
|
||||
* @param reqVO
|
||||
* @return
|
||||
*/
|
||||
public DataApiResVO delete (DataApiReqVO reqVO) {
|
||||
return send(reqVO, HttpMethod.DELETE);
|
||||
}
|
||||
|
||||
/**
|
||||
* 실제 RESTful API 서버로 요청을 전송하고, 응답받은 자료를 응답VO에 담아서 리턴한다.
|
||||
*
|
||||
@ -104,7 +63,9 @@ public class DataApiTempXml implements DataApiInterface {
|
||||
* @param method
|
||||
* @return
|
||||
*/
|
||||
public DataApiResVO send(DataApiReqVO reqVO, HttpMethod method) {
|
||||
public DataApiResVO request(DataApiReqVO reqVO) {
|
||||
|
||||
log.debug("request > " + reqVO.getReqMethod());
|
||||
|
||||
DataApiResVO resVO = null;
|
||||
|
||||
@ -114,21 +75,20 @@ public class DataApiTempXml implements DataApiInterface {
|
||||
//-----------------------------------
|
||||
resVO = DataApiInterface.checkReqCommonParams(reqVO);
|
||||
if(resVO != null) return resVO;
|
||||
if(method == null) return new DataApiResVO("ERR_NO_METHOD", "HTTP 요청 Method가 유효하지 않습니다.");
|
||||
HttpMethod method = reqVO.getReqMethod();
|
||||
|
||||
//-----------------------------------
|
||||
// 폼 파라메터 생성 작업
|
||||
// 폼 파라메터 생성 작업 (요청데이터 확인용)
|
||||
//-----------------------------------
|
||||
HttpHeaders headers = new HttpHeaders();
|
||||
headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED);
|
||||
MultiValueMap<String, String> parameters = DataApiInterface.makeParamMap(reqVO);
|
||||
HttpEntity<MultiValueMap<String, String>> requestEntity = new HttpEntity(parameters, headers);
|
||||
MultiValueMap<String, String> parameters = DataApiInterface.makeRequestParamMultiValueMap(reqVO);
|
||||
|
||||
//-----------------------------------
|
||||
// 응답 처리
|
||||
//-----------------------------------
|
||||
HttpStatus statusCode = HttpStatus.OK;
|
||||
String resultXML = getTempDataFromXmlFile(reqVO, method);
|
||||
String resultXML = getTempDataFromXmlFile(reqVO);
|
||||
//log.debug("RES resultXML : " + resultXML);
|
||||
|
||||
// 응답 자료 객체화
|
||||
@ -136,16 +96,18 @@ public class DataApiTempXml implements DataApiInterface {
|
||||
|
||||
// 처리결과 코드 확인
|
||||
if(StringUtil.isEmpty(resVO.getResultCode())) {
|
||||
String resultMessage = resVO.getResultMessage();
|
||||
if (statusCode == HttpStatus.OK) {
|
||||
resVO.setResultCode("S_HTTP_STATUS_OK");
|
||||
resVO.setResultMessage("정상처리되었습니다.");
|
||||
resVO.setResultMessage(StringUtil.isEmpty(resultMessage) ? "정상처리되었습니다." : resultMessage);
|
||||
} else {
|
||||
resVO.setResultCode("E_STATUS_CODE_FAIL");
|
||||
resVO.setResultMessage(String.format("처리에 실패하였습니다. (HTTP상태코드 : %s)", statusCode.toString()));
|
||||
resVO.setResultMessage(StringUtil.isEmpty(resultMessage) ? String.format("처리에 실패하였습니다. (HTTP상태코드 : %s)", statusCode.toString()) : resultMessage);
|
||||
}
|
||||
}
|
||||
|
||||
//log.debug("RES resVO : " + resVO);
|
||||
log.debug("RES resVO : resultCode = " + resVO.getResultCode());
|
||||
log.debug("RES resVO : resultMessage = " + resVO.getResultMessage());
|
||||
|
||||
} catch(Exception e) {
|
||||
e.printStackTrace();
|
||||
@ -163,8 +125,9 @@ public class DataApiTempXml implements DataApiInterface {
|
||||
* @return
|
||||
* @throws Exception
|
||||
*/
|
||||
private String getTempDataFromXmlFile(DataApiReqVO reqVO, HttpMethod method) throws Exception {
|
||||
private String getTempDataFromXmlFile(DataApiReqVO reqVO) throws Exception {
|
||||
|
||||
HttpMethod method = reqVO.getReqMethod();
|
||||
String fileName = reqVO.getReqUrl().substring(1).replaceAll("/", ".");
|
||||
String xmlPath = DAPI_TEMP_XML_PATH + "/" + fileName + "_" + method.toString().toUpperCase() + ".xml";
|
||||
String returnXmlStr = null;
|
||||
@ -184,7 +147,7 @@ public class DataApiTempXml implements DataApiInterface {
|
||||
if(resVO == null && !xmlFile.isFile()) {
|
||||
resVO = new DataApiServerResponseVO("-21", String.format("%s는 파일이어야 합니다.",xmlPath));
|
||||
XmlMapper mapper = new XmlMapper();
|
||||
returnXmlStr = mapper.writer().withRootName("result").writeValueAsString(resVO);
|
||||
returnXmlStr = mapper.writer().withRootName(DataApiVO.XML_EL_NAME_ROOT_NAME).writeValueAsString(resVO);
|
||||
}
|
||||
|
||||
if(resVO == null) {
|
||||
@ -204,7 +167,7 @@ public class DataApiTempXml implements DataApiInterface {
|
||||
|
||||
resVO = new DataApiServerResponseVO("-22", String.format("%s 파일을 읽는 중 오류가 발생하였습니다(%s). ",xmlPath, e.toString()));
|
||||
XmlMapper mapper = new XmlMapper();
|
||||
returnXmlStr = mapper.writer().withRootName("result").writeValueAsString(resVO);
|
||||
returnXmlStr = mapper.writer().withRootName(DataApiVO.XML_EL_NAME_ROOT_NAME).writeValueAsString(resVO);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -29,4 +29,5 @@ public interface SampleDataApiService {
|
||||
|
||||
public DataApiResVO getSampleInfo(DataApiReqVO reqVO) throws Exception;
|
||||
|
||||
public DataApiResVO getItemInfo(DataApiReqVO reqVO) throws Exception;
|
||||
}
|
||||
|
||||
@ -1,47 +0,0 @@
|
||||
package nlib.sample.service.impl;
|
||||
|
||||
import org.springframework.stereotype.Repository;
|
||||
|
||||
import nlib.restful.DataApi;
|
||||
import nlib.restful.service.DataApiReqVO;
|
||||
import nlib.restful.service.DataApiResVO;
|
||||
|
||||
/**
|
||||
* <pre>
|
||||
* @Class Name : SampleDataApiDAO.java
|
||||
*
|
||||
* @Description : RESTful API 호출 샘플
|
||||
*
|
||||
*
|
||||
* @프로젝트명: 지방문화원 통합자료관리시스템 구축사업 (2021)
|
||||
*
|
||||
* </pre>
|
||||
*
|
||||
* @ ------------ -------- ---------------------------
|
||||
* @ 수정일 수정자 수정내용
|
||||
* @ ------------ -------- ---------------------------
|
||||
* @ 2021. 6. 22. KNKIM 최초 생성
|
||||
*
|
||||
*
|
||||
* @author 이씨플라자 * DIGITALSHIP KNKIM
|
||||
* @since 2021. 6. 22.
|
||||
* @version 1.0
|
||||
*
|
||||
*/
|
||||
@Repository("sampleDataApiDAO")
|
||||
public class SampleDataApiDAO extends DataApi {
|
||||
|
||||
/**
|
||||
* 주 자원의 URI
|
||||
*/
|
||||
public static final String RESOURCE_URI = "/uac/service/exports";
|
||||
|
||||
public DataApiResVO getSampleInfo(DataApiReqVO reqVO) throws Exception {
|
||||
|
||||
// URI가 다른 경우, 해당 URI 설정
|
||||
reqVO.setReqUrl(RESOURCE_URI);
|
||||
|
||||
return get(reqVO);
|
||||
}
|
||||
|
||||
}
|
||||
@ -4,6 +4,7 @@ import javax.annotation.Resource;
|
||||
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import nlib.restful.DataApi;
|
||||
import nlib.restful.service.DataApiReqVO;
|
||||
import nlib.restful.service.DataApiResVO;
|
||||
import nlib.sample.service.SampleDataApiService;
|
||||
@ -33,12 +34,15 @@ import nlib.sample.service.SampleDataApiService;
|
||||
@Service("sampleDataApiService")
|
||||
public class SampleDataApiServiceImpl implements SampleDataApiService {
|
||||
|
||||
/** SampleDataApiDAO */
|
||||
@Resource(name = "sampleDataApiDAO")
|
||||
private SampleDataApiDAO sampleDataApiDAO;
|
||||
/** RESTFul API 송수신 모듈 */
|
||||
@Resource(name = "dataApi")
|
||||
private DataApi dataApi;
|
||||
|
||||
public DataApiResVO getSampleInfo(DataApiReqVO reqVO) throws Exception {
|
||||
return sampleDataApiDAO.getSampleInfo(reqVO);
|
||||
return dataApi.request(reqVO);
|
||||
}
|
||||
|
||||
public DataApiResVO getItemInfo(DataApiReqVO reqVO) throws Exception {
|
||||
return dataApi.request(reqVO);
|
||||
}
|
||||
}
|
||||
|
||||
@ -3,16 +3,22 @@ package nlib.sample.web;
|
||||
import java.util.Map;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.http.HttpMethod;
|
||||
import org.springframework.stereotype.Controller;
|
||||
import org.springframework.ui.ModelMap;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RequestParam;
|
||||
|
||||
import nlib.cmm.NlibCommonController;
|
||||
import nlib.restful.service.DataApiReqVO;
|
||||
import nlib.restful.service.DataApiResVO;
|
||||
import nlib.restful.service.DataApiVO;
|
||||
import nlib.sample.service.SampleDataApiService;
|
||||
import nlib.user.service.NlibLoginVO;
|
||||
import nlib.util.StringUtil;
|
||||
|
||||
/**
|
||||
* <pre>
|
||||
@ -37,7 +43,7 @@ import nlib.sample.service.SampleDataApiService;
|
||||
*
|
||||
*/
|
||||
@Controller
|
||||
public class SampleDataApiController {
|
||||
public class SampleDataApiController extends NlibCommonController {
|
||||
|
||||
/** SampleDataApiService */
|
||||
@Resource(name = "sampleDataApiService")
|
||||
@ -80,4 +86,91 @@ public class SampleDataApiController {
|
||||
return "nlib/sample/getSampleInfo";
|
||||
}
|
||||
|
||||
@RequestMapping("/sample/getItemInfo.do")
|
||||
public String getItemInfo(HttpServletRequest request, @RequestParam Map<String, String> commandMap, ModelMap model) throws Exception {
|
||||
|
||||
String message = null;
|
||||
|
||||
DataApiReqVO reqVO = new DataApiReqVO("/uac/service/nlib/col/getItemInfo", HttpMethod.GET);
|
||||
|
||||
String mngOrgCd = commandMap.get("mngOrgCd");
|
||||
String masterId = commandMap.get("masterId");
|
||||
String typeDivCd = commandMap.get("typeDivCd");
|
||||
|
||||
if(StringUtil.isEmpty(mngOrgCd) || StringUtil.isEmpty(masterId) || StringUtil.isEmpty(typeDivCd)) {
|
||||
message = "필수정보값이 입력되지 않았습니다.";
|
||||
model.addAttribute("message", message);
|
||||
return "nlib/sample/getItemInfo";
|
||||
}
|
||||
|
||||
// 변수 설정
|
||||
reqVO.putInfoItem("mngOrgCd", mngOrgCd);
|
||||
reqVO.putInfoItem("masterId", masterId);
|
||||
reqVO.putInfoItem("typeDivCd", typeDivCd);
|
||||
|
||||
// 사용자ID 설정
|
||||
NlibLoginVO nlibLoginVO = getNlibLoginVO(request);
|
||||
if(nlibLoginVO != null && !StringUtil.isEmpty(nlibLoginVO.getMbInfoId())) {
|
||||
reqVO.setMbInfoId(nlibLoginVO.getMbInfoId());
|
||||
}
|
||||
|
||||
// API 호출
|
||||
DataApiResVO resVO = sampleDataApiService.getItemInfo(reqVO);
|
||||
|
||||
// 결과값 전달
|
||||
model.addAttribute("resultCode", resVO.getResultCode());
|
||||
model.addAttribute("resultMessage", resVO.getResultMessage());
|
||||
model.addAttribute("info", resVO.getInfo());
|
||||
|
||||
// 참고 정보 : API 접속 서버 정보
|
||||
model.addAttribute("serverProtocol", dataapiServerIp);
|
||||
model.addAttribute("serverIp", dataapiServerPort);
|
||||
model.addAttribute("serverPort", dataapiServerProtocol);
|
||||
|
||||
return "nlib/sample/getItemInfo";
|
||||
}
|
||||
|
||||
@RequestMapping("/sample/listRentItem.do")
|
||||
public String listRentItem(HttpServletRequest request, @RequestParam Map<String, String> commandMap, ModelMap model) throws Exception {
|
||||
|
||||
String message = null;
|
||||
|
||||
DataApiReqVO reqVO = new DataApiReqVO("/uac/service/nlib/rent/listRentItem", HttpMethod.GET);
|
||||
|
||||
// 변수 설정
|
||||
reqVO.putInfoItem("rows", getParamStr(commandMap, "rows", "10"));
|
||||
reqVO.putInfoItem("page", getParamStr(commandMap, "rows", "1"));
|
||||
reqVO.putInfoItem("mngOrgCd", getParamStr(commandMap, "mngOrgCd", "KCCF"));
|
||||
reqVO.putInfoItem("mbInfoId", getParamStr(commandMap, "mbInfoId", "BDCCAF34CF8AA365C660ADB121CE6741"));
|
||||
|
||||
// 사용자ID 설정
|
||||
// NlibLoginVO nlibLoginVO = getNlibLoginVO(request);
|
||||
// if(nlibLoginVO != null && !StringUtil.isEmpty(nlibLoginVO.getMbInfoId())) {
|
||||
// reqVO.setMbInfoId(nlibLoginVO.getMbInfoId());
|
||||
// }
|
||||
|
||||
// API 호출
|
||||
DataApiResVO resVO = sampleDataApiService.getItemInfo(reqVO);
|
||||
|
||||
// 입력 매개변수 전달
|
||||
model.addAttribute("rows", resVO.getRecordTotCount());
|
||||
model.addAttribute("page", resVO.getPageIndex());
|
||||
model.addAttribute("mngOrgCd", resVO.getInfoItem("mngOrgCd"));
|
||||
model.addAttribute("mbInfoId", resVO.getInfoItem("mbInfoId"));
|
||||
|
||||
// 결과값 전달
|
||||
model.addAttribute("resultCode", resVO.getResultCode());
|
||||
model.addAttribute("resultMessage", resVO.getResultMessage());
|
||||
model.addAttribute("info", resVO.getInfo());
|
||||
model.addAttribute("list", resVO.getList(DataApiVO.XML_EL_NAME_RECORD));
|
||||
|
||||
// 참고 정보 : API 접속 서버 정보
|
||||
model.addAttribute("serverProtocol", dataapiServerIp);
|
||||
model.addAttribute("serverIp", dataapiServerPort);
|
||||
model.addAttribute("serverPort", dataapiServerProtocol);
|
||||
|
||||
return "nlib/sample/listRentItem";
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@ -77,10 +77,12 @@ public class SpringSecurityConfig extends WebSecurityConfigurerAdapter {
|
||||
.antMatchers("/rent/*.do").permitAll()
|
||||
.antMatchers("/collection/*.do").permitAll()
|
||||
.antMatchers("/sample/password/getSampleEncoder.do").permitAll()
|
||||
.antMatchers("/sample/*.do").permitAll()
|
||||
.antMatchers("/*/*Ajax.do").permitAll()
|
||||
.antMatchers("/fileupload/**").permitAll()
|
||||
.antMatchers("/board/**").permitAll()
|
||||
.antMatchers("/inform/**").permitAll()
|
||||
.antMatchers("/test/**").permitAll()
|
||||
.antMatchers("/alert/**").permitAll()
|
||||
.antMatchers("/code/**").permitAll()
|
||||
.antMatchers("/homes/**").permitAll()
|
||||
|
||||
@ -76,6 +76,7 @@
|
||||
, ACC_IP
|
||||
, LOGIN_SUCS_YN
|
||||
, ACC_DATE
|
||||
, SYS_DIV
|
||||
) VALUES (
|
||||
#{mbInfoId}
|
||||
,#{name}
|
||||
@ -84,6 +85,7 @@
|
||||
,#{ip}
|
||||
,'Y'
|
||||
,NOW()
|
||||
,'02' /* 2021.10.05 추가 (소장자료관) */
|
||||
)
|
||||
</insert>
|
||||
|
||||
|
||||
@ -54,11 +54,16 @@ nlib.council.dns.host = nlib
|
||||
#dataapi.server.port = 80
|
||||
#dataapi.server.protocol = http
|
||||
|
||||
# \ub85c\uceec \uc11c\ubc84
|
||||
dataapi.server.ip = localhost
|
||||
dataapi.server.port = 8088
|
||||
# \uc784\uc2dc PC \uac1c\ubc1c \uc11c\ubc84
|
||||
dataapi.server.ip = 192.168.25.87
|
||||
dataapi.server.port = 8080
|
||||
dataapi.server.protocol = http
|
||||
|
||||
# \ub85c\uceec \uc11c\ubc84
|
||||
#dataapi.server.ip = localhost
|
||||
#dataapi.server.port = 8088
|
||||
#dataapi.server.protocol = http
|
||||
|
||||
# \ub85c\uceec \uac1c\ubc1c\uc6a9 XML \ud30c\uc77c \uc704\uce58
|
||||
dataapi.temp.xml.path = C:/iams/workspace/nlib/data/dataxml
|
||||
|
||||
|
||||
86
src/main/webapp/WEB-INF/jsp/nlib/sample/getItemInfo.jsp
Normal file
86
src/main/webapp/WEB-INF/jsp/nlib/sample/getItemInfo.jsp
Normal file
@ -0,0 +1,86 @@
|
||||
<%
|
||||
/**
|
||||
* <pre>
|
||||
* @Class Name : getSampleInfo.jsp
|
||||
*
|
||||
* @Description : RESTful API 호출 샘플
|
||||
*
|
||||
*
|
||||
* @프로젝트명: 지방문화원 통합자료관리시스템 구축사업 (2021)
|
||||
*
|
||||
* </pre>
|
||||
*
|
||||
* @ ------------ -------- ---------------------------
|
||||
* @ 수정일 수정자 수정내용
|
||||
* @ ------------ -------- ---------------------------
|
||||
* @ 2021. 6. 15. KNKIM 최초 생성
|
||||
*
|
||||
*
|
||||
* @author 이씨플라자 * DIGITALSHIP KNKIM
|
||||
* @since 2021. 6. 15.
|
||||
* @version 1.0
|
||||
*
|
||||
*/
|
||||
%>
|
||||
<%@ page language="java" contentType="text/html; charset=UTF-8" %>
|
||||
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
|
||||
<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui" %>
|
||||
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
|
||||
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
|
||||
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %>
|
||||
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
|
||||
<%@ taglib prefix="validator" uri="http://www.springmodules.org/tags/commons-validator" %>
|
||||
<c:set var="pageTitle"><spring:message code="nlib.title"/> - 결과</c:set>
|
||||
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>${pageTitle}</title>
|
||||
<meta http-equiv="content-type" content="text/html; charset=utf-8">
|
||||
|
||||
<script type="text/javaScript" language="javascript">
|
||||
|
||||
</script>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<!-- javascript warning tag -->
|
||||
<noscript class="noScriptTitle"><spring:message code="common.noScriptTitle.msg" /></noscript>
|
||||
<form
|
||||
action="${pageContext.request.contextPath}/sample/getItemInfo.do"
|
||||
method="post">
|
||||
|
||||
<div class="wTableFrm">
|
||||
<!-- 타이틀 -->
|
||||
<h2>${pageTitle}</h2>
|
||||
|
||||
<div style="clear:both;">Server Protocol : ${serverProtocol}</div>
|
||||
<div style="clear:both;">Server IP : ${serverIp}</div>
|
||||
<div style="clear:both;">Server PORT : ${serverPort}</div>
|
||||
|
||||
<br />
|
||||
<br />
|
||||
<br />
|
||||
|
||||
mngOrgCd : <input name="mngOrgCd" id="mngOrgCd" value="SU01" /> <br />
|
||||
masterId : <input name="masterId" id="masterId" value="UR-408A9832D25C42289D9B1FC81FDA8360" /> <br />
|
||||
typeDivCd : <input name="typeDivCd" id="typeDivCd" value="IT_MUSE" /> <br />
|
||||
|
||||
<br />
|
||||
resultCode : <input name="resultCode" id="resultCode" value="${resultCode}" /> <br />
|
||||
resultMessage : <input name="resultCode" id="resultCode" value="${resultMessage}" /> <br />
|
||||
info.title : <input name="info.name" id="info.name" value="${info.title}" /> <br />
|
||||
info.typeCodeNm : <input name="info.name" id="info.name" value="${info.typeCodeNm}" /> <br />
|
||||
info.masterId : <input name="info.name" id="info.name" value="${info.masterId}" /> <br />
|
||||
<br />
|
||||
|
||||
<div style="clear:both;"></div>
|
||||
|
||||
<input type="submit" id="btnSubmit" name="btnSubmit" value="전송" />
|
||||
|
||||
</div>
|
||||
|
||||
</form>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
98
src/main/webapp/WEB-INF/jsp/nlib/sample/listRentItem.jsp
Normal file
98
src/main/webapp/WEB-INF/jsp/nlib/sample/listRentItem.jsp
Normal file
@ -0,0 +1,98 @@
|
||||
<%
|
||||
/**
|
||||
* <pre>
|
||||
* @Class Name : getSampleInfo.jsp
|
||||
*
|
||||
* @Description : RESTful API 호출 샘플
|
||||
*
|
||||
*
|
||||
* @프로젝트명: 지방문화원 통합자료관리시스템 구축사업 (2021)
|
||||
*
|
||||
* </pre>
|
||||
*
|
||||
* @ ------------ -------- ---------------------------
|
||||
* @ 수정일 수정자 수정내용
|
||||
* @ ------------ -------- ---------------------------
|
||||
* @ 2021. 6. 15. KNKIM 최초 생성
|
||||
*
|
||||
*
|
||||
* @author 이씨플라자 * DIGITALSHIP KNKIM
|
||||
* @since 2021. 6. 15.
|
||||
* @version 1.0
|
||||
*
|
||||
*/
|
||||
%>
|
||||
<%@ page language="java" contentType="text/html; charset=UTF-8" %>
|
||||
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
|
||||
<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui" %>
|
||||
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
|
||||
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
|
||||
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %>
|
||||
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
|
||||
<%@ taglib prefix="validator" uri="http://www.springmodules.org/tags/commons-validator" %>
|
||||
<c:set var="pageTitle">대출목록</c:set>
|
||||
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>${pageTitle}</title>
|
||||
<meta http-equiv="content-type" content="text/html; charset=utf-8">
|
||||
|
||||
<script type="text/javaScript" language="javascript">
|
||||
|
||||
</script>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<!-- javascript warning tag -->
|
||||
<noscript class="noScriptTitle"><spring:message code="common.noScriptTitle.msg" /></noscript>
|
||||
<form
|
||||
action="${pageContext.request.contextPath}/sample/listRentItem.do"
|
||||
method="post">
|
||||
|
||||
<div class="wTableFrm">
|
||||
<!-- 타이틀 -->
|
||||
<h2>${pageTitle}</h2>
|
||||
|
||||
<div style="clear:both;">Server Protocol : ${serverProtocol}</div>
|
||||
<div style="clear:both;">Server IP : ${serverIp}</div>
|
||||
<div style="clear:both;">Server PORT : ${serverPort}</div>
|
||||
|
||||
<br />
|
||||
<br />
|
||||
<br />
|
||||
|
||||
rows : <input name="rows" id="rows" value="10" /> <br />
|
||||
page : <input name="page" id="page" value="1" /> <br />
|
||||
mngOrgCd : <input name="mngOrgCd" id="mngOrgCd" value="KCCF" /> <br />
|
||||
mbInfoId : <input name="mbInfoId" id="mbInfoId" value="BDCCAF34CF8AA365C660ADB121CE6741" /> <br />
|
||||
--------------------------------------------------------------------------
|
||||
<br />
|
||||
resultCode : <input name="resultCode" id="resultCode" value="${resultCode}" /> <br />
|
||||
resultMessage : <input name="resultCode" id="resultCode" value="${resultMessage}" /> <br />
|
||||
totPages : <input name="info.name" id="info.name" value="${info.totPages}" /> <br />
|
||||
records : <input name="info.name" id="info.name" value="${info.records}" /> <br />
|
||||
list : <input name=""list"" id="list" value="${list}" /> <br />
|
||||
<c:forEach var="record" items="${list }">
|
||||
> ----------------------------------------------------------- <br />
|
||||
> mngOrgCd = ${record.mngOrgCd} <br />
|
||||
> operReadRangeCd = ${record.operReadRangeCd} <br />
|
||||
> bookLtRvStatusCd = ${record.bookLtRvStatusCd} <br />
|
||||
> title = ${record.title} <br />
|
||||
> typeCodeNm = ${record.typeCodeNm} <br />
|
||||
> awaiterCnt = ${record.awaiterCnt} <br />
|
||||
> useStatus = ${record.useStatus} <br />
|
||||
</c:forEach>
|
||||
|
||||
<br />
|
||||
|
||||
<div style="clear:both;"></div>
|
||||
|
||||
<input type="submit" id="btnSubmit" name="btnSubmit" value="전송" />
|
||||
|
||||
</div>
|
||||
|
||||
</form>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
@ -31,6 +31,8 @@
|
||||
<li><a href="#" style="color:#FF5;" onclick="javascript:location.href='${pageContext.request.contextPath}/sample/password/getSampleEncoder.do';">암호화</a></li>
|
||||
<li><a href="#" style="color:#FF5;" onclick="javascript:location.href='${pageContext.request.contextPath}/system/reloadProperties.do';">프로퍼티갱신</a></li>
|
||||
<li><a href="#" style="color:#FF5;" onclick="javascript:location.href='${pageContext.request.contextPath}/code/listCodes.do';">코드조회</a></li>
|
||||
<li><a href="#" style="color:#FF5;" onclick="javascript:location.href='${pageContext.request.contextPath}/sample/getItemInfo.do';">자료상세조회:API샘플</a></li>
|
||||
<li><a href="#" style="color:#FF5;" onclick="javascript:location.href='${pageContext.request.contextPath}/sample/listRentItem.do';">목록조회:API샘플</a></li>
|
||||
|
||||
|
||||
</ul>
|
||||
|
||||
28
src/main/webapp/test/testRest.html
Normal file
28
src/main/webapp/test/testRest.html
Normal file
@ -0,0 +1,28 @@
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
|
||||
<link rel="icon" href="/favicon/favicon.ico" sizes="any"><!-- 32×32 -->
|
||||
<link rel="apple-touch-icon" href="/favicon/apple-touch-icon.png"><!-- 180×180 -->
|
||||
<link rel="manifest" href="/favicon/site.webmanifest">
|
||||
|
||||
|
||||
<link href="/css/nlib.css" rel="stylesheet" type="text/css" />
|
||||
<script src="/js/jquery/jquery.min.js"></script>
|
||||
<script src="/js/nlib.js"></script>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<form action="http://localhost:8088/uac/service/nlib/col/getItemInfo" method="GET">
|
||||
mngOrgCd : <input name="mngOrgCd" id="mngOrgCd" value="SU01" /> <br />
|
||||
masterId : <input name="masterId" id="masterId" value="UR-408A9832D25C42289D9B1FC81FDA8360" /> <br />
|
||||
typeDivCd : <input name="typeDivCd" id="typeDivCd" value="IT_MUSE" /> <br />
|
||||
|
||||
<br />
|
||||
<input type="submit" id="btnSubmit" name="btnSubmit" value="전송" />
|
||||
</form>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
Loading…
Reference in New Issue
Block a user