HTTP API
指令碼攜帶個人存取權杖呼叫 /api/v1;權杖透過裝置授權取得,與 plainmote login 相同。
取得權杖
申請驗證碼。scope 為 read 或 write;device 是確認時以及「已授權應用程式」中顯示的名稱。
$ curl -X POST -H 'Content-Type: application/json' \ -d '{"scope": "read", "device": "my-script"}' https://plainmote.link/api/v1/device/code在已登入的瀏覽器中開啟 https://plainmote.link/cli/device,輸入回應中的 user_code 並允許。
每隔 interval 秒用 device_code 輪詢。允許之前傳回 400 authorization_pending,允許後傳回 access_token。
$ curl -X POST -H 'Content-Type: application/json' \ -d '{"device_code": "…"}' https://plainmote.link/api/v1/device/token在 Authorization 請求標頭中攜帶權杖。放在位址或 Cookie 中的權杖不會被接受。
$ curl -H "Authorization: Bearer $PLAINMOTE_TOKEN" https://plainmote.link/api/v1/resources
端點
| 請求 | 權限 | 用途 |
|---|---|---|
| POST /api/v1/device/code | 無需權杖 | 申請驗證碼 |
| POST /api/v1/device/token | 無需權杖 | 用驗證碼換取權杖 |
| GET /api/v1/me | read | 目前的帳號與權杖 |
| GET /api/v1/keyring | read | 帳號的金鑰環,用於加密資源 |
| GET /api/v1/resources | read | 列出資源,q 依名稱篩選,tag 依標籤篩選 |
| GET /api/v1/resources/{id} | read | 資源詳情 |
| GET /api/v1/resources/{id}/content | read | 以原始位元組讀取內容 |
| PUT /api/v1/resources/{id}/content | write | 儲存為新版本,If-Match 指明編輯所依據的版本 |
| POST /api/v1/resources | write | 以 multipart 表單的 content 檔案建立資源,tag 欄位為其加上標籤 |
| PATCH /api/v1/resources/{id}/tags | write | 新增或移除資源的標籤 |
| GET /api/v1/tags | read | 列出帳號的所有標籤及其資源數 |
| POST /api/v1/quick-shares | write | 建立快速分享並傳回連結 |
| DELETE /api/v1/token | read | 撤銷目前的權杖 |
約定
格式JSON;讀取和儲存內容時為原始位元組。時間為 UTC 的 RFC 3339 格式。
錯誤
{"error": "<code>", "message": "…"}權杖自登入起 90 天有效。唯讀權杖呼叫寫入端點時傳回 403。
頻率限制每個權杖每分鐘 300 次;超出傳回 429 rate_limited。
加密內容以密文傳回,由用戶端用主密碼解密。
不提供刪除資源、管理分享連結、檢視存取記錄。
完整的請求和回應格式見原始碼: docs/api.md