Open WonYong-Jang opened 6 years ago
@Getter public class AddressDto {
@JsonProperty("meta")
private Meta meta;
@JsonProperty("documents")
private List<Document> documents;
}
@Getter public class Document { @JsonProperty("address_name") private String address_name; @JsonProperty("y") private double y; @JsonProperty("x") private double x; }
@Getter public class Meta { @JsonProperty("total_count") private int total_count; @JsonProperty("pageable_count") private Integer pageable_count; @JsonProperty("is_end") private boolean is_end; }
@RestController public class KaKaoController {
private String kakao_apikey = "";
private static final String NEWLINE = System.lineSeparator();
@GetMapping("/search")
public String search() {
try (
BufferedReader reader = new BufferedReader(
new FileReader("test.txt"));
BufferedWriter bw = new BufferedWriter(
new FileWriter("output.csv"));
) {
String str;
while ((str = reader.readLine()) != null) {
System.out.println(str);
AddressDto addressDto = searchKakaoApi(str);
bw.write("주소,위도,경도");
bw.write(NEWLINE);
Meta meta = addressDto.getMeta();
String result = "";
int resultCnt = meta.getTotal_count();
if(resultCnt > 0) {
result += addressDto.getDocuments().get(0).getAddress_name()+",";
result += addressDto.getDocuments().get(0).getY()+",";
result += addressDto.getDocuments().get(0).getX()+",";
result += "-,";
result += resultCnt;
} else {
result += "-,-,-,-,0";
}
bw.write(result);
bw.write(NEWLINE);
}
} catch (Exception e) {
e.printStackTrace();
}
return "success";
}
private AddressDto searchKakaoApi(String address) {
final HttpHeaders headers = new HttpHeaders();
headers.set("Authorization", "KakaoAK " + kakao_apikey);
//headers.setContentType(MediaType.APPLICATION_JSON);
RestTemplate restTemplate = new RestTemplate();
String apiURL = "https://dapi.kakao.com/v2/local/search/address.json?" +
"query=" + "서울특별시 서초구 반포대로23길 6";
final HttpEntity<String> entity = new HttpEntity<>(headers);
ResponseEntity<AddressDto> result = restTemplate.exchange(apiURL, HttpMethod.GET, entity, AddressDto.class);
return result.getBody();
}
}
# final
# static