@crvouga/ mockingbird-service-life文件 页面存档备份,存于互联网档案馆
本地模拟器。 真正的API合同. 部分 嘲笑鸟。 。 。 .
工作在建 LifeFile药房订单网关 用于合成融合测试. 这是一个 最好猜,不是甲骨文验证它模拟了订单提交、一意孤行、可配置的航运 拒绝,取消和基础-自动数据推出而不与药店联系.
安装
bun add -d @crvouga/mockingbird-service-lifefile
使用量
在本地服务器上标注您的应用程序的 LifeFile 基础 URL 。 保存真正的药房证书 和病人的检测结果.
import { createServer } from "@crvouga/mockingbird-service-lifefile/server"
const server = await createServer()
try {
const response = await fetch(`${server.url}/order`, {
method: "POST",
headers: {
authorization: `Basic ${btoa("test:test")}`,
"content-type": "application/json",
"X-Vendor-ID": "1",
"X-Location-ID": "1",
"X-API-Network-ID": "1",
},
body: JSON.stringify({
message: { id: 1 },
order: { general: { referenceId: "synthetic-order" }, shipping: { state: "AZ" } },
}),
})
if (!response.ok) throw new Error(`Order refused: ${response.status}`)
const result = await response.json()
if (result.type !== "success" || !result.data?.orderId) {
throw new Error(result.message ?? "Order rejected")
}
console.log(result.data.orderId)
} finally {
await server.close()
}
证据和选定的合同
公众 启示药整合实例
为lifeFile 命令 API 提供主集成源: 基本认证, 三
整数 X-* 信头,命令创建,状态更新和一个数据Push接收器. 这是药店的
整合实例,并非完整的供应商规格。 报告消费者的客户和
响应计划 {type, message, data} 信封内, data.orderId数字 message.id, (中文(简体) ),
order.general.referenceId 财务报告和审定财务报表 order.shipping.state 字段.
没有发现供应商现场回应。 同上,拒绝状态/信封细节,重复 取消处理、航运限制和推进时间是决定性的模拟者选择. 他们是 最好的猜测,不是甲骨文验证航运限制是配置的固定装置; 默认拒绝列表是空的,没有主张全球供应商运输政策.
POST /order 返回命令编号 data.orderId; 重复一个 message.id 重新使用其标识.
认证和信头/机构验证失败不会产生命令 。 模拟器存储
命令元数据,而不是病人、处方者或处方机构.
PUT /order/{id}/status 需要明确配置 cancelStatus。没有它,模拟器
返回一个不支持的明显错误(HTTP 501),没有状态变化。 这是模拟器
限制,不是观察到的生命文件错误。 用它, 配置状态是取消
定点合同; 未知订单和其他要求的状态在确定性上失败.
故意不模拟
实际处方处理、药房的完成、临床鉴定、付款、库存、, 特定账户的航运政策、生产证书和供应商综合计划. 报告所标注的JavaScript SDK没有官方的;接受使用取取取的消费者. 不要用这个模拟器来证明真正的药店接受或取消了订单.
设置和测试控制
createRuntime({settings, webhooks}) 财务报告和审定财务报表 createServer({settings, webhooks}) 接受:
| 设置 | 默认 | 行为 |
|---|---|---|
accounts | [] | 没有固定装置,请接受任何非空的 Basic username/password. 否则需要精确配置 {username,password} 双人. |
refusedShippingStates | [] | 拒绝匹配 order.shipping.state 带有错误信封且未创建命令的值. |
cancelStatus | null | 配置取消请求使用的确切状态字符串; 否则状态更新返回 501 . |
pushFormat | "consumer" | 暂定目标 {orderId, referenceId?, status}· ; "vendor" 选择以 orderId, (中文(简体) ), referenceId, (中文(简体) ), rxStatus, (中文(简体) ), rxStatusDateTime 根据公共药房演示。 先知也没有被证实. |
pushBeforeResponse | false | Flush Data Push在启用时完成订单响应前的发送. |
配置 webhooks: {url, username, password, fetch?} 为接收器。 可选 fetch
允许测试提供本地接收器。 生产证书是不必要的。 命令开始于
Received; 配置的取消过渡到 Cancelled自动推送和
状态过渡是模拟器固定行为。 重复命令提交重用 ID
创建另一个命令或发送第二个推动.
标准管理员前缀为 /__admin (与 adminPrefix) (中文(简体) ). 服务控制有:
| 路线 | 行为 |
|---|---|
GET /orders | 仅限元数据命令日记. |
GET /settings | 当前设置, 账户密码被省略 . |
PUT /settings | 更新选定命名空间的已验证设置 . |
POST /orders/:id/push | 改变状态并排队推动;身体 {status, duplicate?, badCredentials?}。 。 。 . |
这些路线与管理员前缀相对. 标准控制包括: /requests, (中文(简体) ), /state, (中文(简体) ),
/faults, (中文(简体) ), /webhooks/events 财务报告和审定财务报表 /webhooks/flush。 Webhook 日记记录交付元数据
和有效载荷中只包含建模命令元数据。 请求日志不保留命令正文 .
错误预设为 reject (商业错误信封), server_error (500个), malformed (无效)
贾森, duplicate_push 财务报告和审定财务报表 bad_push_credentials; 标准 timeout 还提供。 应用
一通经 POST /__admin/faults 与 {"preset":"reject"}。对于特定参考,使用
{"operationId":"CreateOrder","requestBody":{"order.general.referenceId":"synthetic-order"},"effect":"reject"}。 。 。 .
同名匹配者瞄准500/malform/超时规则. 拒绝创建的过失不留下命令
或推后脚. 重复和无效的驱动控制 有意进行接收器处理 .
命名空间 : x-mockingbird-namespace,按标准
/__admin/ns/<name>/ 前缀,或由 Basic 用户名在映射它之后
PUT /__admin/credentials。快照、重置和时光线历史使用共享运行时间.
API 密码
包根导出 LifeFileAPI, (中文(简体) ), createRuntime, (中文(简体) ), LIFEFILE_NAMESPACE, (中文(简体) ), basicUsername, (中文(简体) ),
LIFEFILE_PRESETS, (中文(简体) ), document, (中文(简体) ), operationIds 财务报告和审定财务报表 supportedOperationIds。 。 。 . basicUsername(request)
提取证书命名空间载体. LifeFileAPI 用品 fetch, (中文(简体) ), reset 财务报告和审定财务报表 transition· ;
createRuntime 添加标准管理员控件和 webhooks 中枢.
公共类型是: LifeFileAPIOptions, (中文(简体) ), PushOptions, (中文(简体) ), OrderRecord, (中文(简体) ), Settings, (中文(简体) ), OperationId, (中文(简体) ),
SupportedOperationId, (中文(简体) ), LifeFileRuntime 财务报告和审定财务报表 LifeFileRuntimeOptions。 。 。 .
这个 ./server 进口 createServer, (中文(简体) ), serveTarget 财务报告和审定财务报表 DEFAULT_PORT (8819),加上类型
LifeFileServer 财务报告和审定财务报表 LifeFileServerOptions。 。 。 . createServer 监听本地端口
默认和返回 {url, close, runtime, ...}编辑 mockingbird-lifefile serve CLI 使用
固定默认端口. serveTarget 支持车队托管和共享管理员控制.
现场平等
bun run parity:service -- lifefile 报告缺少 沙盒证书的名称。 需要的密钥
为: LIFEFILE_API_URL, (中文(简体) ), LIFEFILE_USERNAME, (中文(简体) ), LIFEFILE_PASSWORD, (中文(简体) ), LIFEFILE_VENDOR_ID, (中文(简体) ),
LIFEFILE_LOCATION_ID 财务报告和审定财务报表 LIFEFILE_API_NETWORK_ID,只存储在 GitHub 动作秘密中或
.env.local. 没有为这项执行工作提供任何资料。 每个模型操作都会影响
真正的药房队列; 等同脚本拒绝变异而不变异 --include-unsafe 还有一个
孤立的沙盒。 未提出现场对等要求.