A FastAPI-based service for reserving and tracking switch testbed machines.
Method | Path | 說明 | 回傳格式 |
---|---|---|---|
GET |
/machines |
取得 device.yaml 中所有機器的即時狀態,可使用 vendor 、model 、version 、status=available|unavailable 等查詢參數。 |
200: { "machines": Machine[] } 。4xx/5xx: { "detail": "錯誤說明" } 。若無符合條件的機器,machines 為空陣列。 |
GET |
/get/{vendor}/{model}/{version} |
將符合條件且目前可用的機器全部標記為 unavailable 並回傳詳細資訊。 |
200: Machine 。404: { "detail": "No available machines for given specification" } 。 |
POST |
/release/{serial_number} |
將機器釋放回 available 狀態。 |
200: { "machine": Machine } 。404: { "detail": "Machine not found" } 。 |
⚠️ /get/...
會改變內部狀態。若只是查詢現況請呼叫/machines
。
Machine
物件包含下列欄位,可以參考 device.yaml:
後端使用 uv 作為包管理工具。
可透過以下指令安裝必要的 packages 以及將後端啟動:
make install
make run
專案根目錄下的 frontend/
目錄提供機器狀態看板的 React 應用程式,採用 Vite 建置。
-
安裝依賴:
cd frontend npm install
-
啟動開發伺服器:
npm run dev
預設於 http://localhost:5173 執行。