设计一个简单的 web service

坚持 REST 的准则设计一个 web service 或者 API 的任务就变成一个标识资源被展示出来以及它们是怎样受不同的请求方法影响的练习。

比如说,我们要编写一个待办事项应用程序而且我们想要为它设计一个 web service。要做的第一件事情就是决定用什么样的根 URL 来访问该服务。例如,我们可以通过这个来访问:

http://[hostname]/todo/api/v1.0/

在这里我已经决定在 URL 中包含应用的名称以及 API 的版本号。在 URL 中包含应用名称有助于提供一个命名空间以便区分同一系统上的其它服务。在 URL 中包含版本号能够帮助以后的更新,如果新版本中存在新的和潜在不兼容的功能,可以不影响依赖于较旧的功能的应用程序。

下一步骤就是选择将由该服务暴露(展示)的资源。这是一个十分简单地应用,我们只有任务,因此在我们待办事项中唯一的资源就是任务。

我们的任务资源将要使用 HTTP 方法如下:

  1. ========== =============================================== =============================
  2. HTTP 方法 URL 动作
  3. ========== =============================================== ==============================
  4. GET http://[hostname]/todo/api/v1.0/tasks 检索任务列表
  5. GET http://[hostname]/todo/api/v1.0/tasks/[task_id] 检索某个任务
  6. POST http://[hostname]/todo/api/v1.0/tasks 创建新任务
  7. PUT http://[hostname]/todo/api/v1.0/tasks/[task_id] 更新任务
  8. DELETE http://[hostname]/todo/api/v1.0/tasks/[task_id] 删除任务
  9. ========== ================================================ =============================

我们定义的任务有如下一些属性:

  • id: 任务的唯一标识符。数字类型。
  • title: 简短的任务描述。字符串类型。
  • description: 具体的任务描述。文本类型。
  • done: 任务完成的状态。布尔值。

目前为止关于我们的 web service 的设计基本完成。剩下的事情就是实现它!