网易首页 > 网易号 > 正文 申请入驻

用Express.js设计REST API:新手也能上手的实战指南

0
分享至

想象你走进一家餐厅。你不会冲进厨房自己炒菜,而是告诉服务员想吃什么,然后等着上菜。这位服务员,就是你的API。

这篇指南要把你从"听说过REST"变成能独立搭建专业级API的开发者。我们以"用户管理"为例,用Express.js写出现代、简洁、能直接用在生产环境的代码。没有废话,直接上手。


API全称Application Programming Interface(应用程序编程接口),本质是一份"契约"——让两个软件互相通信的规则。客户端(React应用、手机App或Postman)发请求,服务器处理后返回响应。就像外卖App:你下单→餐厅做饭→骑手送餐。你不需要知道厨房怎么运作,只要结果。


REST是Representational State Transfer的缩写,2000年由Roy Fielding提出。它不是协议,而是一种架构风格。RESTful API用标准HTTP方法操作资源,核心特点有四个:无状态(每个请求自带全部信息,服务器不记前账)、用HTTP方法当动词、资源用名词做URL、支持缓存和分层架构。REST能赢,就赢在一个"简"字——简单、可扩展、和Web天生一对。

在REST世界里,万物皆资源,通常是名词:用户、文章、商品、订单。集合路由用复数形式:/users代表所有用户,/users/42代表第42号用户。业内惯例是坚持用复数,读起来顺,也是行业标准。

HTTP方法对应日常动作,以用户资源为例。GET是获取数据,安全且幂等——问服务员"菜单有什么"或"我的菜好了吗",问多少次结果一样。代码实现上,GET /users返回全部用户,GET /users/:id返回单个用户,找不到就抛404。

POST是创建资源,非幂等——点一份牛排和点两份,结果不同。对应代码是POST /users,接收客户端传来的用户数据,新建记录后返回201状态码和创建好的对象。

PUT是完整更新,幂等——把订单从"三分熟牛排"改成"五分熟牛排",改多少次结果相同。PATCH是局部更新,只改部分字段——比如只把配菜从薯条换成沙拉。DELETE顾名思义,删除资源,也是幂等——删一次和删十次,结果都是没了。


状态码是API的"表情"。200 OK表示成功,201 Created表示创建成功,204 No Content表示删除成功但无返回体。400 Bad Request是客户端传参错误,401 Unauthorized是没登录,403 Forbidden是权限不够,404 Not Found是资源不存在,500 Internal Server Error是服务器内部出错。用好状态码,前端开发者会感谢你。

路由设计要干净。避免/ getUserById这种动作式命名,坚持用/users/:id。嵌套资源控制在两层以内,比如/users/42/posts合理,/users/42/posts/3/comments/5/replies就太深的。版本号放URL开头,如/v1/users,方便未来升级不 breaking 现有客户端。

Express.js的代码结构也有讲究。把路由、控制器、模型分层:routes/放路由定义,controllers/放业务逻辑,models/放数据操作。中间件处理通用任务——验证身份、记录日志、统一错误格式。async/await处理异步,配合try-catch包裹,别让未捕获的Promise rejection 崩溃整个服务。

最后几个实战细节。请求体大小限制要设,防止恶意大文件拖垮服务。CORS配置要精确,开发环境宽松,生产环境白名单。环境变量管理密钥,绝不在代码里硬编码数据库密码。日志用结构化格式(JSON),方便后续分析。

从"听过REST"到"能写生产级API",差距就在这些细节里。Express.js的极简哲学让你快速起步,但真正的专业度体现在状态码的准确、路由的语义清晰、错误的统一处理。现在打开编辑器,用这些原则重写你上一个项目的API接口——你会惊讶于代码变得多清爽。

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
维生素B12立大功!研究发现:老人吃维生素B12,或能缓解5慢性病

维生素B12立大功!研究发现:老人吃维生素B12,或能缓解5慢性病

健康之光
2026-05-11 13:33:31
大唐订单破10万!比亚迪快把自己笑死了

大唐订单破10万!比亚迪快把自己笑死了

ZAKER新闻
2026-05-08 20:47:05
公交集团正式员工已经躺平不了了,想要混到退休不太可能

公交集团正式员工已经躺平不了了,想要混到退休不太可能

娱乐圈见解说
2026-05-09 00:23:44
5小时空等耗死三条人命!

5小时空等耗死三条人命!

新动察
2026-05-09 11:17:26
女子车祸住院遭男医生侵犯,录下全过程并主动反问,为何不立案

女子车祸住院遭男医生侵犯,录下全过程并主动反问,为何不立案

