일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- 파이썬 기초
- 가상 환경
- 자바스크립트
- 자료형
- python easyocr 학습
- Anaconda
- Java
- easyocr 기존 모델
- react
- EasyOCR
- python multiprocessing
- 파이썬
- python 멀티프로세싱
- python 기초
- python 학습
- 설치
- python pool
- multiprocessing
- 리액트
- 기초
- 파이썬 멀티프로세싱
- 함수
- 기존 모델 학습
- 명령어
- 파이썬 학습 테스트
- javascript
- python
- 파이썬 pool
- conda
- easyocr 기존 모델 학습
- Today
- Total
귀찮아서가끔하는블로그
[JAVA] Spring boot API 호출 샘플 만들기 본문
Spring boot API 호출 샘플 만들기
이전 포스팅에 작성한 api를 호출하는 샘플을 만들어보려고한다.
이전 포스팅 https://y-unknow94.tistory.com/23
[python] flask를 이용한 python api 만들기
flask를 이용하여 python api 만들기 이전 포스팅에 이어 오늘은 flask를 이용하여 easyocr api를 만들어 보려고 한다. 이전포스팅 https://y-unknow94.tistory.com/22 [python] flask 사용해보기 1. flask란? 플..
y-unknow94.tistory.com
1. spring boot 생성
2. APIController 작성
@RestController
@RequestMapping(value = "/CONT")
public class ApiController {
@Value("${uploadFilePath}")
public String SAVE_PATH;
@Value("${pythonURL}")
public String pythonURL;
@Value("${debugMode}")
public boolean debugMode;
@PostMapping(value = "/upload")
@ResponseBody
public Map<String, String> imgUpload(@RequestParam("dataFile") MultipartFile file) {
Log.TraceLog("imgUpload IN");
//코드 실행 전에 시간 받아오기
long beforeTime = System.currentTimeMillis();
Map<String, String> resultMap = new HashMap<String, String>();
if (file.isEmpty()) {
Log.TraceLog("파일 없음");
}
String originName = file.getOriginalFilename();
// 이미지 폴더 경로
String path = SAVE_PATH;
try {
File newFile = new File(path);
// 저장할 위치의 디렉토리가 존지하지 않을 경우
if (!newFile.exists()) {
newFile.mkdirs();
}
byte[] fileData = file.getBytes();
OutputStream os = new FileOutputStream(path + "/" + originName);
os.write(fileData);
os.close();
} catch (IOException e) {
throw new RuntimeException("Fileupload error" + e);
}
JSONObject dbSrvJson = new JSONObject();
dbSrvJson.put("fileName", originName);
dbSrvJson.put("filePath", path + "/" + originName);
dbSrvJson.put("debug", debugMode);
JSONObject result = byPass(pythonURL, dbSrvJson, "POST");
Log.TraceLog("RESPONSE DATA : " + result);
long afterTime = System.currentTimeMillis(); // 코드 실행 후에 시간 받아오기
long secDiffTime = (afterTime - beforeTime); //두 시간에 차 계산
Log.TraceLog("실행 시간 : "+secDiffTime);
String time = Long.toString(secDiffTime);
resultMap.put("result", result.toString());
resultMap.put("time", time);
Log.TraceLog("imgUpload OUT");
return resultMap;
}
byPass는 이전 포스팅을 확인 하여 사용
이전 포스팅
https://y-unknow94.tistory.com/3?category=1278978
[JAVA] by pass 통신
/** * by pass 통신 * * @param url, data, option(GET/POST) * @return ResponseEntity 성공여부 */ public JSONObject byPass(String url, JSONObject jsonData, String option) { Log.TraceLog("**************..
y-unknow94.tistory.com
3. application.properties 작성
uploadFilePath=images/
pythonURL=http://127.0.0.1:5000/apiTest
debugMode=false
4. sample.html 작성
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<script>
function imgUpload(){
console.log('imgUpload');
const FileElement = document.querySelector('#fileInput');
console.log('FileElement : ', FileElement);
console.log(FileElement.files[0]);
var formData = new FormData();
formData.append("dataFile",FileElement.files[0]);
fetch('/CONT/upload', {
method: 'POST',
cache: 'no-cache',
body: formData
})
.then((response) => response.json())
.then((data) => {
var list = "";
for(var i=0; i<JSON.parse(data.result).data.txts.length; i++){
list += "<div><span>" + JSON.parse(data.result).data.txts[i] + "</div>";
}
document.getElementById("ocr_result_time").innerHTML = data.time;
document.getElementById("ocr_result").innerHTML = list;
});
}
</script>
<body>
<input id="fileInput" type="file" name="uploadfile" multiple="multiple" />
<button type="button" id="insert" onclick=imgUpload()>결과 확인</button>
<br/>
<br/>
<span style="font-size: 24px;">처리 시간 : </span><span id="ocr_result_time" style="font-size: 24px;"></span>
<br/>
<br/>
<span style="font-size: 24px;">처리 결과 : </span>
<div id="ocr_result"></div>
</body>
</html>
5. PageController 작성
@Controller
public class PageContoller implements ErrorController {
/**
* 메인 화면
* @return
*/
@GetMapping("/")
public String goMain() {
return "/sample.html";
}
}
6. 실행 및 api 호출 테스트
다음과 같이 정상적으로 동작하는 것을 확인할 수 있다.
'JAVA' 카테고리의 다른 글
[JAVA] 한글 -> 영어 변환 (0) | 2022.07.11 |
---|---|
[JAVA] request 데이터 파싱 (0) | 2022.05.10 |
[JAVA] by pass 통신 (0) | 2022.05.09 |
[JAVA] 스트링 타입 데이터를 json형식으로 파싱하는 메소드 (0) | 2022.05.09 |