반응형
국가 API 활용 국적 가져오기 - RestTemplate 활용
공공데이터 포털
국가에서 보유하고 있는 다양한 데이터를『공공데이터의 제공 및 이용 활성화에 관한 법률(제11956호)』에 따라 개방하여 국민들이 보다 쉽고 용이하게 공유•활용할 수 있도록 공공데이터(Datase
www.data.go.kr
진행 순서
- 공공데이터 포털에서 사용할 국적 api 조회 후 신청
- 요청 주소와 서비스키를 이용하여 요청
- 응답된 JSON 데이터를 jsonschema2pojo를 사용해 데이터 파싱
- 공공데이터 포털의 요청변수와 출력 결과의 항목 구분을 보고 필요한 국적 데이터만 갖고 와서 출력
jsonschema2pojo 사용법
Json_Gson 다운로드, jsonschema2pojo 사용법
Gson은 구글에서 만든 json구조의 데이터를 JAVA의 객체로 만들어주기 위해 사용하는 자바 라이브러리입니다. Gson 다운로드아래 링크에 들어가 원하는 버전을 누릅니다. (저는 2.8.9 버전을 사용하였
spyair.tistory.com
NationDto
1 2 3 4 5 6 7 | @Generated("jsonschema2pojo") @Data @JsonNaming(value=PropertyNamingStrategies.SnakeCaseStrategy.class) public class NationDto { public Integer currentCount; public List } | cs |
Datum
1 2 3 4 5 6 7 8 9 10 | @Generated("jsonschema2pojo") @Data @JsonNaming(value=PropertyNamingStrategies.SnakeCaseStrategy.class) public class Datum { // public String countryEngNm; // public String countryIsoAlp2; public String countryNm; // public String isoAlp3; // public String isoNum; } | cs |
controller
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | @GetMapping("/nation") public String restTEmplate1(Model model) { URI uri = null; try { uri = new URI("http://apis.data.go.kr/1262000/CountryCodeService2/getCountryCodeList2?serviceKey=Cuo5MmMb2QEiC58RNfbyKZ3q7MF%2F5mvNSC%2FXcSI%2F9mkEK8Blx2zD5dULoP9UK0MaSi049JL%2BUmo7K%2FHXgEH9dQ%3D%3D&numOfRows=1000&pageNo=1"); } catch (URISyntaxException e) { e.pringStackTrace(); } RestTemplate restTemplate = new RestTemplate(); // RestTemplate에서 사용할 수 있는 대표적 메서드 확인 ! ResponseEntity<NationDto> response = restTemplate.getForEntity(uri, NationDto.class); ArrayList<String> countryNms = new ArrayList<>(); for(int i = 0; i < response.getBody().getData().size(); i++) { countryNms.add(response.getBody().getData().get(i).getCountryNm()); } model.addAtrribute("countryNms", countryNms); return "/반환할 페이지 주소"; } | cs |
→ 데이터베이스에 접근하지 않고 model로 바로 값을 내려줌.
→ 데이터베이스에 값을 넣고 싶다면 반복문에 insert 처리 후 select 하기
반응형
'프로그래밍 > Spring Boot 프로젝트' 카테고리의 다른 글
[Spring Boot 프로젝트] 스도쿠 게임 프로그래밍 - 2 (7) | 2024.11.17 |
---|---|
[Spring Boot 프로젝트] 스도쿠 게임 프로그래밍 - 1 (10) | 2024.11.08 |
항공사 플랫폼 팀 프로젝트_비밀번호 변경 기능(BCrypt 라이브러리 사용) (0) | 2023.07.16 |
항공사 플랫폼 팀 프로젝트_마이그레이션 후 쿼리문 수정 (0) | 2023.07.16 |
항공사 플랫폼 팀 프로젝트_페이지 다중 return (0) | 2023.07.16 |