第 16 课:综合案例

1. 信源熵计算

要求:

  • 创建 entropy 仓库
  • 编写命令行脚本程序,完成信源熵的计算
  • 信源熵的计算公式:H(p) = -p1*log(p1, 2) - p2*log(p2, 2) - ... - pn*log(pn, 2)
  • p1, p2, ..., pn 都是概率,其中,0 <= pi <= 1 and p1 + p2 + ... + pn = 1
  • 要求支持命令行参数输入概率
  • 命令行参数输入概率要支持两种形式:逗号分隔和空格分隔
  • 命令行参数输入形式不能混合,即:同时用逗号和空格分隔,视为错误输入
  • 无命令行参数或者命令行参数不正确时,可以交互输入概率
  • 要求对输入概率进行数据合法性验证
  • 数据非法时,要有明确的错误提示信息
  • 对程序中的通用模块进行封装
  • 对程序中的通用模块用 Mocha 做单元测试,用 Istanbul 做代码覆盖率测试
  • 命令行程序的交互效果,请参考下面的屏幕截图:

    entropy 命令行界面
    图:entropy 命令行界面

2. 待办事项

待办事项 web 应用的服务器端,应用形态:HTTP API。

2.1. 用户接口

登录验证

  • 功能描述:提供登录信息,由服务端验证身份是否合法。如果合法,发放后续访问的令牌。否则,给出错误提示。
  • 接口地址:POST /users/login
  • 请求参数:
字段类型是否必填说明备注
emailstring
passwordstring
  • 返回数据:
字段类型说明备注
codenumber状态码零为正常,非零代表错误
msgstring状态信息错误描述
countnumber记录条数此字段无用
datastring具体数据如果身份验证成功,这个数据是后续访问的令牌

注册账户

  • 功能描述:注册账户。
  • 接口地址:POST /users/signup
  • 请求参数:
字段类型是否必填说明备注
emailstring
passwordstring
  • 返回数据:
字段类型说明备注
codenumber状态码零为正常,非零代表错误
msgstring状态信息错误描述
countnumber记录条数此字段无用
datastring具体数据此字段无用

2.2. 待办事项接口

获取待办事项

  • 功能描述:获取登录当前登录用户的所有待办事项。
  • 接口地址:GET /tasks/
  • 请求参数:
字段类型是否必填说明备注
tokenstring身份验证的令牌token 在 HTTP 请求头中
  • 返回数据:
字段类型说明备注
codenumber状态码零为正常,非零代表错误
msgstring状态信息错误描述
countnumber记录条数
datastring待办事项数组

添加待办事项

  • 功能描述:添加待办事项。
  • 接口地址:POST /tasks/
  • 请求参数:
字段类型是否必填说明备注
tokenstring身份验证的令牌token 在 HTTP 请求头中
contentstring待办事项内容可以是空字符串
folder_idnumber待办事项所属文件夹 id可以为 null
  • 返回数据:
字段类型说明备注
codenumber状态码零为正常,非零代表错误
msgstring状态信息错误描述
countnumber记录条数此字段无用
datastring具体数据此字段无用

修改待办事项

  • 功能描述:修改待办事项的内容或者所属的文件夹或者删除状态,一次操作只能修改三者之一。
  • 接口地址:PUT /tasks/:id
  • 请求参数:
字段类型是否必填说明备注
tokenstring身份验证的令牌token 在 HTTP 请求头中
idnumber待修改待办事项的 id
contentstring新的待办事项内容可以是空字符串
folder_idnumber待办事项所属文件夹 idfolder_id 为零,则待办事项不属于任何文件夹
recycleboolean是否回收待办事项回收待办事项会取消待办事项的删除状态
  • 返回数据:
字段类型说明备注
codenumber状态码零为正常,非零代表错误
msgstring状态信息错误描述
countnumber记录条数此字段无用
datastring具体数据此字段无用

删除待办事项

  • 功能描述:删除待办事项。支持两种删除模式:硬删除(永久删除)和软删除。一次操作只删除一个待办事项,不支持批量删除。
  • 接口地址:DELETE /tasks/:id?permanent=true|false
  • 请求参数:
字段类型是否必填说明备注
tokenstring身份验证的令牌token 在 HTTP 请求头中
idnumber待删除待办事项的 id
permanentboolean是否永久删除permanent = true,永久删除一条待办事项
permanent = false,并不真正删除待办事项,而是设置该待办事项的 deletedTime 字段
  • 返回数据:
字段类型说明备注
codenumber状态码零为正常,非零代表错误
msgstring状态信息错误描述
countnumber记录条数此字段无用
datastring具体数据此字段无用

2.3. 文件夹接口

获取文件夹

  • 功能描述:获取登录当前登录用户的所有文件夹。
  • 接口地址:GET /folders/
  • 请求参数:
字段类型是否必填说明备注
tokenstring身份验证的令牌token 在 HTTP 请求头中
  • 返回数据:
字段类型说明备注
codenumber状态码零为正常,非零代表错误
msgstring状态信息错误描述
countnumber记录条数
datastring文件夹数组

添加文件夹

  • 功能描述:添加文件夹。
  • 接口地址:POST /folders/
  • 请求参数:
字段类型是否必填说明备注
tokenstring身份验证的令牌token 在 HTTP 请求头中
itemstring文件夹名称不可以是空字符串
  • 返回数据:
字段类型说明备注
codenumber状态码零为正常,非零代表错误
msgstring状态信息错误描述
countnumber记录条数此字段无用
datastring具体数据此字段无用

修改文件夹

  • 功能描述:修改文件夹的名称。
  • 接口地址:PUT /folders/:id
  • 请求参数:
字段类型是否必填说明备注
tokenstring身份验证的令牌token 在 HTTP 请求头中
idnumber待修改文件夹的 id
itemstring新的文件夹名称不可以是空字符串
  • 返回数据:
字段类型说明备注
codenumber状态码零为正常,非零代表错误
msgstring状态信息错误描述
countnumber记录条数此字段无用
datastring具体数据此字段无用

删除文件夹

  • 功能描述:删除文件夹,真正删除文件夹,但是不级联删除此文件夹下的待办事项。此文件夹下的所有待办事项的 folder_id 置为 null。
  • 接口地址:DELETE /folders/:id
  • 请求参数:
字段类型是否必填说明备注
tokenstring身份验证的令牌token 在 HTTP 请求头中
idnumber待删除文件夹的 id
  • 返回数据:
字段类型说明备注
codenumber状态码零为正常,非零代表错误
msgstring状态信息错误描述
countnumber记录条数此字段无用
datastring具体数据此字段无用

2018 -  by 王顶. All rights reserved.本站访客人数  人次

results matching ""

    No results matching ""