项目一大,你不可能每条线路都手写一遍同样的包裹规则。
这时就要把规则放进中枢公共标准库。
fastify.addSchema({
$id: 'shipment.base',
type: 'object',
required: ['trackingNo', 'weight', 'destination'],
properties: {
trackingNo: { type: 'string' },
weight: { type: 'number' },
destination: { type: 'string' }
}
})
fastify.post('/shipments', {
schema: {
body: { $ref: 'shipment.base#' }
}
}, async function (request) {
return { received: request.body }
})关系图如下:
公共箱规中心
└── shipment.base
各分拣线
├── POST /shipments -> 引用 shipment.base
├── PUT /shipments/:id -> 引用 shipment.base
└── POST /recheck -> 引用 shipment.base这一步的价值不只是少写代码,而是让整个物流中枢的规则一致。