Skip to main content

建立第一個RESTful api server(實作篇)-2

在上一步我們建立了一個基礎的echo的server 緊接著我們就要建立第一個crud的api了

關於我們未來會需要幾個資料表 request(儲存需要觸發的IOT物件) command(使用者需要觸發的事件) 而這個系統最基礎的需求是

使用者可以透過命令的觸發,來依序執行request的事件 而每個request可以被多個命令重複利用

所以因為這些需求,會需要開設這些表 table: request columns:

  • uuid(uuid)
  • create_at(timestamptz)
  • update_at(timestamptz)
  • name(varchar)

table: command columns:

  • uuid(uuid)
  • create_at(timestamptz)
  • update_at(timestamptz)
  • url(varchar)

table:request_command columns:

  • uuid(uuid)
  • create_at(timestamptz)
  • update_at(timestamptz)
  • request_uuid(uuid)
  • command_uuid(uuid)
  • order(int)

而在我們的流程中,要先有command跟request才可以建立其中的連結,因此需要先建立commands/requests的api

需要完成的API規格如下 https://www.postman.com/collections/c00ca09e40a2769fd96e

在屬性命名上,屬性名稱主要是camel case,首字為小寫

另外,在api的規範上,參考JSend https://github.com/omniti-labs/jsend

規範如下

  • 成功
    • 定義 要求被成功執行
    • 資料格式如下
{
"status": "success",
"data": {
// 回傳的資料內容
}
}
  • 失敗
    • 定義 資料被正常執行完,發現其中資料有被程式檢查出來的問題時
    • 資料格式如下
{
"status": "fail",
"data": {
// 資料格式不對的回傳內容
}
}
  • 錯誤
    • 定義 資料並沒有被正確的處理,而回傳的錯誤
    • 資料格式如下
{
"status": "error",
"message": "錯誤訊息"
}