일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
Tags
- React
- Project
- spring boot
- 취준생
- gradle
- 프로젝트
- javascript
- IntelliJ
- 코딩테스트
- Controller
- SpringBoot
- 스프링
- jdk11
- 자취
- coding test
- 입출력
- AWS
- 디자인패턴
- spring
- MVC
- ps
- Java
- JPA
- 코테
- MariaDB
- 팀프로젝트
- 자바
- JDK
- 공유DB
- 백준
Archives
- Today
- Total
Tech Collection
[Api 활용] Open Api 의 자료를 json으로 가져오기 본문
728x90
반응형
먼저 어떤 공공 API를 쓸 것인지 확인합니다.
https://www.data.go.kr/index.do
로그인 후 API를 선택하고 활용신청 클릭
활용신청 후 일반 인증키 에 나와있는 항목이 서비스키 입니다.
참고문서를 다운받아 실행 후
REST(URI)를 가지고 와서 활용할 예정입니다.
프로젝트로 와서 Controller를 하나 만들어 줍니다.
@RestController
@RequestMapping("/api")
public class ApiController {
@GetMapping("/allow_info/basic")
public String allowBasic() {
StringBuffer result = new StringBuffer();
try {
StringBuilder urlBuilder = new StringBuilder("http://apis.data.go.kr/1471057/MdcinPrductPrmisnInfoService1/getMdcinPrductList"); /*URL*/
urlBuilder.append("?" + URLEncoder.encode("ServiceKey", "UTF-8") + "=발급받은 서비스키"); /*Service Key*/
urlBuilder.append("&" + URLEncoder.encode("pageNo", "UTF-8") + "=" + URLEncoder.encode("1", "UTF-8")); /*페이지 번호*/
urlBuilder.append("&" + URLEncoder.encode("numOfRows", "UTF-8") + "=" + URLEncoder.encode("10", "UTF-8")); /*한 페이지 결과수*/
urlBuilder.append("&type=json"); /*결과 json 포맷*/
URL url = new URL(urlBuilder.toString());
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("GET");
BufferedReader rd;
if (conn.getResponseCode() >= 200 && conn.getResponseCode() <= 300) {
rd = new BufferedReader(new InputStreamReader(conn.getInputStream(), "UTF-8"));
} else {
rd = new BufferedReader(new InputStreamReader(conn.getErrorStream()));
}
String line;
while ((line = rd.readLine()) != null) {
result.append(line + "\n");
}
rd.close();
conn.disconnect();
} catch (Exception e) {
e.printStackTrace();
}
return result + "";
}
}
입력 후 실행하면 localhost:8080/api/allow_info/basic 의 경로에서 json 데이터가 출력됩니다.
728x90
반응형
'Build > Note' 카테고리의 다른 글
[Thymeleaf] Gradle에 적용하기 (0) | 2021.02.18 |
---|---|
[Spring Structure] @Controller? @RestController? (0) | 2021.01.19 |
[Setting] MariaDB와 SpringBoot를 연동하자! (0) | 2021.01.11 |
[Setting] Spring Boot 생성 (0) | 2021.01.09 |
[Login] Google Login API - JavaScript, JSP (0) | 2020.12.24 |