建立第一个RESTful api server(实作篇)-2(Day14)

在上一步我们建立了一个基础的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": "错误讯息"
}

<<:  [Day 13] 常用数据显示 Table 表格-1(制式版)

>>:  [day15]几个常用的LineAPI

14. Log X Notification x Slack

好想被推播啊 身为一个负责的工程师,当系统有错误的时候,总是想收到即时推播讯息该怎麽做? 上一篇有提...

.NET Core第27天_CacheTagHelper的使用

.net core mvc框架微软有特别封装缓存标签协助程序(CacheTagHelper)。 C...

27 显示覆盖的牌

覆盖的牌 在测试出牌的时候我才想到, 同一回合如果只有我出牌,对方应该是要看不到我出什麽牌才对 我觉...

[Day13] 前往Actions On Google平台试用

接续昨日的DialogFlow对话流设计後, 现在你已经拥有了一个能执行的语音应用程序! 接下来,...

Day 29. 继续来看组件基础 – Components 吧ヾ(*´∀ ˋ*)ノ

欧欧欧,竟然已经到第29天了,时间真的是咻咻咻就过了呢!明天就要结束了,真是感伤(☍﹏⁰) (解脱了...