Skip to content

REST API 參考 ​

API 資訊 ​

屬性值
版本v1.0
Base URLhttp://localhost:65530/api
Content-Typeapplication/json
認證無需認證

資料模型 ​

Task ​

地圖畫建造任務物件

欄位類型必填描述
Groupstring✓群組名稱
Typestring✓任務類型,固定為 "mapArt"
IDstring✓任務唯一識別碼
Statusenum✓任務狀態:init, building, done, error, pause
RecordTaskRecord建造記錄
BlueprintPathstring✓地圖畫檔案路徑
OffsetXnumber✓X 軸偏移量
OffsetYnumber✓Y 軸偏移量
OffsetZnumber✓Z 軸偏移量
MaterialServernumber✓材料伺服器編號
BuildingServernumber✓建造伺服器編號
MaterialWarpPointstring材料傳送點名稱
BuildingWarpPointstring建造傳送點名稱
IsDestroyboolean是否為破壞模式
InitialTimestring初始化時間 (ISO 8601)

TaskRecord ​

任務執行記錄

欄位類型必填描述
TotalBlocksnumber總方塊數
RemainBlocksnumber剩餘方塊數
StartTimestring開始時間 (ISO 8601)
FinishTimestring完成時間 (ISO 8601)
Finishboolean是否完成
BuildScopesBuildScope[]建造時間範圍
StopTimesnumber停止次數
TakeMaterialTimesnumber取材次數
PlaceBlockTimesnumber放置方塊次數
TakeMaterialTimenumber取材耗時 (納秒)
PreviewImagestring[]預覽圖片 (Base64)
Widthnumber寬度
Heightnumber高度
ErrorMessagestring錯誤訊息
Materialsany[]材料清單

BuildScope ​

建造時間範圍

欄位類型必填描述
StartTimestring✓開始時間 (ISO 8601)
EndTimestring✓結束時間 (ISO 8601)

Map ​

地圖物件

欄位類型必填描述
uuidstring✓地圖唯一識別碼
idnumber✓地圖 ID 編號
renameboolean是否啟用重新命名
namestring當前地圖名稱
skipboolean是否跳過此地圖
origin_namestring原始地圖名稱
copyboolean是否複製此地圖
copy_countnumber複製數量

ItemData ​

物品資料

欄位類型必填描述
idnumber✓物品 ID 編號
translate_namestring✓翻譯後名稱
namestring✓英文原名稱
stack_sizenumber✓堆疊上限

EULA ​

最終用戶授權協議物件

欄位類型必填描述
idnumber✓EULA 唯一識別碼
versionstring✓EULA 版本號
titlestring✓EULA 標題
contentstring✓EULA 完整內容
is_activenumber✓是否為啟用狀態 (0 或 1)
created_atstring✓建立時間 (ISO 8601)
updated_atstring✓更新時間 (ISO 8601)

API 端點 ​

系統管理 ​

GET /test ​

檢查 Bot 客戶端連線狀態

回應

狀態碼內容類型描述
200text/plain"ok" - 已連接
"not ok" - 未連接

GET /user/name ​

取得當前 Bot 客戶端名稱

回應

狀態碼內容類型描述
200text/plainBot 客戶端名稱

POST /exit ​

安全退出 Nullbot Mapart 程式

回應

狀態碼描述
200退出流程已觸發

POST /profile ​

執行系統效能分析

回應

狀態碼內容類型描述
200text/plain"Profile finished" - 分析完成
201text/plain"Profile is already running" - 已在執行中
500text/plain分析失敗錯誤訊息

GET /auth ​

取得 GMM 驗證資訊

回應

狀態碼內容類型Schema
200application/json{"Code": string, "RedirectUri": string}

GET /tunnel-auth ​

隧道服務驗證端點

EULA 管理 ​

GET /eula ​

取得 EULA 內容

回應

狀態碼內容類型Schema
200application/jsonEULA

GET /eula/status ​

取得 EULA 接受狀態

回應

狀態碼內容類型Schema
200application/json{"status": string}

狀態值:

  • "accepted" - 已接受
  • "denied" - 已拒絕
  • "idle" - 未回應

POST /eula/accept ​

接受 EULA

請求體

內容類型Schema
application/json{"accepted": boolean, "reading_time": number, "response_type": string}

回應

狀態碼內容類型描述
200application/json{"status": "EULA accepted"} - EULA 接受成功
400application/json{"error": "invalid request"} - 請求格式錯誤
403application/json{"error": "EULA not accepted"} - EULA 未被接受

