Menu
CoddyTech

资源与 URL

本课属于 Coddy Node.js 学习旅程的“REST API”单元。第 1 课,共 25 课。

其他程序员会在自己的代码中调用你的 API,所以 API 地址必须容易猜到。大多数 Web API 都遵循一种叫作 REST 的风格:每个地址都指向一个事物,也就是一个资源,而 HTTP 方法则说明要对它执行什么操作。

GET    /api/invoices      the list of invoices
GET    /api/invoices/7    invoice 7
POST   /api/invoices      add an invoice
DELETE /api/invoices/7    remove invoice 7

路径中放的是名词,绝不放动词。使用 /api/getInvoices 和 /api/deleteInvoice?id=7 时,客户端必须为每种操作学习一个新词。挂载在 app.use('/api/invoices', invoices) 上的路由器会处理这两个地址:它的 '/' 路由对应列表,'/:id' 路由对应一张发票。找不到匹配项的 ID 会返回带有 JSON 错误的 404 响应,因此客户端可以像读取其他响应一样读取它。

challenge icon

挑战

简单
  • 在 server.js 中将路由器挂载到 /api/tasks。
  • GET /api/tasks 返回 store.js 中的数组。
  • GET /api/tasks/:id 返回一个任务;如果任务不存在,则返回 404 和 { "error": "Task not found" }。

点击运行,然后发送 GET /api/tasks、GET /api/tasks/2 和 GET /api/tasks/99。

亲手试试

import { Router } from 'express';
import { tasks } from '../store.js';

const router = Router();

// 添加一个获取完整任务列表的路由,再添加一个获取单个任务的路由

export default router;
quiz icon自我测试

这节课包含一个小测验。开始学习即可作答,并记录你的进度。

REST API中的所有课

自己练习: Express 在线编辑器