POST /api/v1/pins で公開する
ZIPをmultipart/form-dataで送信し、共有URLを作成するAPIリクエストの仕様です。
カテゴリー: APIリファレンス
リクエスト
完成済みの静的ファイルをZIPにし、multipart/form-data で送信します。
POST https://ror.jp/api/v1/pins
Authorization: Bearer $ROR_API_KEY
Idempotency-Key: リクエストごとに生成した一意な値
Content-Type: multipart/form-data
フォームで受け付ける項目は次の2つだけです。
| 項目 | 必須 | 内容 |
|---|---|---|
archive |
はい | ZIPファイル |
title |
いいえ | 管理用タイトル。255文字以内。共有URLには影響しません |
curlの例
環境変数 ROR_API_KEY を設定してから実行します。次の例はLinuxまたはWSLで、公開ごとに新しいUUIDを生成します。
IDEMPOTENCY_KEY="$(cat /proc/sys/kernel/random/uuid)"
curl --fail-with-body --silent --show-error \
'https://ror.jp/api/v1/pins' \
-H "Authorization: Bearer $ROR_API_KEY" \
-H "Idempotency-Key: $IDEMPOTENCY_KEY" \
-F 'archive=@./mock.zip;type=application/zip' \
-F 'title=画面モック'
コマンドはAPIキーを出力しません。認証ヘッダーが表示される curl -v やシェルの set -x は使わないでください。
ZIPの主な条件
index.htmlがZIP直下、または単一の親フォルダー直下にある- 圧縮後10 MiB以下、展開後50 MiB以下
- ファイル数500個以下、1ファイル10 MiB以下
.git、.env、node_modules、tmp、logを含めない- 暗号化ZIP、シンボリックリンク、安全でないパスを含めない
Idempotency-Keyを付ける
Idempotency-Key は論理的な公開1回につき一意な値を生成してください。最大255文字で、秘密情報を含めないでください。
同じキー、同じZIP、同じ元ファイル名、同じタイトルを再送すると、完了済みの公開は同じロールを 200 OK で返します。新規公開の成功は 201 Created です。
同じキーでZIP、元ファイル名、タイトルのいずれかが変わると 409 idempotency_mismatch になります。タイムアウトや一時障害の再試行では、リクエスト内容とキーをどちらも変えないでください。