配置管理 ​

GET /config/{service} ​

取得服務配置

路徑參數

參數類型必填描述
servicestring✓服務名稱

回應

狀態碼內容類型描述
200application/json服務配置物件
404服務不存在

POST /config/{service} ​

更新服務配置

路徑參數

參數類型必填描述
servicestring✓服務名稱

請求體

內容類型Schema
application/json配置物件

回應

狀態碼描述
200配置更新成功
400請求參數錯誤
404服務不存在

地圖畫建造 ​

GET /mapart/tasks ​

取得所有建造任務

回應

狀態碼內容類型Schema
200application/jsonTask[]

POST /mapart/tasks ​

建立建造任務

請求體

內容類型Schema
application/jsonTask | Task[]

回應

狀態碼內容類型描述
200text/plain任務 ID (多任務以逗號分隔)
400text/plain參數錯誤或座標未對齊
500text/plain伺服器內部錯誤

GET /mapart/tasks/{id} ​

取得特定任務

路徑參數

參數類型必填描述
idstring✓任務 ID

回應

狀態碼內容類型Schema
200application/jsonTask
404任務不存在

PUT /mapart/tasks/{id} ​

更新任務

路徑參數

參數類型必填描述
idstring✓任務 ID

請求體

內容類型Schema
application/jsonTask

回應

狀態碼內容類型描述
200text/plain"ok" - 更新成功
400text/plain參數錯誤或任務未初始化
404任務不存在
500text/plain伺服器內部錯誤

DELETE /mapart/tasks/{id} ​

刪除任務

路徑參數

參數類型必填描述
idstring✓任務 ID

回應

狀態碼內容類型描述
200text/plain"ok" - 刪除成功
404任務不存在
500text/plain伺服器內部錯誤

DELETE /mapart/tasks/batch ​

批次刪除任務

請求體

內容類型Schema
application/jsonstring[]

回應

狀態碼內容類型描述
200text/plain"ok" - 全部刪除成功
207application/json部分成功的詳細狀態
400text/plain請求參數錯誤
404所有任務都不存在

POST /mapart/build/{id} ​

開始建造

路徑參數

參數類型必填描述
idstring✓任務 ID

回應

狀態碼內容類型描述
200text/plain"ok" - 建造開始成功
400text/plain任務已在執行中
404任務不存在
500text/plain伺服器內部錯誤

POST /mapart/rebuild/{id} ​

重新建造

路徑參數

參數類型必填描述
idstring✓任務 ID

回應

狀態碼內容類型描述
200text/plain"ok" - 重新建造設定成功
404歷史任務不存在
500text/plain伺服器內部錯誤

POST /mapart/stop ​

停止建造

回應

狀態碼內容類型描述
200text/plain"ok" - 停止成功
400text/plain無進行中的任務

POST /mapart/order ​

任務排序

請求體

內容類型Schema
application/json{"type": string, "source": number, "destination": number}

回應

狀態碼內容類型描述
200text/plain"ok" - 排序成功
400text/plain參數錯誤或類型無效
500text/plain伺服器內部錯誤

GET /mapart/task/autoBuild ​

取得自動建造狀態

回應

狀態碼內容類型Schema
200application/jsonboolean

POST /mapart/task/autoBuild ​

設定自動建造

查詢參數

參數類型必填描述
autostring✓"true" 或 "false"

回應

狀態碼內容類型描述
200text/plain"ok" - 設定成功
400text/plain缺少 auto 參數

GET /mapart/history ​

取得建造歷史

回應

狀態碼內容類型Schema
200application/jsonTask[]

GET /preview/{id} ​

取得任務預覽圖片

路徑參數

參數類型必填描述
idstring✓任務 ID

回應

狀態碼內容類型描述
200image/png預覽圖片
404任務不存在

GET /render ​

渲染當前建造任務

回應

狀態碼內容類型描述
200text/plain"ok" - 渲染成功
400text/plain無進行中的任務
500text/plain渲染或檔案儲存錯誤

後處理操作 ​

POST /postProcessing/scan ​

掃描地圖

請求體

內容類型Schema
application/json{"Start": string, "Width": number, "Height": number, "Order": string, "Template": string, "CopyAmount": number}

回應

狀態碼內容類型描述
200text/plain"ok" - 掃描任務開始
400text/plain參數錯誤或任務鎖定

