モックサーバー作成手順
こちらを参照
外部API呼び出しもと
@Service
public class CompanyService {
private final HttpClient client = HttpClient.newHttpClient();
private final ObjectMapper objectMapper;
public CompanyService() {
this.objectMapper = new ObjectMapper()
// ↓ JSONに、Javaクラスに存在しないフィールドがあってもエラーにしない
.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
}
/**
* 外部API呼び出し
*/
public CompanyReference dummyAPI() {
// リクエスト設定
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create(GET_EXTERNAL_URI))
.header("Accept", "application/json")
.build();
try {
// レスポンス.bodyを文字列形式で受け取る
HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
// CompanyReferenceクラスにデシリアライズする
return objectMapper.readValue(response.body(), CompanyReference.class);
} catch (IOException | InterruptedException e) {
throw new RuntimeException("Failed to call dummy API", e);
}
}
}