開発環境について

今回は統合開発環境Eclipse(Version: 2023)を使用しています。 「Ultimate」か「Java」のFull Editionなら「Spring Tool Suite (STS)」が初めからインストールされていて、 人気のフレームワーク「Spring Boot」のプロジェクトが簡単に作成できるのでおススメです。 Eclispeを使ってみたい人はコチラの記事を参考にしてください。【はじめてのEclipseインストール】

※この記事は2023/07/22時点の情報です。

WEB APIとは
WEB API(Web Application Programming Interface)は、WebサーバーやWebアプリケーションと他のソフトウェアやサービスをつなぐためのインターフェースです。 主な目的は、異なるシステム間でデータのやり取りや機能の提供を行うことです。 以下にWEB APIの主な特徴と利点を分かりやすく説明します。

1.インターフェース
WEB APIは、異なるシステム間で通信するためのインターフェースです。これは、データの取得、送信、更新、削除などの操作を可能にします。

2.プロトコル
WEB APIは、一般的にHTTP(HyperText Transfer Protocol)を使用します。これにより、APIを呼び出すための標準的なメソッドやエンドポイントが定義されます。

3.データ形式
WEB APIでは、一般的にJSON(JavaScript Object Notation)やXML(eXtensible Markup Language)などのデータ形式が使用されます。これにより、データの表現と解釈が容易になります。

4.リクエストとレスポンス
クライアントがWEB APIを呼び出す際には、HTTPリクエストがサーバーに送信されます。サーバーはそのリクエストに対して適切なHTTPレスポンスを返します。

5.シンプルで拡張可能
WEB APIは一般的にシンプルで理解しやすい設計となっています。また、新しい機能やエンドポイントを追加することも比較的容易です。

6.クロスプラットフォーム
WEB APIはプラットフォームに依存せず、異なるプログラミング言語やアプリケーションからアクセスできるため、クロスプラットフォームの相互運用性が高いです。

新規プロジェクト作成
まずはEclipseで新規プロジェクトを作成します。「新規Springスターター・プロジェクトの作成」を選択すると Spring Bootのプロジェクトを簡単に作成することができます。

新規Springスターター・プロジェクトの作成

設定その1
プロジェクトの名前やJavaのバージョンなどを設定する画面が開くので任意で入力します。ここではそのまま次に進めます。 Spring Bootに関してはコチラを参考にしてみてください。【Spring Boot 3.1 入門】

新規Springスターター・プロジェクトの設定その1

設定その2
依存関係を追加できる画面が表示されます。今回はAPIを作成するので「Spring Web」にチェックをつけます。(デフォルトでチェックされています)
依存関係は後からでも追加・削除できますので今回はこのまま「完了」をクリックします。

新規Springスターター・プロジェクトの設定その2

準備完了
必要なファイルなどのインポートが完了するとSpring Bootのプロジェクトが自動的に作成されます。 これでフレームワークを使用してプログラムを作成できる環境の準備が完了しました。

新規Springスターター・プロジェクトの準備完了

リクエスト
APIに対してリクエストがあった際に受け取るパラメータを定義したクラスを作成します。 今回は「ApiRequest.java」という名前で作成しています。

package com.example.demo;

import lombok.Data;

@Data
public class ApiRequest {

	private String code;
}

レスポンス
リクエストに応じて返却する情報をセットするための器となるクラスを作成します。 今回は「ApiResponse.java」という名前で作成しています。

package com.example.demo;

import lombok.Data;

@Data
public class ApiResponse {

	private int id;
	private String name;
	private int age;
	private String field1;
	private String field2;
	private String field3;
}

コントローラー
メインとなるAPIのコントローラークラスを作成します。今回は「ApiController.java」という名前で作成しています。 Spring Bootの「@RestController」アノテーションは、SpringフレームワークでRESTfulなWebサービスを簡単に作成するために使用される特別なアノテーションです。 このアノテーションを使用することで、JavaクラスをREST APIのエンドポイントとして機能させることができます。 「@RestController」を付けたクラス内のメソッドには、HTTPリクエストを処理するためのさまざまなアノテーション(例:`@GetMapping`、`@PostMapping`、`@PutMapping`、`@DeleteMapping`など)を付けることができます。 これらのアノテーションにより、リクエストのHTTPメソッドに応じて適切なメソッドが自動的にマッピングされます。

今回は最低限の実装のため、リクエストで受け取ったパラメータはコンソールに出力しているだけです。 一般的には受け取ったパラメータを用いてデータベースなどからデータを取得してレスポンスを返しますが 今回はレスポンスの情報を簡易的に作成しています。

package com.example.demo;

import java.util.ArrayList;

import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RequestMapping("/api")
public class ApiController {

	@PostMapping("/sample")
	@ResponseBody
	public ResponseEntity> createResponse(@RequestBody ApiRequest request) {
		ArrayList response = new ArrayList();
		try {
			System.out.println("リクエストパラメータ:" + request.getCode());

			//レスポンスの情報を簡易的に作成
			ApiResponse data = null;
			for (int i = 0; i < 5; i++){
				data = new ApiResponse();
				data.setId(i);
				data.setName("テストユーザー" + (i + 1));
				data.setAge(20 + i);
				data.setField1("Test" + (i + 1) + "-1");
				data.setField2("Test" + (i + 1) + "-2");
				data.setField3("Test" + (i + 1) + "-3");
				response.add(data);
			}

			return ResponseEntity.ok(response);
		} catch(Exception e) {
			System.out.println("エラーが発生しました");
			return ResponseEntity.internalServerError().body(null);
		}

	}
}

コンテキストパスの設定
「src/main/resource」の下にあるapplication.propertiesを開き、下記の1行を追加します。 これを記述することで「http://localhost:8080/sampleApi」でサーバーにアクセスできるようになります。

server.servlet.context-path=/sampleApi

コンテキストパスの設定

動作確認してみましょう!「DemoApplication.java」を右クリックして表示されるメニューから「実行」→「Javaアプリケーション」をクリックします。

APIサーバーの起動

Spring Bootに内包されているTomcatが起動します。これで「http://localhost:8080/sampleApi/api/sample」でAPIにリクエストできる状態です。

APIサーバーの起動完了

今回は別に用意したプログラムからAPIにリクエストしてみました。正常にレスポンスがあったことを確認できました!

APIサーバー側のログ
APIサーバ-の動作確認
APIを呼び出したプログラムのログ
API呼び出し元の動作確認

今回は最低限の実装でしたが、思ったより簡単に実装できたのではないでしょうか? Spring Bootが便利なおかげで、様々なことが少ないコードで実現できてしまいます。是非勉強しておきましょう!

管理人情報