@dotcom-可靠性-kit/序列化-请求
串行请求对象的效用函数( E)快递 或者说 来信)以对伐木机,取景引擎友好的方式,并转换为JSON. 此模块是 FT.com 可靠性工具包。 。 。 .
使用量
安装 @dotcom-reliability-kit/serialize-request 作为依附关系:
npm install --save @dotcom-reliability-kit/serialize-request
在代码中包含 :
import serializeRequest from '@dotcom-reliability-kit/serialize-request';
[TIP] 如果您使用此软件包并带有 TypeScript , 我们建议您使用以下设置:
tsconfig.json避免类型错误的文件 :{ "esModuleInterop": true, "module": "nodenext", "moduleResolution": "nodenext" }
serializeRequest
这个 serializeRequest 函数接受类似请求的对象(例如: Express.Request 对象 method 财务报告和审定财务报表 url 属性)并返回一个普通 JavaScript 对象(符合 SerializedRequest 类型包含相关属性。 下面的例子假设: app 是快取应用程序 :
app.get('/fruit/:fruitId', (request, response, next) => {
console.log(serializeRequest(request));
next();
});
// {
// id: 'request137',
// method: 'GET',
// url: '/fruit/feijoa',
// headers: {
// accept: '*/*'
// },
// route: {
// path: '/fruit/:fruitId',
// params: { fruitId: 'feijoa' }
// }
// }
您也可以在普通对象中通过, 如果您已经有一个类似请求的对象:
serializeRequest({
method: 'get',
url: '/hello'
});
配置选项
配置选项可以传递到 serializeRequest 函数作为第二个参数。 它期望一个有下面任何密钥的物体.
serializeRequest(request, {
// Config options go here
});
options.includeHeaders
在序列化的请求对象中包含一系列请求头。 这一定是个 Array 联 合 国 Strings,每个字符串为页眉名. 重要的是,你不包括包括个人识别信息、API密钥或其他特权信息在内的信头.
此选项默认为 :
[
'accept',
'accept-encoding',
'accept-language',
'content-type',
'referer',
'user-agent'
]
使用实例:
serializeRequest(request, {
includeHeaders: [
'accept',
'content-length',
'content-type',
'user-agent'
]
});
默认的套头也可以使用,所以如果想要添加新的包含头则不需要重复. 它可以作为 DEFAULT_INCLUDED_HEADERS数字 :
import serializeRequest, { DEFAULT_INCLUDED_HEADERS } from '@dotcom-reliability-kit/serialize-request';
serializeRequest(request, {
includeHeaders: [
...DEFAULT_INCLUDED_HEADERS,
'my-custom-header'
]
});
SerializedRequest 类型
这个 SerializedRequest 类型文档的返回值 serializeRequest 函数。它将具有以下属性,从给定的请求对象中提取它们.
SerializedRequest.id
这取自于 request.headers['x-request-id'] 总是被扔到一个 String默认 null。 。 。 .
SerializedRequest.method
这取自于 request.method 总是被扔到一个 String 并切换到大写。 默认为 "-"。 。 。 .
SerializedRequest.url
这取自于 request.url 总是被扔到一个 String默认 "/"。 。 。 .
SerializedRequest.headers
这取自于 request.headers 属性,并被过滤到仅包含在 includeHeaders 选项。默认为空对象.
SerializedRequest.route
这是从 request.route.path (字符串)和 request.params (对象)如果它们存在并且符合下列特性: Express 请求对象默认 undefined。 。 。 .
移动
咨询 移徙指南 如果你想要迁移到这个软件包的后期主要版本.
捐款
见 可靠性工具包中心贡献指南。 。 。 .
许可证
凭 麻省理工学院 执照.
版权:"2022","金融时报"有限公司.