GET /postProcessing/maps ​

取得地圖列表

回應

狀態碼內容類型Schema
200application/jsonMap[]

GET /postProcessing/map/{id} ​

取得特定地圖資訊

路徑參數

參數類型必填描述
idstring✓地圖 ID

回應

狀態碼內容類型Schema
200application/json{"MapID": number, "Locked": boolean}
400text/plain地圖 ID 格式錯誤
404地圖不存在

GET /postProcessing/map/{id}/image ​

取得地圖圖片

路徑參數

參數類型必填描述
idstring✓地圖 ID

回應

狀態碼內容類型描述
200image/png128x128 PNG 圖片
400text/plain地圖 ID 格式錯誤
404地圖不存在
500text/plain圖片編碼錯誤

POST /postProcessing/map/clear ​

清除地圖快取

回應

狀態碼內容類型描述
200text/plain"ok" - 清除成功
400text/plain任務已鎖定或清除失敗

POST /postProcessing ​

設定複製參數

請求體

內容類型Schema
application/json{"Start": string, "Width": number, "Height": number, "Order": string, "Template": string, "CopyAmount": number}

回應

狀態碼內容類型描述
200text/plain"ok" - 設定成功
400text/plain參數錯誤或任務鎖定

POST /postProcessing/size ​

設定複製尺寸

查詢參數

參數類型必填描述
widthnumber✓寬度
heightnumber✓高度

回應

狀態碼內容類型描述
200text/plain"ok" - 設定成功
400text/plain參數錯誤或任務鎖定

POST /postProcessing/copyAmount ​

設定複製數量

查詢參數

參數類型必填描述
amountnumber✓複製數量

回應

狀態碼內容類型描述
200text/plain"ok" - 設定成功
400text/plain參數錯誤或任務鎖定

POST /postProcessing/copy ​

開始複製

回應

狀態碼內容類型描述
200text/plain"ok" - 複製任務開始
400text/plain任務已鎖定

POST /postProcessing/copy/{uuid} ​

設定特定地圖複製

路徑參數

參數類型必填描述
uuidstring✓地圖 UUID

查詢參數

參數類型必填描述
copyboolean✓是否複製

回應

狀態碼內容類型描述
200text/plain"ok" - 設定成功
400text/plain參數錯誤或任務鎖定

POST /postProcessing/copyCount/{uuid} ​

設定複製計數

路徑參數

參數類型必填描述
uuidstring✓地圖 UUID

查詢參數

參數類型必填描述
countnumber✓複製數量

回應

狀態碼內容類型描述
200text/plain"ok" - 設定成功
400text/plain參數錯誤或任務鎖定

POST /postProcessing/setRename ​

設定重新命名參數

請求體

內容類型Schema
application/json[{"uuid": string, "rename": boolean}]

回應

狀態碼內容類型描述
200text/plain"ok" - 設定成功
400text/plain請求體錯誤或任務鎖定

POST /postProcessing/rename ​

開始重新命名

查詢參數

參數類型必填描述
modestring重新命名模式 (預設: loose)

回應

狀態碼內容類型描述
200text/plain"ok" - 重新命名任務開始
400text/plain任務已鎖定

POST /postProcessing/template ​

設定命名範本

查詢參數

參數類型必填描述
templatestring✓命名範本字串

回應

狀態碼內容類型描述
200text/plain"ok" - 設定成功
400text/plain參數錯誤或任務鎖定

GET /postProcessing/template/docs ​

取得範本文檔

回應

狀態碼內容類型Schema
200application/json[{"Type": string, "Name": string, "Description": string, "Example": string}]

POST /postProcessing/name/{uuid} ​

設定地圖名稱

路徑參數

參數類型必填描述
uuidstring✓地圖 UUID

查詢參數

參數類型必填描述
namestring✓新的地圖名稱

回應

狀態碼內容類型描述
200text/plain"ok" - 設定成功
400text/plain參數錯誤、名稱太長或任務鎖定

POST /postProcessing/order ​

設定排序

查詢參數

參數類型必填描述
orderstring✓排序方式

回應

狀態碼內容類型描述
200text/plain"ok" - 設定成功
400text/plain參數錯誤或任務鎖定

POST /postProcessing/skip/{uuid} ​

跳過地圖

路徑參數

參數類型必填描述
uuidstring✓地圖 UUID

查詢參數

