Javaで「APIサーバーを作って、クライアントからJSONでアクセスできるようにしたい!」
そんなときに便利なのが、Spring Bootを使ったREST API構築です。
この記事では、初心者でも理解できるように、REST APIの基本と作り方を解説します。
この記事でわかること
- REST APIとは何か、どんなときに使うのか
- Java(Spring Boot)でREST APIを作る手順
- JSON形式でデータをやり取りするコード例
- PostmanなどでAPIをテストする方法
1. REST APIとは?図解でサクッと理解
REST API(レスト エーピーアイ)とは、HTTPを使ってデータの送受信を行う仕組みです。特にフロントエンド(JavaScriptなど)や外部サービスと連携する際によく使われます。
REST APIのイメージ
[クライアント]
↓ HTTPリクエスト (GET/POSTなど)
[Spring BootのAPIサーバー]
↓ JSONレスポンス
[クライアント]
2. 開発環境の準備
必要なツール
ツール | 推奨バージョン |
---|---|
Java | 17以上 |
Spring Boot | 3.x系 |
ビルドツール | Maven or Gradle |
IDE | IntelliJ IDEA, Eclipseなど |
Spring Bootプロジェクト作成(Spring Initializr)
https://start.spring.io/ にアクセスし、以下を選択
- Project: Maven
- Language: Java
- Dependencies
- Spring Web
- Spring Boot DevTools(任意)
3. REST APIの基本コード
以下のような簡単なAPIを作成します
@RestController
@RequestMapping("/api")
public class HelloController {
@GetMapping("/hello")
public Map<String, String> sayHello() {
Map<String, String> response = new HashMap<>();
response.put("message", "こんにちは、Spring Boot!");
return response;
}
}
@RestController
を使うことで、自動的にJSONでレスポンスが返されます。
4. JSONの受け取りと返却(POSTの例)
@RestController
@RequestMapping("/api")
public class UserController {
@PostMapping("/user")
public User registerUser(@RequestBody User user) {
// JSONで受け取ったUserオブジェクトをそのまま返す
return user;
}
}
User.java(データモデル)
public class User {
private String name;
private int age;
// getter/setter省略可(Lombokを使ってもOK)
}
@RequestBody
を使うと、クライアントから送られたJSONがJavaオブジェクトに自動変換されます。
5. 実行とAPIテスト(Postmanを使用)
Spring Bootアプリを実行後、以下のようにPostmanなどでテストできます。
GETリクエスト例
- URL:
http://localhost:8080/api/hello
- メソッド:
GET
- レスポンス例(JSON)
{
"message": "こんにちは、Spring Boot!"
}
POSTリクエスト例
- URL:
http://localhost:8080/api/user
- メソッド:
POST
- Body → JSON(raw)
{
"name": "田中太郎",
"age": 30
}
6. よくあるエラーと対処法
エラー内容 | 原因 | 解決策 |
---|---|---|
404 Not Found | パスが間違っている | @RequestMapping やURLを再確認 |
JSON変換に失敗 | Getter/Setterがない | getXxx() /setXxx() を定義 |
CORSエラー(フロント連携) | 外部サイトからのリクエスト | @CrossOrigin をコントローラに追加 |
まとめ:Spring Boot × REST APIの基礎
やりたいこと | キーワード |
---|---|
JSONでデータを返したい | @RestController |
JSONを受け取りたい | @RequestBody |
URLルーティングを設定したい | @GetMapping / @PostMapping |
Spring Bootなら、わずか数行でREST APIが構築できます。フロントエンドや他システムとの連携もスムーズです。
補足:本記事のサンプルプロジェクト構成(Maven)
cssコピーする編集するsrc/
└─ main/
├─ java/
│ └─ com.example.api/
│ ├─ HelloController.java
│ └─ UserController.java
└─ resources/
└─ application.properties