郵便番号検索APIとは
日本郵便が公開しているAPIです。
RESTを利用し、郵便番号を取得できます。
開発環境
今回は下記の環境で実行しています。
- IDE:Spring Tool Suite 3.8.4Release
- 言語:Java 1.8
- FW:Spring Boot 1.5.6
- テンプレートエンジン:Thymeleaf 2.1.5
今回の主役:Rest Template
- Spring Frameworkの機能です。
- REST APIを呼び出すメソッドを提供
- たった一行で呼べる!!
(HttpConnectionをOpenして、そこからBufferedWriterで書き出して、ResponseをBufferedReaderで読み込んで、みたいなこと要らない)
実装
Service Class
ZipCodeService.java
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Service;
import org.springframework.web.client.RestTemplate;
@Service
public class ZipCodeService {
@Autowired
@Qualifier("zipCodeSearchRestTemplate")
RestTemplate restTemplate;
/** 郵便番号検索API リクエストURL */
private static final String URL = "http://zipcloud.ibsnet.co.jp/api/search?zipcode={zipcode}";
public ZipCodeDto service(String zipcode) {
return restTemplate.getForObject(URL, ZipCodeDto.class, zipcode);
}
}
実際にAPIを叩いているのは、
restTemplate.getForObject
の部分です。
Dto
RestTemplateで叩いて取得したデータを、Javaオブジェクトで受け取ります。
ZipCodeDto.java
package com.taku.springboot;
import java.util.ArrayList;
import java.util.List;
public class ZipCodeDto {
/** ステータス */
int status;
/** メッセージ */
String message;
/** 郵便番号情報リスト */
List<ZipCodeDataDto> results = new ArrayList<>();