雑な GET API をノーコードで生成する
概要
プロトタイプ開発時やハンズオン開催時に雑だけどそれっぽく動く 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 ファイルのダウンロードリンクでお願いします。
リンクをクリックすると JSON ファイルがダウンロードできました。いい感じのデータが生成されました!
※ My JSON Server のフリープランではエンドポイントあたり 30 アイテムが上限なので、ここでは 30 名のリストを作成しています。
GitHub リポジトリ作成〜アップロード
- GitHub リポジトリの作成(名前はなんでも OK)
- ダウンロードした JSON ファイル名を
db.json
としてリポジトリに push
上記手順を行ったリポジトリが以下です。
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=東京都
その他、色々できるので詳しくは公式ドキュメントを参照ください。
まとめ
My JSON Server は結構以前から存在したようですが、ChatGPT でデータ生成するといい感じのダミー API ができたかな〜と思います。「こんな良い方法もあるよ!」とかあればコメントください!
Discussion