간단한 캡스톤 프로젝트 진행 중, 정리하여 공유할 내용 작성
0. 우선적으로 공공 데이터 포털에 회원가입 및 로그인
1. 오픈API 클릭 및 활용신청
2. 활용 신청 작성
대부분의 경우 요청 시 바로 승인된다.
3. 마이페이지
마이페이지를 클릭
하고, 아래로 드래그해서 신청 완료된 데이터를 선택한다.
4. 인증키 설정 및 URL 복사
2번 마이페이지에서 활용하고 싶은 데이터를 선택하면 아래의 인증 키가 나온다, 미리 메모장에 둘 다 복사한다.
이후, 인증키 설정 버튼을 누르면 아래와 같은 창이 뜨게되는데, 해당 칸에 아까 복사한 인증키를 복사한다.
나의 경우는 Query 방식을 사용하였기에 아래의 칸에 입력했다. 위에서 복사한 일반 인증키(Decoding) 을 사용하였더니 잘 작동하였다.
이후 아래와 같은 이미지를 클릭하고 아래의 버튼들을 순서대로 클릭해준다.
그러면 최종적으로
위와 같은 URL이 생성된다.
해당 URL을 복사하고 IntelliJ로 이동한다.
5. HTTP 테스트
아래와 같이 HTTP 파일을 만든다. 한글 패치가 아니라면 Http Request일 것으로 추정.
HTTP요청 파일을 생성하고 아래의 순서대로 진행한다.
1.GET 명령어 쓰기
2.한칸 space 이후 이전에 복사한 URL 붙여넣기
3.왼쪽 초록 세모 클릭
성공시 아래와 같은 창이 뜨게된다.
6. Java 코드에서 사용
public class MapController {
@GetMapping("/allow_info/basic")
public static String AllowURL(String URL) {
StringBuffer result = new StringBuffer();
try {
URL url = new URL(URL);
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 + "";
}
}
해당 코드를 복사한 뒤,
@SpringBootApplication
에서 실행한다.
나의 경우 로그를 찍어보기 위해서 아래와 같은 코드를 이용하였다.
package com.example.cap;
import com.example.cap.Map.MapController;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class Application {
static String key = "---!!!!!!아까 복사한 키 입력!!!!!---";
public static void main(String[] args) {
SpringApplication.run(CapApplication.class, args);
System.out.println("API 키: " + MapController.AllowURL(key));
}
}
성공시 위와 같이 로그가 찍히게 된다. 이제 해당 Json파일을 알아서 잘 파싱해서 사용하면 된다.