주상도PDF를 다운로드 하는 API 개발
parent
ac1aea006a
commit
1a3f94524c
|
|
@ -51,7 +51,8 @@ public class GeoinfoApiV1Controller {
|
||||||
"- 예시 URL: /api/geoinfo/v1/getProjectInfo.do, /api/geoinfo/v1/getBoreholeInfo.do<br />" +
|
"- 예시 URL: /api/geoinfo/v1/getProjectInfo.do, /api/geoinfo/v1/getBoreholeInfo.do<br />" +
|
||||||
"- 변경자명 : 김종훈<br />" +
|
"- 변경자명 : 김종훈<br />" +
|
||||||
"- 변경일자 : 2025.08.14")
|
"- 변경일자 : 2025.08.14")
|
||||||
@RequestMapping(value = "/{spName}.do", method = RequestMethod.GET)
|
// @RequestMapping(value = "/{spName}.do", method = RequestMethod.GET)
|
||||||
|
@RequestMapping(value = "/{spName:^(?!borehole-log$).+}.do", method = RequestMethod.GET)
|
||||||
@ResponseBody
|
@ResponseBody
|
||||||
public JSONObject handleApiService(
|
public JSONObject handleApiService(
|
||||||
@ApiParam(value = "URL 경로에 포함된 서비스 이름", required = true, example = "getProjectInfo") @PathVariable("spName") String spName,
|
@ApiParam(value = "URL 경로에 포함된 서비스 이름", required = true, example = "getProjectInfo") @PathVariable("spName") String spName,
|
||||||
|
|
@ -115,4 +116,41 @@ public class GeoinfoApiV1Controller {
|
||||||
|
|
||||||
return jsonResponse;
|
return jsonResponse;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@RequestMapping(value = "/borehole-log.do", method = RequestMethod.GET)
|
||||||
|
public void getBoreholeLogPdf(
|
||||||
|
@RequestParam String holeCode,
|
||||||
|
@RequestParam HashMap<String, Object> params,
|
||||||
|
HttpServletResponse response) throws Exception {
|
||||||
|
int validApiKey = 0;
|
||||||
|
validApiKey = geoinfoApiV1Service.isValidWebApiKey(params);
|
||||||
|
|
||||||
|
if (validApiKey != 1) {
|
||||||
|
JSONObject jsonResponse = new JSONObject();
|
||||||
|
if (validApiKey == -1) {
|
||||||
|
jsonResponse.put("resultCode", -1);
|
||||||
|
jsonResponse.put("result", "false");
|
||||||
|
jsonResponse.put("message", "미승인 API키 입니다.");
|
||||||
|
} else if (validApiKey == -2) {
|
||||||
|
jsonResponse.put("resultCode", -2);
|
||||||
|
jsonResponse.put("result", "false");
|
||||||
|
jsonResponse.put("message", "기간이 만료된 API키 입니다.");
|
||||||
|
} else { // validApiKey == 0
|
||||||
|
jsonResponse.put("resultCode", 0);
|
||||||
|
jsonResponse.put("result", "false");
|
||||||
|
jsonResponse.put("message", "등록되지 않은 API키 입니다.");
|
||||||
|
}
|
||||||
|
// JSON 반환 설정
|
||||||
|
response.setContentType("application/json; charset=UTF-8");
|
||||||
|
response.getWriter().write(jsonResponse.toJSONString());
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// 3. API Key 정상일 경우 PDF URL로 리디렉션 실행
|
||||||
|
String redirectUrl = "/ClipReport4/export/exportForPDF_Jusangdo.jsp?data=" + holeCode;
|
||||||
|
|
||||||
|
response.sendRedirect(redirectUrl);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -134,4 +134,7 @@ public interface GeoinfoApiV1Mapper {
|
||||||
public int spCntTblRockReptTriU(HashMap<String, Object> params) throws SQLException;
|
public int spCntTblRockReptTriU(HashMap<String, Object> params) throws SQLException;
|
||||||
public ArrayList<EgovMap> spGetTblRockReptTri(HashMap<String, Object> params) throws SQLException;
|
public ArrayList<EgovMap> spGetTblRockReptTri(HashMap<String, Object> params) throws SQLException;
|
||||||
public int spCntTblRockReptTri(HashMap<String, Object> params) throws SQLException;
|
public int spCntTblRockReptTri(HashMap<String, Object> params) throws SQLException;
|
||||||
|
|
||||||
|
// API Key 검증
|
||||||
|
public int spIsValidWebApiKeyId(HashMap<String, Object> params) throws SQLException;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -9,4 +9,5 @@ import org.json.simple.JSONObject;
|
||||||
|
|
||||||
public interface GeoinfoApiV1Service {
|
public interface GeoinfoApiV1Service {
|
||||||
int handleApiService(HttpServletRequest request, HashMap<String, Object> params, String spName, JSONObject jsonResponse) throws Exception;
|
int handleApiService(HttpServletRequest request, HashMap<String, Object> params, String spName, JSONObject jsonResponse) throws Exception;
|
||||||
|
int isValidWebApiKey(HashMap<String, Object> params) throws Exception;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -232,4 +232,9 @@ public class GeoinfoApiV1ServiceImpl implements GeoinfoApiV1Service {
|
||||||
// 성공 코드 반환
|
// 성공 코드 반환
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int isValidWebApiKey(HashMap<String, Object> params) throws Exception {
|
||||||
|
return geoinfoApiV1Mapper.spIsValidWebApiKeyId(params);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -750,4 +750,10 @@
|
||||||
) FROM DUAL
|
) FROM DUAL
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
|
<select id="spIsValidWebApiKeyId" parameterType="map" resultType="int">
|
||||||
|
<!-- 0:키없음, 1:정상, -1:미승인, -2:기간만료 -->
|
||||||
|
SELECT SP_IS_VALID_WEB_API_KEY_ID(
|
||||||
|
#{apiKey, jdbcType=VARCHAR}
|
||||||
|
) FROM DUAL
|
||||||
|
</select>
|
||||||
</mapper>
|
</mapper>
|
||||||
Loading…
Reference in New Issue