コンテンツにスキップ

Admin API:スペースの取り込み

書き出したファイルを、新しいスペースとして取り込む操作です。共通の決まり(認証、エラーの形、日時)は Admin API のリファレンス にあります。

例の <ホスト名> はあなたの環境のホスト名、<アクセストークン> は hako_pat_ で始まるアクセストークンに置き換えます。<slug> などのほかの山かっこの値は、各操作のパラメーターの表にあるものに置き換えます。

操作 メソッドとパス
取り込みの一覧 GET /admin/api/imports
取り込む ZIP を送る POST /admin/api/imports
取り込みが止まったスペースの一覧 GET /admin/api/imports/leftovers
取り込みが止まったスペースを消す DELETE /admin/api/imports/leftovers/{slug}
分けて送るアップロードの設定 GET /admin/api/imports/settings
分けて送るアップロードを始める POST /admin/api/imports/uploads
分けて送るアップロードと、受け取った片 GET /admin/api/imports/uploads/{id}
分けて送るアップロードを終える POST /admin/api/imports/uploads/{id}/complete
片を受け取る PUT /admin/api/imports/uploads/{id}/parts/{n}
片の送り先 POST /admin/api/imports/uploads/{id}/parts/{n}/target
取り込みを 1 件取得する GET /admin/api/imports/{id}
取り込みの記録と ZIP を消す DELETE /admin/api/imports/{id}
送った ZIP の取り込みを始める POST /admin/api/imports/{id}/start

取り込み(新しい順に 20 件)

GET /admin/api/imports
  • ログイン:要る(セッションかアクセストークン)

返る値:

状態 本文
200 TransferList(application/json)

うまくいかなかったときは、4xx か 5xx と、message を持つ JSON が返ります。状態ごとの意味は エラーの一覧 にあります。

例:

ターミナルウィンドウ
curl "https://<ホスト名>.hakocms.net/admin/api/imports" \
-H "Authorization: Bearer <アクセストークン>"

取り込む ZIP を受け取る(本文がそのまま ZIP)。ストレージに置き、hako-space.json を読んで中身の要約を返す。まだ取り込みは始めない。

POST /admin/api/imports
  • ログイン:要る(セッションかアクセストークン)

リクエストの本文(application/zip):

ファイルの中身をそのまま送ります。

返る値:

状態 本文
201 TransferView(application/json)

うまくいかなかったときは、4xx か 5xx と、message を持つ JSON が返ります。状態ごとの意味は エラーの一覧 にあります。

例:

ターミナルウィンドウ
curl -X POST "https://<ホスト名>.hakocms.net/admin/api/imports" \
-H "Authorization: Bearer <アクセストークン>" \
-H "Content-Type: application/zip" \
--data-binary "@<ファイル>"

取り込みが止まったスペースの一覧

Section titled “取り込みが止まったスペースの一覧”

取り込みのジョブが進めていない、取り込み中のスペース。

GET /admin/api/imports/leftovers
  • ログイン:要る(セッションかアクセストークン)

返る値:

状態 本文
200 LeftoverList(application/json)

うまくいかなかったときは、4xx か 5xx と、message を持つ JSON が返ります。状態ごとの意味は エラーの一覧 にあります。

例:

ターミナルウィンドウ
curl "https://<ホスト名>.hakocms.net/admin/api/imports/leftovers" \
-H "Authorization: Bearer <アクセストークン>"

取り込みが止まったスペースを消す

Section titled “取り込みが止まったスペースを消す”

残った取り込み中のスペースを、ストレージのファイルごと消す。

DELETE /admin/api/imports/leftovers/{slug}
  • ログイン:要る(セッションかアクセストークン)

パラメーター:

名前 場所 型 必須 決まり 説明
slug パス 文字列 ○ スペースのスラッグ

返る値:

状態 本文
204 なし

うまくいかなかったときは、4xx か 5xx と、message を持つ JSON が返ります。状態ごとの意味は エラーの一覧 にあります。

例:

ターミナルウィンドウ
curl -X DELETE "https://<ホスト名>.hakocms.net/admin/api/imports/leftovers/<slug>" \
-H "Authorization: Bearer <アクセストークン>"

分けて送るアップロードの設定

Section titled “分けて送るアップロードの設定”

ブラウザの確かめ(送る前)に使う値。

GET /admin/api/imports/settings
  • ログイン:要る(セッションかアクセストークン)

返る値:

状態 本文
200 UploadSettings(application/json)

うまくいかなかったときは、4xx か 5xx と、message を持つ JSON が返ります。状態ごとの意味は エラーの一覧 にあります。

例:

ターミナルウィンドウ
curl "https://<ホスト名>.hakocms.net/admin/api/imports/settings" \
-H "Authorization: Bearer <アクセストークン>"

分けて送るアップロードを始める

Section titled “分けて送るアップロードを始める”

送りかけを作る。

POST /admin/api/imports/uploads
  • ログイン:要る(セッションかアクセストークン)

リクエストの本文(application/json):

名前 型 必須 決まり 説明
fileName 文字列 ○
size 整数 ○ 0 以上

返る値:

状態 本文
201 UploadView(application/json)

うまくいかなかったときは、4xx か 5xx と、message を持つ JSON が返ります。状態ごとの意味は エラーの一覧 にあります。

例:

ターミナルウィンドウ
curl -X POST "https://<ホスト名>.hakocms.net/admin/api/imports/uploads" \
-H "Authorization: Bearer <アクセストークン>" \
-H "Content-Type: application/json" \
-d '{
"fileName": "<fileName>",
"size": 0
}'

分けて送るアップロードと、受け取った片

Section titled “分けて送るアップロードと、受け取った片”

送りかけと、受け取った片。

