5
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Web APIとは?REST APIの基礎と実装例

Last updated at Posted at 2024-10-02

■ はじめに


Web APIは、異なるシステム間でデータをやり取りするためのインターフェースです。 特にREST API(Representational State Transfer API)は、拡張性の高さから幅広く利用されています。 この記事ではAPIのとはなにかやREST APIの仕組み、実際に簡単なAPIの作成と利用方法を解説します。

■ 目次


1. [APIとは?](#1-apiとは) 2. [REST APIの基本](#2-rest-apiの基本) 3. [REST APIのHTTPメソッド](#3-rest-apiのhttpメソッド) 4. [Spring Bootを使用したREST APIの作成例](#4-spring-bootを使用したrest-apiの作成例) 5. [まとめ](#5-まとめ)

1. APIとは


#### APIの定義 APIは **Application Programming Interface** の略で、ソフトウェア同士がやり取りをするためのインターフェースを意味します。 このAPIを利用することで、異なるシステムやアプリケーション間で情報を簡単に連携することが可能です。

APIの利用例

  • Google Maps API を使って地図情報を表示
  • Twitter API (※無料プランは2023年2月に廃止) でツイートを自動投稿
  • OpenWeather API で天気情報を取得

2. REST APIの基本


RESTの基本

RESTは、Representational State Transfer の略で、シンプルな設計に基づいてWebサービスを構築するアーキテクチャスタイルです。

REST APIには、以下のような特徴があります。

  • ステートレス: サーバーはクライアントの状態を保存しない。(リクエストごとに独立)
  • リソース指向: 各APIエンドポイントは、特定のリソース(例:ユーザー、商品)に対応。
  • HTTPメソッド: GET、POST、PUT、DELETEといったHTTPメソッドを使用。

3. REST APIのHTTPメソッド


REST APIでは、以下のようなHTTPメソッドを使ってリソースに対する操作を行います。
メソッド 説明  例
GET リソースの取得 ユーザーID 1を取得 (GET)
POST 新しいリソースの作成 ユーザーを作成 (CREATE)
PUT リソースの更新 ユーザーID 1を更新 (UPDATE)
DELETE リソースの削除 ユーザーID 1を削除 (DELETE)

HTTPメソッドには上記以外にもPATCHなどもある。

4. Spring Bootを使用したREST APIの作成例


環境セットアップ

Java Development Kit (JDK) をインストール(JDK 17を推奨)
Maven をインストール(Mavenは依存関係管理に使用)

プロジェクトの作成

次に、Spring Initializr を使ってプロジェクトを作成します。
手順は以下の通りです。
Spring Initializr にアクセスします。

プロジェクトの設定

プロジェクトの設定 設定
Project Maven Project
Language Java
Spring Boot 最新のバージョンを選択
Project Metadata Group: com.example
Artifact: demo
Dependencies Spring Web

「Generate」をクリックしてプロジェクトをダウンロードします。
ダウンロードしたZIPファイルを解凍し、任意のIDE(例:Eclipse)で開きます。

コードの追加

例としてプロジェクト内のsrc/main/java/com/example/demoに移動し、
UserController.javaという新しいファイルを作成し、以下のコードを追加します。

package com.example.demo;

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.Arrays;
import java.util.List;

@RestController
public class UserController {

    // ユーザーのリストを返すメソッド
    @GetMapping("/users")
    public List<User> getUsers() {
        return Arrays.asList(
            new User(1, "Test Taro"),
            new User(2, "Test Hanako")
        );
    }
}

// ユーザークラス
class User {
    private int id;
    private String name;

    public User(int id, String name) {
        this.id = id;
        this.name = name;
    }

    // idを取得
    public int getId() {
        return id;
    }

    // nameを取得
    public String getName() {
        return name;
    }
}

アプリケーションの起動

メインメソッドのあるDemoApplication.javaを実行することで、アプリケーションが起動します。

package com.example.demo;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class DemoApplication {
    public static void main(String[] args) {
        SpringApplication.run(DemoApplication.class, args);
    }
}

APIを実行する

アプリケーションを起動したらブラウザまたはPostmanを使って
http://localhost:8080/users にアクセスします。
アクセスが成功すると次のようなJSONデータが返ってくるはずです。

[
    {"id": 1, "name": "Test Taro"},
    {"id": 2, "name": "Test Hanako"}
]

5. まとめ


本記事ではSpring Bootを使ってAPIを作成し、リクエストを送信するところまで作成しました。 Spring Bootは柔軟なフレームワークであり扱いやすいため、ぜひ試してみてください。
5
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?