🐈

雑な GET API をノーコードで生成する

2023/12/15に公開

概要

プロトタイプ開発時やハンズオン開催時に雑だけどそれっぽく動く GET API が欲しかったので、備忘録として記事にしておきます。この方法ではページネーションや検索、ソートにも対応しています。

CureApp アドベントカレンダー 2023 の 15 日目の記事です。

利用した技術

My JSON Server

My JSON Server は JSON Server のプロジェクトの1つで、 GitHub リポジトリに JSON ファイルを置くだけでそれっぽい API の挙動をしてくれるものです。

ChatGPT

ChatGPT でそれっぽい一覧データを作ってもらいます。以前自分はダミーデータを作る時に dummy user 003 みたいな値を入れてたりしましたが、テンションが上がらないのでそれっぽいデータを ChatGPT に作ってもらいます。

作成手順

ChatGPT を使ってダミーデータの作成

ChatGPT (GPT4) で以下のメッセージを送信しました。

REST API のサンプルデータを作りたいので JSON 形式で 30 名のユーザーリストを作成してください。
ユーザーリストは users キーに挿入してください。

また、フィールドは以下として nickname と prefecture は日本語でお願いします。
- id: string(UUID 形式)
- nickname: string
- age: number
- sex: string
- prefecture: string(都道府県)

アウトプットは JSON ファイルのダウンロードリンクでお願いします。

ChatGPT にダミーデータ作成リクエスト

リンクをクリックすると JSON ファイルがダウンロードできました。いい感じのデータが生成されました!

ChatGPT で生成された JSON データ

※ My JSON Server のフリープランではエンドポイントあたり 30 アイテムが上限なので、ここでは 30 名のリストを作成しています。

My JSON Server Plans
https://my-json-server.typicode.com/pricing

GitHub リポジトリ作成〜アップロード

  1. GitHub リポジトリの作成(名前はなんでも OK)
  2. ダウンロードした JSON ファイル名を db.json としてリポジトリに push

上記手順を行ったリポジトリが以下です。
https://github.com/tanabee/dummy-api

API を叩いてみる

以下の URL 形式に対してリクエストできます。 user, repo, json-key は適切な値に置き換えてください。
https://my-json-server.typicode.com/[user]/[repo]/[json-key]

今回作成したサンプルだと以下の URL となります。

一覧取得

https://my-json-server.typicode.com/tanabee/dummy-api/users

単体取得

id フィールドが 8066726c-8ec7-427b-8ecd-ae200aedb56d の値を取得
https://my-json-server.typicode.com/tanabee/dummy-api/users/8066726c-8ec7-427b-8ecd-ae200aedb56d

件数指定

_limit で 10 件に指定
https://my-json-server.typicode.com/tanabee/dummy-api/users?_limit=10

ページ指定

_page で 2 ページ目を取得
https://my-json-server.typicode.com/tanabee/dummy-api/users?_limit=10&_page=2

ソート

_sort_order で age ソート
https://my-json-server.typicode.com/tanabee/dummy-api/users?_sort=age&_order=asc

比較演算子

*_gte, *_lte で 20〜30 歳の範囲で取得
https://my-json-server.typicode.com/tanabee/dummy-api/users?age_gte=20&age_lte=30

検索

q で東京都に絞り込み
https://my-json-server.typicode.com/tanabee/dummy-api/users?q=東京都

その他、色々できるので詳しくは公式ドキュメントを参照ください。
https://github.com/typicode/json-server

まとめ

My JSON Server は結構以前から存在したようですが、ChatGPT でデータ生成するといい感じのダミー API ができたかな〜と思います。「こんな良い方法もあるよ!」とかあればコメントください!

CureApp テックブログ

Discussion