JavaでAPIを呼び出す方法:初心者向けガイド

Java

API(Application Programming Interface)は、外部サービスやデータをプログラムから利用するためのインターフェースです。例えば、天気情報や為替レートを取得するAPIをJavaで呼び出すことで、データをアプリケーションに組み込むことができます。

この記事では、JavaでAPIを呼び出す基本的な方法を初心者向けにわかりやすく解説します。


1. APIとは何か?

APIは、他のアプリケーションやサービスと通信するための仕組みです。API呼び出しは通常、以下の形式で行います:

  • HTTPメソッド(GET, POST, PUT, DELETE など)
  • URL(APIエンドポイント)
  • リクエストヘッダーやボディ(必要に応じてデータを送信)

2. JavaでAPIを呼び出す準備

JavaでAPIを呼び出すには、以下の準備が必要です。

(1) HTTPクライアントを選ぶ

  • HttpURLConnection(標準ライブラリ)
  • Apache HttpClient(高度な機能を持つ外部ライブラリ)
  • OkHttp(軽量で使いやすい)

今回は初心者向けに、標準の HttpURLConnection を使った方法を中心に解説します。


3. APIを呼び出す基本的な流れ

(1) GETリクエストを送信してデータを取得

以下は、HttpURLConnectionを使ったシンプルなGETリクエストの例です。

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;

public class ApiCallExample {
public static void main(String[] args) {
String apiUrl = "https://api.example.com/data"; // APIのURL

try {
// URLオブジェクトを作成
URL url = new URL(apiUrl);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();

// HTTPメソッドを設定
conn.setRequestMethod("GET");

// レスポンスコードを確認
int responseCode = conn.getResponseCode();
if (responseCode == HttpURLConnection.HTTP_OK) {
// レスポンスを読み取る
BufferedReader reader = new BufferedReader(new InputStreamReader(conn.getInputStream()));
StringBuilder response = new StringBuilder();
String line;
while ((line = reader.readLine()) != null) {
response.append(line);
}
reader.close();

// レスポンスの内容を表示
System.out.println("APIレスポンス: " + response.toString());
} else {
System.out.println("エラー: HTTPコード " + responseCode);
}

} catch (Exception e) {
e.printStackTrace();
}
}
}

(2) POSTリクエストを送信してデータを送る

POSTリクエストでは、リクエストボディにデータを送信します。

例: POSTリクエストの送信

import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.URL;

public class ApiPostExample {
public static void main(String[] args) {
String apiUrl = "https://api.example.com/post";
String jsonInput = "{ \"name\": \"山田太郎\", \"email\": \"taro@example.com\" }";

try {
// URLオブジェクトを作成
URL url = new URL(apiUrl);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();

// HTTPメソッドとヘッダーを設定
conn.setRequestMethod("POST");
conn.setRequestProperty("Content-Type", "application/json");
conn.setDoOutput(true);

// リクエストボディを送信
try (OutputStream os = conn.getOutputStream()) {
byte[] input = jsonInput.getBytes("utf-8");
os.write(input, 0, input.length);
}

// レスポンスコードを確認
int responseCode = conn.getResponseCode();
System.out.println("HTTPコード: " + responseCode);

} catch (Exception e) {
e.printStackTrace();
}
}
}

4. より簡単にAPIを扱うためのライブラリ

標準ライブラリだけでなく、以下のようなライブラリを使うと、API呼び出しがさらに簡単になります。

(1) OkHttp

OkHttpは軽量で使いやすいHTTPクライアントライブラリです。

Maven依存関係

<dependency>
<groupId>com.squareup.okhttp3</groupId>
<artifactId>okhttp</artifactId>
<version>4.9.3</version>
</dependency>

例: GETリクエスト

import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;

public class OkHttpExample {
public static void main(String[] args) {
OkHttpClient client = new OkHttpClient();
String apiUrl = "https://api.example.com/data";

Request request = new Request.Builder()
.url(apiUrl)
.build();

try (Response response = client.newCall(request).execute()) {
if (response.isSuccessful()) {
System.out.println("APIレスポンス: " + response.body().string());
} else {
System.out.println("エラー: HTTPコード " + response.code());
}
} catch (Exception e) {
e.printStackTrace();
}
}
}

5. APIレスポンスの解析

APIから返されるデータは多くの場合、JSON形式です。JacksonGsonを使ってデータを解析します。

例: JacksonでJSONを解析

import com.fasterxml.jackson.databind.ObjectMapper;

String jsonResponse = "{ \"name\": \"山田太郎\", \"email\": \"taro@example.com\" }";
ObjectMapper mapper = new ObjectMapper();
Person person = mapper.readValue(jsonResponse, Person.class);

System.out.println("名前: " + person.getName());

6. 学習を深めるためのおすすめリソース


まとめ

JavaでAPIを呼び出す基本をマスターすれば、外部サービスと連携したアプリケーションを開発できるようになります。まずはGETやPOSTリクエストから始め、慣れてきたらライブラリやJSON解析を活用してみましょう。

次のステップとして、セキュリティやトークン認証(OAuthなど)についても学ぶと、さらに実用的なAPI呼び出しができるようになります!

コメント

タイトルとURLをコピーしました