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 |
取り込みの一覧
Section titled “取り込みの一覧”取り込み(新しい順に 20 件)
GET /admin/api/imports- ログイン:要る(セッションかアクセストークン)
返る値:
| 状態 | 本文 |
|---|---|
200 |
TransferList(application/json) |
うまくいかなかったときは、4xx か 5xx と、message を持つ JSON が返ります。状態ごとの意味は エラーの一覧 にあります。
例:
curl "https://<ホスト名>.hakocms.net/admin/api/imports" \ -H "Authorization: Bearer <アクセストークン>"取り込む ZIP を送る
Section titled “取り込む ZIP を送る”取り込む 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 <アクセストークン>"片を受け取る
Section titled “片を受け取る”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>"}'取り込みを 1 件取得する
Section titled “取り込みを 1 件取得する”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 を消す
Section titled “取り込みの記録と ZIP を消す”取り込みの記録と、受け取った 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 の取り込みを始める
Section titled “送った ZIP の取り込みを始める”受け取った 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>"}'