在客户端实现了状态管理之后,需要设计一下服务器端了。

之前所有的存储都是使用的本地浏览器缓存,这样一不小心清理缓存之后就没了。还是放在服务器上比较合适。

这就需要处理用户注册、登录、session 的问题。不过在现阶段还不是核心的功能,在开发阶段可以只设置单个用户。

本节主要记录一下主要功能的 API 设计。要点就是要以一个统一的结构来规划 API,为之后实际编码提高效率。

参考了之前抱同学大腿做的项目,设计了几个主要 API 的请求 url、数据格式以及返回值。

举几个例子:

Task

Create a task

POST /task

Parameters

{
    "name": "Fruit",
    "desc": "Eat fruit every day",
    "type": "task",
    "isOneTime": false,
    "score": 2,
    "maxTimes": 3
}

When isOneTime is true, maxTimes will be set to 1.

Response

Status: 201 Created

{
    "taskId": 1
}

Delete a task

DELETE /projects/:projectId

Response

Status: 200 OK

{}

Log

Create a log

POST /projects/:projectId/logs

Parameters

{
    "userId": 1,
    "taskId": 1
}

Response

Status: 201 Created

{
    "projectId": 1
}

有了一个详细的文档,就能够在之后的开发阶段快速按计划实现。

在接下来的文章中,将会记录数据库设计、服务端结构以及 API 开发测试。

系列文章:

React + MobX + Electron + Node.js + MongoDB 全栈项目开发实践(零)前言

React + MobX + Electron + Node.js + MongoDB 全栈项目开发实践(一)

React + MobX + Electron + Node.js + MongoDB 全栈项目开发实践(二)允许 decorator

React + MobX + Electron + Node.js + MongoDB 全栈项目开发实践(三)使用 MobX 实现流畅数据流