本专题将带你从零开始实现一个简单的、RESTFUL 风格的 Todo 服务。包括:JSON 响应及请求、PostgreSQL 的使用、自定义错误的处理、RESTFul 的定义、配置文件、日志的记录等。

在此之前,我们强烈建议你先阅读《漫游 axum》。

模型

我们的 Todo 服务分为两个模型:

  • TodoList:待办事项

  • TodoItem:待办事项的项目

API

我们的 Todo 服务提供以下 API:

请求方式路由说明
GET/todo所有 TodoList
POST/todo为指定的 TodoList 添加 Item
GET/todo/:list_id获取 TodoList 详情
DELETE/todo/:list_id删除指定的 TodoList 及其 Item
PUT/todo/:list_id修改 TodoList
GET/todo/:list_id/items获取 TodoList 关联的 Item
GET/todo/:list_id/items/:item_id获取 TodoList 关联的某个 Item 详情
PUT/todo/:list_id/items/:item_id修改 TodoList 关联的某个 Item 详情
DELETE/todo/:list_id/items/:item_id删除 TodoList 关联的某个 Item 详情

准备工作

代码