构建失物招领 API 是一门 Go 实践项目课程,适合已经掌握语言基础、希望通过 HTTP 提供实用数据的学习者。你将完成一个社区失物目录的只读 API,再通过准备好的网站搜索物品并查看详情。
两个引导实验带你从能正常返回一件物品的样例,逐步完成完整目录响应、可复用处理函数、搜索和明确的错误响应。一个独立挑战要求你将同样的契约应用到另一个失物招领点。每个单元都有独立准备的环境和数据,不依赖上一实验的文件。预计需要约 120~160 分钟;这是包含阅读和普通纠错的作者估计。
你将学到什么
完成本课程后,你将能够:
- 将请求路径和方法对应到 Go HTTP 处理函数与 JSON 响应;
- 返回完整目录,并按 ID 识别单件物品,即使它们名称相同;
- 组合类别与关键词筛选,使结果同时满足两个条件;
- 区分空结果列表、无效请求、物品不存在和不支持的方法;
- 使用
httptest测试处理函数,同时检查状态、响应内容与 JSON 形态; - 使用真实读取 API 的网站,并保留提供的目录和页面。
本课程适合谁
本课程适合准备将熟悉的数据结构与函数组合成小型服务的 Go 学习者。
前置要求: 基本终端导航,以及 Go 结构体、切片、map、函数和模块。课程会在使用前讲解 HTTP 处理、JSON 编码、显式错误处理和处理函数测试。不需要 Web 框架或数据库经验。
学习环境: LabEx 提供 Go、起始代码、目录数据和浏览器中的 WebIDE。使用 Workspace 终端和 Lost and Found 网站编写、试用服务,无需在本地安装 Go。网站、界面标签、命令和程序输出保留英文。
常见问题
我也需要制作网站吗?
网站已经准备好。你的工作是编写提供真实搜索结果和物品详情的 Go API。你会实际使用页面,理解消费端如何依赖 API 响应。
我会使用哪些工具?
项目使用 Go 标准库,包括 net/http、encoding/json 和 httptest,不需要框架、数据库、认证系统或并发写入。
挑战中有什么变化?
目录中的记录、类别和 ID 会变化,其中包含同名物品。你需要独立应用已经练习过的 API 契约。任务仍是只读查询,不包含添加或删除目录记录。