一丝不苟的法律人
2026-05-11 11:45:38
5月11日31股成交额超过百亿,包括新易盛、中际旭创、寒武纪、澜起科技、胜宏科技等

5月11日31股成交额超过百亿,包括新易盛、中际旭创、寒武纪、澜起科技、胜宏科技等

金融界
2026-05-11 16:02:16
我穿便装到妻子家过年,被厅长大舅哥使唤,警卫员送来文件他愣了

我穿便装到妻子家过年,被厅长大舅哥使唤,警卫员送来文件他愣了

千秋文化
2026-05-08 10:29:06
特朗普访华名单确定,国务卿鲁比奥也在其中,欲拿台湾问题做筹码

特朗普访华名单确定,国务卿鲁比奥也在其中,欲拿台湾问题做筹码

聚焦瞬间
2026-05-10 13:47:15
曼城别幻想了!阿森纳1-0后争冠已无对手,后3场全胜=创一神迹

曼城别幻想了!阿森纳1-0后争冠已无对手,后3场全胜=创一神迹

体育知多少
2026-05-11 07:22:34
接棒张成中 河北省委常委常斌履新唐山书记

接棒张成中 河北省委常委常斌履新唐山书记

新浪财经
2026-05-11 17:27:02
冲上热搜!突然收到地震局短信,很多人吓一跳!上海明天也有,莫慌莫慌

冲上热搜!突然收到地震局短信,很多人吓一跳!上海明天也有,莫慌莫慌

上观新闻
2026-05-11 14:58:22
母亲生病66个电话催我转15万,我刚出发,母亲:用不着回来

母亲生病66个电话催我转15万,我刚出发,母亲:用不着回来

茶余饭后故事会
2026-05-10 12:22:22
A股:大家系好安全带了,不出意外的话,明天周二或将再次历史重演?

A股:大家系好安全带了,不出意外的话,明天周二或将再次历史重演?

趋势清风侠
2026-05-11 16:42:37
29岁中国工程师背叛马斯克,套现700万,偷走核心代码投奔死对头

29岁中国工程师背叛马斯克,套现700万,偷走核心代码投奔死对头

阿器谈史
2026-05-10 04:03:40
刘涛雨中跪拜妈祖,一道光打下来,福建人彻底信了

刘涛雨中跪拜妈祖,一道光打下来,福建人彻底信了

TVB的四小花
2026-05-10 10:38:33
突破4200点!沪指创近11年新高,接下来该买什么?

突破4200点!沪指创近11年新高,接下来该买什么?

小白鸽财经
2026-05-11 11:11:48
日媒:桥本帆乃香的削球如蝴蝶起舞般赏心悦目,已成为国乒重点研究对象

日媒:桥本帆乃香的削球如蝴蝶起舞般赏心悦目,已成为国乒重点研究对象

兰亭墨未干
2026-05-11 19:11:22
谢霆锋张柏芝上船当P友!?

谢霆锋张柏芝上船当P友!?

八卦疯叔
2026-05-11 10:00:14
人一旦有了体系,做什么都会成功

人一旦有了体系,做什么都会成功

细说职场
2026-05-10 09:47:15
50岁李小冉机场吃面,褪去滤镜才懂,普通人的衰老藏不住

50岁李小冉机场吃面,褪去滤镜才懂,普通人的衰老藏不住

梦想的旅途照进现实
2026-05-09 18:40:12
2026-05-11 19:43:00
全栈遛狗员
全栈遛狗员
白天跟需求对线,晚上在小区遛狗。
2546文章数 63关注度
往期回顾 全部

科技要闻

黄仁勋:你们赶上了一代人一次的大机会

头条要闻

媒体:中美元首即将北京会晤 美方一细节耐人寻味

头条要闻

媒体:中美元首即将北京会晤 美方一细节耐人寻味

体育要闻

梁靖崑:可能是最后一届了,想让大家记住这个我

娱乐要闻

“孕妇坠崖案”王暖暖称被霸凌协商解约

财经要闻

多重催化剂共振,人民币汇率升破6.8

汽车要闻

吉利银河“TT”申报图曝光 电动尾翼+激光雷达

态度原创

家居
房产
艺术
公开课
军事航空

家居要闻

多元生活 此处无声

房产要闻

产业赋能教育!翰林府与北师大的这场签约,绝不那么简单!

艺术要闻

陆抑非写竹,笔力遒劲

公开课

李玫瑾:为什么性格比能力更重要?

军事要闻

特朗普:伊朗的回应“完全不可接受”

无障碍浏览 进入关怀版