GET /admin/api/imports/uploads/{id}
  • ログイン:要る(セッションかアクセストークン)

パラメーター:

名前 場所 型 必須 決まり 説明
id パス 文字列 ○ ID

返る値:

状態 本文
200 UploadView(application/json)

うまくいかなかったときは、4xx か 5xx と、message を持つ JSON が返ります。状態ごとの意味は エラーの一覧 にあります。

例:

ターミナルウィンドウ
curl "https://<ホスト名>.hakocms.net/admin/api/imports/uploads/<id>" \
-H "Authorization: Bearer <アクセストークン>"

分けて送るアップロードを終える

Section titled “分けて送るアップロードを終える”

送り終えた。片がそろっているか確かめ、ZIP の目次と hako-space.json を確かめて、取り込みを始められる状態にする。

POST /admin/api/imports/uploads/{id}/complete
  • ログイン:要る(セッションかアクセストークン)

パラメーター:

名前 場所 型 必須 決まり 説明
id パス 文字列 ○ ID

返る値:

状態 本文
200 TransferView(application/json)

うまくいかなかったときは、4xx か 5xx と、message を持つ JSON が返ります。状態ごとの意味は エラーの一覧 にあります。

例:

ターミナルウィンドウ
curl -X POST "https://<ホスト名>.hakocms.net/admin/api/imports/uploads/<id>/complete" \
-H "Authorization: Bearer <アクセストークン>"

n 番目の片を受け取る(アプリ経由)。大きさは本文を読む前に Content-Length で確かめ、読みながらも打ち切る。SHA-256 が合えば置く(同じ片は置き直す)

PUT /admin/api/imports/uploads/{id}/parts/{n}
  • ログイン:要る(セッションかアクセストークン)

パラメーター:

名前 場所 型 必須 決まり 説明
id パス 文字列 ○ ID
n パス 文字列 ○ 片の番号(1 から)

リクエストの本文(application/octet-stream):

ファイルの中身をそのまま送ります。

返る値:

状態 本文
204 なし

うまくいかなかったときは、4xx か 5xx と、message を持つ JSON が返ります。状態ごとの意味は エラーの一覧 にあります。

例:

ターミナルウィンドウ
curl -X PUT "https://<ホスト名>.hakocms.net/admin/api/imports/uploads/<id>/parts/<n>" \
-H "Authorization: Bearer <アクセストークン>" \
-H "Content-Type: application/octet-stream" \
--data-binary "@<ファイル>"

n 番目の片の送り先。

POST /admin/api/imports/uploads/{id}/parts/{n}/target
  • ログイン:要る(セッションかアクセストークン)

パラメーター:

名前 場所 型 必須 決まり 説明
id パス 文字列 ○ ID
n パス 文字列 ○ 片の番号(1 から)

リクエストの本文(application/json):

名前 型 必須 決まり 説明
md5 文字列か null ストレージに直接送るときに要る(GCS は MD5 でしか中身を確かめない)
sha256 文字列 ○
size 整数 ○ 0 以上

返る値:

状態 本文
200 PartTarget(application/json)

うまくいかなかったときは、4xx か 5xx と、message を持つ JSON が返ります。状態ごとの意味は エラーの一覧 にあります。

例:

ターミナルウィンドウ
curl -X POST "https://<ホスト名>.hakocms.net/admin/api/imports/uploads/<id>/parts/<n>/target" \
-H "Authorization: Bearer <アクセストークン>" \
-H "Content-Type: application/json" \
-d '{
"size": 0,
"sha256": "<sha256>"
}'
GET /admin/api/imports/{id}
  • ログイン:要る(セッションかアクセストークン)

パラメーター:

名前 場所 型 必須 決まり 説明
id パス 文字列 ○ ID

返る値:

状態 本文
200 TransferView(application/json)

うまくいかなかったときは、4xx か 5xx と、message を持つ JSON が返ります。状態ごとの意味は エラーの一覧 にあります。

例:

ターミナルウィンドウ
curl "https://<ホスト名>.hakocms.net/admin/api/imports/<id>" \
-H "Authorization: Bearer <アクセストークン>"

取り込みの記録と、受け取った ZIP を消す。待っているか動いているものは消せない(409)

DELETE /admin/api/imports/{id}
  • ログイン:要る(セッションかアクセストークン)

パラメーター:

名前 場所 型 必須 決まり 説明
id パス 文字列 ○ ID

返る値:

状態 本文
204 なし

うまくいかなかったときは、4xx か 5xx と、message を持つ JSON が返ります。状態ごとの意味は エラーの一覧 にあります。

例:

ターミナルウィンドウ
curl -X DELETE "https://<ホスト名>.hakocms.net/admin/api/imports/<id>" \
-H "Authorization: Bearer <アクセストークン>"

受け取った ZIP の取り込みを始める。スラッグが使われていれば 409、すでに始めていれば 409。

POST /admin/api/imports/{id}/start
  • ログイン:要る(セッションかアクセストークン)

パラメーター:

名前 場所 型 必須 決まり 説明
id パス 文字列 ○ ID

リクエストの本文(application/json):

名前 型 必須 決まり 説明
name 文字列 ○ 取り込んで作るスペースの名前
slug 文字列 ○ 取り込んで作るスペースのスラッグ

返る値:

状態 本文
202 TransferView(application/json)

うまくいかなかったときは、4xx か 5xx と、message を持つ JSON が返ります。状態ごとの意味は エラーの一覧 にあります。

例:

ターミナルウィンドウ
curl -X POST "https://<ホスト名>.hakocms.net/admin/api/imports/<id>/start" \
-H "Authorization: Bearer <アクセストークン>" \
-H "Content-Type: application/json" \
-d '{
"slug": "<slug>",
"name": "<name>"
}'