manage_api - SilverBlog/silverblog GitHub Wiki
通過 SilverBlog 的管理 API,你可以輕鬆的對你的博客進行管理,包括添加、編輯、刪除博文等操作。這些 API 也可以用於開發 SilverBlog 客戶端:
- SilverCreator(源碼)
- SilverBlog Android (Play 商店)
- SilverBlog IOS (需要自己編譯與簽名,如有開發者賬戶能夠幫忙免費上架,感激不盡。)
您可以使用 ./watch.py --control
來直接啟動API服務器。
您可以使用 --debug
指令,在終端中進行Debug`。
所有操作請求都使用POST,所有獲取數據請求都可以使用GET。
使用Systemd安裝的用戶,安裝時將自動啟用該服務器。您可以使用 systemctl enable|disable|start|stop|restart {安裝名稱}@control
管理服務器。
SilverBlog 的示例 pm2 配置文件中,包含有 SilverBlog_Control
的啟動信息。
您可以使用 ./manage.py qrcode
生成自動化配置二維碼。
管理API密碼可以由以下僞代碼實現:
hmac.sha256(key:"SiLvErBlOg",message:md5(密碼原文))
- 地址:
/control/system_info
該 API 不需要提交參數。
為 JSON 格式,具體參數如下:
參數名 | 說明 |
---|---|
api_version |
API 版本 |
author_introduction |
博主的介紹 |
project_description |
博客介紹 |
author_name |
博主的暱稱 |
author_image |
博主的頭像地址 |
project_name |
博客名稱 |
- 地址:
/control/v2/get/list/<list_type>
為指定列表文件的內容。
- 地址:
/control/v2/get/content/<post_type>
為 JSON 格式,具體參數如下:
參數名 | 必需 | 說明 |
---|---|---|
post_uuid |
是 | 希望獲取內容的文章在 config/page.json 中的UUID |
post_type
是要操作的列表名稱(page/menu)
為 JSON 格式,具體參數如下:
參數名 | 說明 |
---|---|
uuid |
文章的操作識別符 |
content |
文章內容(Markdown 源文件內容) |
name |
文章名稱 |
title |
文章標題 |
- 發布地址:
/control/v2/new
- 編輯地址:
/control/v2/edit/<list_type>
為 JSON 格式,具體參數如下:
參數名 | 必需 | 說明 |
---|---|---|
post_uuid |
否 | (僅編輯)文章的操作識別符 |
content |
是 | 文章內容(Markdown 源文件內容) |
sign |
是 | 用於校驗身份的 hash |
name |
否 | 文章名稱(為空將自動生成) |
title |
是 | 文章標題 |
send_time |
是 | 發送時間(13位時間戳) |
list_type
是要操作的列表名稱(page/menu)
sign
值的獲得步驟可以使用以下偽代碼表示:
發布:hmac.sha512(key:password + send_time,message:title + name + sha512(content))
編輯:hmac.sha512(key:password + send_time,message:uuid + title + name + sha512(content))
為 JSON 格式,具體參數如下:
參數名 | 說明 |
---|---|
name |
文章名稱 |
status |
布爾值,請求狀態 |
uuid |
(可選)新增文章的uuid |
如果提供的 hash 沒有通過驗證(密碼錯誤),則請求不成功。
如果狀態爲403,則服務器處於拒絕任何寫入請求狀態。該狀態爲大量錯誤hash導致的,您可以稍後或者重啓服務器來解除這個狀態。
- 地址:
/control/v2/delete
為 JSON 格式,具體參數如下:
參數名 | 必需 | 說明 |
---|---|---|
post_uuid |
是 | 希望獲取內容的文章在 config/page.json 中的UUID |
sign |
是 | 用於校驗身份的 hash |
send_time |
是 | 發送時間(13位時間戳) |
sign
值的獲得步驟可以使用以下偽代碼表示:
hmac.sha512(key:password + send_time,message:uuid + title + name )
為 JSON 格式,具體參數如下:
參數名 | 說明 |
---|---|
status |
布爾值,請求狀態 |
- 地址:
/control/v2/git_page_publish
參數名 | 必需 | 說明 |
---|---|---|
sign |
是 | 用於校驗身份的 hash |
send_time |
是 | 發送時間(13位時間戳) |
sign
值的獲得步驟可以使用以下偽代碼表示:
hmac.sha512(key:password + send_time,message:"git_page_publish")
為 JSON 格式,具體參數如下:
參數名 | 說明 |
---|---|
status |
布爾值,請求狀態 |