參數類型必填描述
skipboolean✓是否跳過

回應

狀態碼內容類型描述
200text/plain"ok" - 設定成功
400text/plain參數錯誤或任務鎖定

POST /postProcessing/stop ​

停止後處理

回應

狀態碼內容類型描述
200text/plain"ok" - 停止成功

背景圖片管理 ​

GET /background ​

取得背景圖片

回應

狀態碼內容類型描述
200原始 MIME 類型當前背景圖片
404未設定背景圖片
500text/plain伺服器錯誤

回應標頭

  • ETag: 快取標識

GET /background/list ​

取得背景列表

回應

狀態碼內容類型Schema
200application/jsonstring[]

POST /background/upload ​

上傳背景圖片

請求體

內容類型Schema
multipart/form-databackground: File

回應

狀態碼內容類型描述
200text/plain圖片雜湊值
400text/plain未找到檔案
415text/plain檔案不是圖片格式
500text/plain伺服器錯誤

POST /background/set ​

設定背景

查詢參數

參數類型必填描述
hashstring✓背景圖片雜湊值

回應

狀態碼內容類型描述
200text/plain"OK" - 設定成功
404背景圖片不存在
500text/plain伺服器錯誤

POST /background/set/{hash} ​

設定特定背景

路徑參數

參數類型必填描述
hashstring✓背景圖片雜湊值

回應

狀態碼內容類型描述
200text/plain"OK" - 設定成功
404背景圖片不存在
500text/plain伺服器錯誤

GET /background/hash ​

取得背景雜湊

回應

狀態碼內容類型描述
200text/plain當前背景雜湊值
404未設定背景

GET /background/{hash} ​

取得背景圖片

路徑參數

參數類型必填描述
hashstring✓背景圖片雜湊值

回應

狀態碼內容類型描述
200原始 MIME 類型圖片檔案
404背景圖片不存在
500text/plain伺服器錯誤

回應標頭

  • Cache-Control: max-age=31536000

GET /background/thumbnail/{hash} ​

取得背景縮圖

路徑參數

參數類型必填描述
hashstring✓背景圖片雜湊值

回應

狀態碼內容類型描述
200image/jpgJPG 縮圖
404背景圖片不存在
500text/plain伺服器錯誤

回應標頭

  • Cache-Control: max-age=31536000

GET /background/position ​

取得背景位置

回應

狀態碼內容類型Schema
200application/jsonnumber
404未設定背景或背景不存在
500text/plain伺服器錯誤

POST /background/position ​

設定背景位置

查詢參數

參數類型必填描述
positionnumber✓背景位置數值

回應

狀態碼內容類型描述
200text/plain"OK" - 設定成功
404未設定背景或背景不存在
500text/plain伺服器錯誤

資料查詢 ​

GET /data/items ​

取得物品列表

回應

狀態碼內容類型Schema
200application/jsonItemData[]

GET /data/items/maxDamage ​

取得物品最大耐久度

回應

狀態碼內容類型Schema
200application/json{[itemId: string]: number}

GET /assets/items ​

取得物品圖示

查詢參數

參數類型必填描述
idnumber✓物品 ID

回應

狀態碼內容類型描述
200image/png物品圖示 PNG
404物品 ID 不存在或圖示檔案不存在
500text/plain檔案讀取錯誤

回應標頭

  • Cache-Control: max-age=86400

GET /header ​

頭像渲染

查詢參數

參數類型必填描述
keystring*玩家名稱 (與 url 二擇一)
urlstring*皮膚貼圖網址 (與 key 二擇一)
sizenumber圖片尺寸 (預設: 512)
overlayboolean是否渲染第二層皮膚 (預設: true)
projectionstring投影方式: frontal 或 isometric (預設: isometric)

回應

狀態碼內容類型描述
200image/png渲染後的頭像 PNG
304未修改 (基於 ETag)
400text/plain參數錯誤、皮膚獲取失敗或非法貼圖服務
5000text/plain渲染錯誤
5001text/plain圖片編碼錯誤

回應標頭

  • ETag: 快取標識
  • Cache-Control: max-age=86400

狀態碼 ​

狀態碼說明
200請求成功
201已創建
207多狀態回應 (部分成功)
304未修改 (快取有效)
400請求參數錯誤
401未授權
404資源不存在
415不支援的媒體類型
500伺服器內部錯誤
5000自訂錯誤:渲染失敗
5001自訂錯誤:編碼失敗