API Zoo — HTTPとメディアのテスト用API

入出力形式、ストリーム、リアルタイム、状態、認証、別API方式、メディア生成を実際に確認できるAPI実験室です。Phase 1〜6、全94シナリオ。ベースURL: https://apis-cloud.net

JSONデータを返す通常のAPIは API一覧 にあります。

分類エンドポイントStatusContent-Type
structured GET/HEAD /lab/response/json-objectPhase 1 · JSONオブジェクト — 標準的なJSONオブジェクト。 200 application/json
structured GET/HEAD /lab/response/json-arrayPhase 1 · JSON配列 — トップレベルが配列のJSON。 200 application/json
structured GET/HEAD /lab/response/geojsonPhase 1 · GeoJSON — FeatureCollection形式の地理データ。 200 application/geo+json
structured GET/HEAD /lab/response/problemPhase 1 · Problem Details — RFC 9457形式のエラー本文。 400 application/problem+json
text GET/HEAD /lab/response/textPhase 1 · プレーンテキスト — UTF-8のtext/plain。 200 text/plain
text GET/HEAD /lab/response/htmlPhase 1 · HTML — ブラウザでそのまま表示できるHTML。 200 text/html
text GET/HEAD /lab/response/markdownPhase 1 · Markdown — text/markdown形式の文書。 200 text/markdown
text GET/HEAD /lab/response/csvPhase 1 · CSV — BOM付きUTF-8のカンマ区切りデータ。 200 text/csv
text GET/HEAD /lab/response/tsvPhase 1 · TSV — タブ区切りデータ。 200 text/tab-separated-values
text GET/HEAD /lab/response/xmlPhase 1 · XML — application/xml形式の文書。 200 application/xml
text GET/HEAD /lab/response/yamlPhase 1 · YAML — application/yaml形式の文書。 200 application/yaml
text GET/HEAD /lab/response/calendarPhase 1 · iCalendar — カレンダーへ取り込めるICS。 200 text/calendar
text GET/HEAD /lab/response/contactPhase 1 · vCard — 連絡先へ取り込めるVCF。 200 text/vcard
media GET/HEAD /lab/media/image.pngPhase 1 · PNG画像 — 最小のPNGバイナリ。 200 image/png
media GET/HEAD /lab/media/badge.svgPhase 1 · SVG画像 — ベクター形式の動的バッジ。 200 image/svg+xml
media GET/HEAD /lab/media/tone.wavPhase 1 · WAV音声 — 指定周波数のPCMサイン波。 200 audio/wav
binary GET/HEAD /lab/file/sample.pdfPhase 1 · PDF — 動的に構築した1ページPDF。 200 application/pdf
binary GET/HEAD /lab/file/sample.zipPhase 1 · ZIP — hello.txtを含む無圧縮ZIP。 200 application/zip
binary GET/HEAD /lab/file/bytes.binPhase 1 · 任意バイナリ — 0x00〜0xFFを返すoctet-stream。 200 application/octet-stream
binary GET/HEAD /lab/file/inlinePhase 1 · インラインファイル — Content-Disposition: inlineのテキストファイル。 200 text/plain
binary GET/HEAD /lab/file/attachmentPhase 1 · 添付ファイル — Content-Disposition: attachmentのダウンロード。 200 text/plain
http GET/HEAD /lab/http/no-contentPhase 1 · 本文なし — 204 No Content。 204
http GET/HEAD /lab/http/redirectPhase 1 · リダイレクト — JSONレスポンスへ302で移動。 302
http GET/HEAD /lab/http/cachePhase 1 · 条件付きGET — 強いETagとIf-None-Matchによる304。 200 application/json
http GET/HEAD /lab/http/negotiatePhase 1 · コンテンツネゴシエーション — Acceptに応じてJSON・CSV・XMLを返す。 200 application/json text/csv application/xml
http POST /lab/request/jsonPhase 2 · JSON入力 — POSTされたJSONを型情報付きで返す。 200 application/json
http POST /lab/request/formPhase 2 · フォーム入力 — application/x-www-form-urlencodedと重複キーを解析する。 200 application/json
http POST /lab/request/multipartPhase 2 · Multipart入力 — フィールドと複数ファイルのメタデータを返す。本文上限は1 MiB。 200 application/json
http POST /lab/request/textPhase 2 · テキスト入力 — text/plain本文をエコーする。 200 application/json
http POST /lab/request/binaryPhase 2 · バイナリ入力 — application/octet-streamのサイズとSHA-256を返す。 200 application/json
http PUT /lab/request/resource/:idPhase 2 · PUT — 指定IDのリソースを置き換えた体で201を返す。 201 application/json
http PATCH /lab/request/resource/:idPhase 2 · PATCH — JSON Merge Patchを受け取る。 200 application/json
http DELETE /lab/request/resource/:idPhase 2 · DELETE — 削除成功を204で返す。 204
http OPTIONS /lab/request/optionsPhase 2 · OPTIONS — CORS preflightとしてAccess-Control-Allow-Methods等を返す。 204
http GET/HEAD /lab/http/rangePhase 2 · Rangeリクエスト — 単一bytes Rangeに206、範囲外に416を返す。 200 application/octet-stream
http GET/HEAD /lab/http/cookiesPhase 2 · 複数Cookie — 複数のSet-Cookie属性を返す。 200 application/json
http GET/HEAD /lab/http/cursorPhase 2 · Cursorページング — opaque cursorとLinkヘッダーで次ページを示す。 200 application/json
http POST /lab/http/batchPhase 2 · Batch / Multi-Status — 複数操作をまとめ、個別結果を207で返す。 207 application/json
http PUT /lab/http/if-matchPhase 2 · If-Match — "v1"なら更新、違えば412を返す固定例。 200 application/json application/problem+json
http GET /lab/stream/ndjsonPhase 3 · NDJSONストリーム — 1行1JSONをReadableStreamで順次返す。 200 application/x-ndjson
http GET /lab/stream/ssePhase 3 · Server-Sent Events — id・event・retry・dataを含むSSEイベント列。 200 text/event-stream
http GET /lab/stream/chunksPhase 3 · Chunkedテキスト — Content-Lengthなしで複数チャンクを返す。 200 text/plain
http GET /lab/stream/multipartPhase 3 · Multipartストリーム — JSONとテキストをmultipart/mixedで順次返す。 200 multipart/mixed
http GET /lab/realtime/websocket/:roomPhase 3 · WebSocketルーム — Durable ObjectsハイバネーションAPIによるルーム内broadcast。 101
http GET/HEAD /lab/realtime/rooms/:roomPhase 3 · WebSocketルーム統計 — ルームの接続数と累積メッセージ数をRPCで取得する。 200 application/json
http POST /lab/async/jobsPhase 4 · 非同期ジョブ作成 — 202 + Locationでジョブを作成し、Durable Object Alarmで完了させる。 202 application/json
http GET/HEAD /lab/async/jobs/:idPhase 4 · 非同期ジョブ状態 — Locationで示されたジョブの状態と結果を取得する。 200 application/json application/problem+json
http DELETE /lab/async/jobs/:idPhase 4 · 非同期ジョブ取消 — 進行中ジョブをキャンセルする。 200 application/json application/problem+json
http POST /lab/state/idempotencyPhase 4 · Idempotency-Key — 同じキーと本文なら同じ結果、本文が違えば409を返す。 201 application/json application/problem+json
http GET /lab/state/rate-limitPhase 4 · Rate Limit — クライアント単位で3回/分、超過時429を返す。 200 application/json application/problem+json
http GET/HEAD /lab/state/resource/:idPhase 4 · 楽観ロック取得 — 現在値とversion ETagを返す。 200 application/json
http PUT /lab/state/resource/:idPhase 4 · 楽観ロック更新 — If-Matchが現在versionなら更新し、競合時412を返す。 200 application/json application/problem+json
http GET /lab/auth/bearerPhase 4 · Bearer認証 — デモ用認証情報を使う認証パターン。実サービス用の秘密ではない。 200 application/json application/problem+json
http GET /lab/auth/api-keyPhase 4 · API Key認証 — デモ用認証情報を使う認証パターン。実サービス用の秘密ではない。 200 application/json application/problem+json
http GET /lab/auth/basicPhase 4 · Basic認証 — デモ用認証情報を使う認証パターン。実サービス用の秘密ではない。 200 application/json application/problem+json
http GET /lab/auth/cookiePhase 4 · Cookieセッション — デモ用認証情報を使う認証パターン。実サービス用の秘密ではない。 200 application/json application/problem+json
http POST /lab/auth/hmac/signPhase 4 · HMAC署名生成 — デモ用共有鍵で本文のSHA-256 HMACを生成する。 200 application/json
http POST /lab/auth/hmac/verifyPhase 4 · HMAC署名検証 — x-signatureのHMAC-SHA256を定時間検証する。 200 application/json application/problem+json
http POST /lab/webhook/receiverPhase 4 · Webhook receiver — 外部送信せず、安全にイベント受信・署名有無を確認する。 202 application/json
http POST /lab/protocol/json-rpcPhase 5 · JSON-RPC 2.0 — echo・sum・subtractをJSON-RPC 2.0で呼び出す。 200 application/json
http POST /lab/protocol/graphqlPhase 5 · GraphQL — hello・time・echoフィールドを扱う小さなGraphQL endpoint。 200 application/graphql-response+json
http POST /lab/protocol/soapPhase 5 · SOAP — SOAP 1.2のAddリクエストをXML envelopeで返す。 200 application/soap+xml
http GET/HEAD /lab/protocol/json-apiPhase 5 · JSON:API — application/vnd.api+json形式のresource document。 200 application/vnd.api+json
http GET/HEAD /lab/protocol/halPhase 5 · HAL — _linksと_embeddedを持つHAL JSON。 200 application/hal+json
http GET/HEAD /lab/protocol/json-ldPhase 5 · JSON-LD — schema.org contextを持つlinked data。 200 application/ld+json
http PATCH /lab/protocol/json-patchPhase 5 · JSON Patch — RFC 6902形式の操作配列を検証して返す。 200 application/json
http GET/HEAD /lab/binary/protobufPhase 5 · Protocol Buffers — message Sample { string message=1; uint32 value=2; } のwire形式。 200 application/x-protobuf
http GET/HEAD /lab/binary/cborPhase 5 · CBOR — {message: hello, value: 42}のCBOR map。 200 application/cbor
http GET/HEAD /lab/binary/messagepackPhase 5 · MessagePack — {message: hello, value: 42}のMessagePack map。 200 application/msgpack
http GET/HEAD /lab/binary/module.wasmPhase 5 · WebAssembly — 有効な空のWebAssembly module。 200 application/wasm
http GET/HEAD /lab/encoding/utf16Phase 5 · UTF-16LE — BOM付きUTF-16LEテキスト。 200 text/plain
http GET/HEAD /lab/encoding/shift-jisPhase 5 · Shift_JIS — Shift_JISで符号化した「こんにちは」。 200 text/plain
http GET /lab/encoding/gzipPhase 5 · gzip Content-Encoding — gzip済み本文をencodeBody=manualで返す。 200 text/plain
http GET/HEAD /lab/feed/rssPhase 5 · RSS 2.0 — application/rss+xml形式のfeed。 200 application/rss+xml
http GET/HEAD /lab/feed/atomPhase 5 · Atom — application/atom+xml形式のfeed。 200 application/atom+xml
http GET/HEAD /lab/http/application-httpPhase 5 · application/http — HTTPレスポンスを本文内に埋め込むbatch表現。 200 application/http
http GET/HEAD /lab/http/multi-rangePhase 5 · Multipart Byte Ranges — 複数byte範囲をmultipart/byterangesで返す。 206 multipart/byteranges
http POST /lab/http/preferPhase 5 · Preferヘッダー — return=minimalなら204、respond-asyncなら202を返す。 200 application/json
http GET/HEAD /lab/http/status/:codePhase 5 · 特殊Status Code — 許可されたHTTP statusを意図的に返す。 418 application/json
media GET/HEAD /lab/media/identicon.svgPhase 6 · アイデンティコン — 文字列から決まる5x5の左右対称なアイコン。同じ?seed=なら常に同じ絵になる。 200 image/svg+xml
media GET/HEAD /lab/media/placeholder.svgPhase 6 · プレースホルダ画像 — 指定サイズの板に寸法を書いた、レイアウト確認用のダミー画像。 200 image/svg+xml
media GET/HEAD /lab/media/sparkline.svgPhase 6 · スパークライン — カンマ区切りの数値から軸のない折れ線グラフを描く。 200 image/svg+xml
media GET/HEAD /lab/media/gradient.pngPhase 6 · グラデーションPNG — 2色の線形グラデーションを角度指定でPNGに描く。自前のPNGエンコーダを使う。 200 image/png
media GET/HEAD /lab/media/checkerboard.pngPhase 6 · 市松模様PNG — 透過確認に使う市松模様。タイルの大きさと2色を指定できる。 200 image/png
media GET/HEAD /lab/media/noise.pngPhase 6 · ノイズPNG — ランダムなピクセルを敷き詰めたPNG。?seed=を付けると毎回同じ絵になる。 200 image/png
media GET/HEAD /lab/media/mandelbrot.pngPhase 6 · マンデルブロ集合 — 1ピクセルごとに反復計算して描く。このサイトで最もCPUを使うエンドポイント。 200 image/png
media GET/HEAD /lab/media/pixel.gifPhase 6 · 1x1透明ピクセル — 43バイトの透明GIF。いわゆるトラッキングピクセルで、画像として最小の応答。 200 image/gif
media GET/HEAD /lab/media/waveform.wavPhase 6 · 波形指定の単音 — 正弦波・矩形波・のこぎり波・三角波を選んで鳴らす。/media/tone.wav の波形拡張版。 200 audio/wav
media GET/HEAD /lab/media/dtmf.wavPhase 6 · DTMF(プッシュ音) — 電話のダイヤル音。1キーにつき低群・高群の2つの正弦波を重ねる規格どおりの合成。 200 audio/wav
media GET/HEAD /lab/media/morse.wavPhase 6 · モールス信号 — 文字列をモールス符号にして鳴らす。短点1・長点3・字間3・語間7の比率は国際規格どおり。 200 audio/wav
media GET/HEAD /lab/media/melody.wavPhase 6 · メロディ — 音名の並びを矩形波で順に鳴らす簡易チップチューン。 200 audio/wav
media GET/HEAD /lab/media/metronome.wavPhase 6 · メトロノーム — 指定BPMのクリック音。小節の頭だけ高い音でアクセントを付ける。 200 audio/wav
media GET/HEAD /lab/media/noise.wavPhase 6 · ノイズ音 — ホワイト/ピンク/ブラウンノイズ。高域の減り方だけで聞こえ方が大きく変わる。 200 audio/wav
media GET/HEAD /lab/media/silence.wavPhase 6 · 無音 — 指定秒数のまったくの無音。中身は0の羅列で、再生系の動作確認に使う。 200 audio/wav