Skip to content

manage_api

qwe7002 edited this page Dec 29, 2018 · 31 revisions

管理 API

通過 SilverBlog 的管理 API,你可以輕鬆的對你的博客進行管理,包括添加、編輯、刪除博文等操作。這些 API 也可以用於開發 SilverBlog 客戶端:

您可以使用 ./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 布爾值,請求狀態

發佈gitlab-page

  • 地址:/control/v2/git_page_publish

提交參數

參數名 必需 說明
sign 用於校驗身份的 hash
send_time 發送時間(13位時間戳)

sign 值的獲得步驟可以使用以下偽代碼表示:

hmac.sha512(key:password + send_time,message:"git_page_publish")

返回參數

為 JSON 格式,具體參數如下:

參數名 說明
status 布爾值,請求狀態