RESTful API 设计中,路径通常是由小写字母和连字符组成的。这是因为 URL 路径大小写不敏感,让路径全部采用小写字母,有利于提升 API 可读性,降低歧义。但是,如果用户查询一个不存在的路径时,服务器将返回错误页面。为了解决这个问题,可以借助 restify-normalize,这是一个用于规范化 restify 路径的 NPM 包,下面就来介绍一下 restify-normalize 的使用教程。
安装 restify-normalize
使用时,需要先将 restify-normalize 安装到你的项目中:
npm install restify-normalize --save
使用 restify-normalize
导入 restify-normalize 并使用 server.pre
方法进行注册:
const restify = require('restify'); const normalizePath = require('restify-normalize'); const server = restify.createServer(); server.pre(normalizePath());
这将会将所有不规范的 URL 路径转换为规范格式,比如路径中的大写字母将会被转换为小写字母,路径中的多个连字符会被转换为一个,以及移除路径结尾处的斜杠等。
使用示例
const restify = require('restify'); const normalizePath = require('restify-normalize'); const server = restify.createServer(); server.pre(normalizePath()); server.get('/user/:id', (req, res, next) => { res.send(`GET /user/${req.params.id}`); next(); }); server.get('/api/reg/:id?', (req, res, next) => { res.send(`GET /api/reg/${req.params.id}`); next(); }); server.listen(8080, () => { console.log('%s listening at %s', server.name, server.url); });
启动服务器,使用如下命令:
node app.js
使用任何的 HTTP 客户端应用程序(如 Postman、Curl 等)尝试访问 /api/REG//foo-bar---12---//BAR
和 /User/1
,将会获取如下响应:
GET /api/reg/foo-bar-12/BAR GET /user/1
深度学习和指导意义
规范化 URL 路径是 web 请求中容易被人忽略的细节,然而,在 URL 路径规范化后,这将会对代码阅读性产生极大的影响,同时,对于接口的使用体验也得到了提升。restify-normalize 包就是为了解决此问题而存在的,希望本文介绍的内容能帮助到您。
来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/600673e0fb81d47349e53d19