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.envnode_modulestmplog を含めない
  • 暗号化ZIP、シンボリックリンク、安全でないパスを含めない

Idempotency-Keyを付ける

Idempotency-Key は論理的な公開1回につき一意な値を生成してください。最大255文字で、秘密情報を含めないでください。

同じキー、同じZIP、同じ元ファイル名、同じタイトルを再送すると、完了済みの公開は同じロールを 200 OK で返します。新規公開の成功は 201 Created です。

同じキーでZIP、元ファイル名、タイトルのいずれかが変わると 409 idempotency_mismatch になります。タイムアウトや一時障害の再試行では、リクエスト内容とキーをどちらも変えないでください。