JSONPlaceholder APIの技術資料

JSONPlaceholder は、開発者向けのダミーAPIサービスです。このAPIは、サーバーとの通信をテストしたり、フロントエンド開発中にモックデータとして利用することを目的としています。実際のデータベースやバックエンドを準備せずに、APIのリクエストやレスポンスを使った機能開発が可能です。

この技術資料では、JSONPlaceholderの仕様やエンドポイントの使用方法についてまとめます。


エンドポイント一覧

JSONPlaceholderには、以下のエンドポイントがあります。それぞれのエンドポイントからは、GET、POST、PUT、PATCH、DELETEの操作を行うことができます。

エンドポイント説明リクエスト例
/posts投稿データ(ブログ記事など)https://jsonplaceholder.typicode.com/posts
/commentsコメントデータhttps://jsonplaceholder.typicode.com/comments
/albumsアルバムデータ(写真のグループなど)https://jsonplaceholder.typicode.com/albums
/photos写真データhttps://jsonplaceholder.typicode.com/photos
/todosTodoリストデータhttps://jsonplaceholder.typicode.com/todos
/usersユーザーデータhttps://jsonplaceholder.typicode.com/users

エンドポイントの詳細

1. /posts エンドポイント

このエンドポイントでは、ブログ記事や投稿のデータを扱います。

  • GET: 投稿一覧の取得
  • POST: 新しい投稿の作成
  • PUT: 投稿の完全な更新
  • PATCH: 投稿の一部更新
  • DELETE: 投稿の削除

GET リクエスト例:

GET https://jsonplaceholder.typicode.com/posts

レスポンス例:

{
  "userId": 1,
  "id": 1,
  "title": "sunt aut facere repellat provident occaecati excepturi optio reprehenderit",
  "body": "quia et suscipit\nsuscipit..."
}

2. /comments エンドポイント

コメントデータを扱うエンドポイントです。主にブログ投稿へのコメント機能のテストに使えます。

  • GET: コメント一覧の取得
  • POST: 新しいコメントの作成

GET リクエスト例:

GET https://jsonplaceholder.typicode.com/comments

レスポンス例:

{
  "postId": 1,
  "id": 1,
  "name": "id labore ex et quam laborum",
  "email": "Eliseo@gardner.biz",
  "body": "laudantium enim quasi est quidem magnam voluptate ipsam eos"
}

3. /albums エンドポイント

写真や画像グループを表現するアルバムデータを管理します。

  • GET: アルバム一覧の取得
  • POST: 新しいアルバムの作成

GET リクエスト例:

GET https://jsonplaceholder.typicode.com/albums

レスポンス例:

{
  "userId": 1,
  "id": 1,
  "title": "quidem molestiae enim"
}

4. /photos エンドポイント

写真データを扱います。URL付きの画像データを返します。

  • GET: 写真一覧の取得
  • POST: 新しい写真の作成

GET リクエスト例:

GET https://jsonplaceholder.typicode.com/photos

レスポンス例:

{
  "albumId": 1,
  "id": 1,
  "title": "accusamus beatae ad facilis cum similique qui sunt",
  "url": "https://via.placeholder.com/600/92c952",
  "thumbnailUrl": "https://via.placeholder.com/150/92c952"
}

5. /todos エンドポイント

やることリスト(Todo)データを提供するエンドポイントです。主にチェックリストや進捗管理のシミュレーションに役立ちます。

  • GET: Todoリストの取得
  • POST: 新しいTodoの作成
  • PUT: Todoの完全な更新
  • PATCH: Todoの一部更新
  • DELETE: Todoの削除

GET リクエスト例:

GET https://jsonplaceholder.typicode.com/todos/1

レスポンス例:

{
  "userId": 1,
  "id": 1,
  "title": "delectus aut autem",
  "completed": false
}

6. /users エンドポイント

ユーザー情報を扱います。名前や住所、連絡先といった基本的なユーザープロフィールデータを取得できます。

  • GET: ユーザー一覧の取得
  • POST: 新しいユーザーの作成

GET リクエスト例:

GET https://jsonplaceholder.typicode.com/users

レスポンス例:

{
  "id": 1,
  "name": "Leanne Graham",
  "username": "Bret",
  "email": "Sincere@april.biz",
  "address": {
    "street": "Kulas Light",
    "suite": "Apt. 556",
    "city": "Gwenborough",
    "zipcode": "92998-3874",
    "geo": {
      "lat": "-37.3159",
      "lng": "81.1496"
    }
  },
  "phone": "1-770-736-8031",
  "website": "hildegard.org",
  "company": {
    "name": "Romaguera-Crona",
    "catchPhrase": "Multi-layered client-server neural-net",
    "bs": "harness real-time e-markets"
  }
}

HTTPメソッドの対応

JSONPlaceholderは、以下のHTTPメソッドに対応しています。基本的なCRUD(作成、取得、更新、削除)の操作をテストすることが可能です。

  • GET: データの取得(例: 投稿一覧の取得)
  • POST: 新しいデータの作成(例: 新しい投稿の作成)
  • PUT: データの完全な更新(例: 投稿の全フィールドを上書き)
  • PATCH: データの部分更新(例: 投稿の一部フィールドだけを変更)
  • DELETE: データの削除(例: 投稿の削除)

利用制限と注意点

  • データの永続性はない: データの作成や更新(POST、PUT、PATCH)は擬似的に行われますが、実際のデータはサーバーに保存されません。サーバーのデータはリセットされることがあり、あくまで開発やテスト用途で使うべきです。
  • レスポンス時間: JSONPlaceholderは、実際のサーバーと同様にレスポンス時間を模倣しているため、実際の環境に近い条件でテストが可能です。

使用例

以下は、Unityでの非同期通信を使った例です。UnityWebRequestを使ってJSONPlaceholderからデータを取得し、UIに表示するコードを紹介します。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Networking;
using UnityEngine.UI;
using System.Threading.Tasks;

public class AsyncWebRequestExample : MonoBehaviour
{
    public Button fetchButton;  // データ取得用のボタン
    public Text resultText;     // 結果表示用のテキスト

    void Start()
    {
        fetchButton.onClick.AddListener(() => FetchDataFromServer());
    }

    private async void FetchDataFromServer()
    {
        string url = "https://jsonplaceholder.typicode.com/todos/1";

        resultText.text = "データ取得中...";
        Debug.Log("データ取得中...");

        UnityWebRequest request = UnityWebRequest.Get(url);

        await request.SendWebRequest();

        if (request.result != UnityWebRequest.Result.Success)
        {
            Debug.LogError("データ取得失敗: " + request.error);
            resultText.text = "データ取得失敗: " + request.error;
        }
        else
        {
            Debug.Log("データ取得成功: " + request.downloadHandler.text);
            resultText.text = "取得結果: " + request.downloadHandler.text;
        }
    }
}

終わりに

JSONPlaceholderは、テストや開発初期段階において、サーバー通信の学習や実装に非常に役立つツールです。この資料をもとに、APIとの連携やデータ取得処理を構築してみてください。


この資料では、JSONPlaceholder APIの基本的な使い方と仕様について詳しく解説しました。

Unity

Posted by hidepon