@crvouga/mockingbird-service-unsplash (英语)
本地模拟器。 真正的API合同. 部分 嘲笑鸟。 。 。 .
WIP Unsplash v1 有决定性结果和合成本地图像字节的相片搜索.
安装
bun add @crvouga/mockingbird-service-unsplash
使用量
import { createApi } from "unsplash-js"
import { createServer } from "@crvouga/mockingbird-service-unsplash/server"
const server = await createServer()
// The Unsplash SDK your application already uses. Only its base URL changes.
const unsplash = createApi({ accessKey: "mock_unsplash_key", baseUrl: server.url })
const { data } = await unsplash.GET("/search/photos", {
params: { query: { query: "mock", orientation: "landscape", per_page: 9, page: 1 } },
})
const image = await fetch(data?.results[0]?.urls.regular ?? "") // synthetic local image bytes
await server.close()
对于单独的申请程序,运行 mockingbird-unsplash serve --port 12125。 。 。 .
设置 SDK 的 baseUrl (或原始客户端的搜索来源) http://localhost:12125· ;
不存在标准供应商基URL环境变量。 接受 client_id=mock_unsplash_key
或者说 Authorization: Client-ID mock_unsplash_key配置其他合成密钥
accessKeys。 。 。 .
路线和固定装置
GET /search/photos: 精确的不敏感大小写比对每个固定的queries。 。 。 . 过滤方向, 返回total, (中文(简体) ),total_pages, (中文(简体) ),results页:1 信头和稳定的插入顺序页。 默认值: 第1页,每页10;最多30. 未知的查询产生空页 。 无效备选案文文本和缺少/无效作者姓氏 ; 归属链接来自定着.GET /photos/{id}/download: 返回{url}指向局部图像和增量 命名空间范围下载检查状态。 没有发送真正的分析事件 .GET /__admin/blobs/{id}: 以配置的图像内容类型返回固定字节. 这是当地的运输站,不是Unsplash供应商终点站.
过 photos: PhotoFixture[] 到种子查询匹配、归属、取向和
imageBase64编号 :contentType。默认是用于查询的合成 PNG mock,不是真实的
图片。 只使用合成或拥有的字节. URL 保存选中的名称空间和
自定义 adminPrefix,因此浏览器可以在不复制请求的证书的情况下加载它们.
控件
共享 /__admin/state/photos 财务报告和审定财务报表 /__admin/state/downloads 路线检查/种子状态.
重置还原了构造器固定器并清除了下载计数. 时间线 时钟,
请求日记,延迟和一发错误规则使用共享管理员合同.
命名空间由 x-mockingbird-namespace, (中文(简体) ), /__admin/ns/{name},或绘图
通过 PUT /__admin/credentials。查询证书不放入日志
或页形链接; 跟踪链接时, 重新应用认证 .
预设 : unauthorized (401个), rate_limited (说明403配额错误),
server_error (503个), connection_drop这些是决定性故障控制;
配额核算不是活的。 通俗的断层也可以被脚本429和后期.
没有网友.
接受测试涵盖所有三种要求的行为, HTTP 上的本地字节, 自定义
前缀/名空间图像 URL、重置、断层和证书编辑。 财产测试覆盖
既采用对等化JSON操作,又检测出差异. bun scripts/parity.ts 需求
UNSPLASH_ACCESS_KEY 并仅探测空元数据搜索,而不下载图像.
尚未实行活账户对等.
故意不模拟
真正的搜索/索引/排行、任意部分文本匹配、制作相片内容、, 图像调整大小、增加搜索过滤器、用户 OAuth、编辑/收集和实际 定额核算。 成功答复的费率限制头是固定固定值. 只有第281期所消耗的反应字段是模拟的;这不是完整的相片对象.
API 密码
UnsplashAPI: 用fetch, (中文(简体) ),reset, (中文(简体) ),photos财务报告和审定财务报表downloads藏书.createRuntime:共享管理员,名空间,时钟,故障和日记运行时间.UNSPLASH_NAMESPACE:服务名.UNSPLASH_PRESETS:确定性命名的断层控制.DEFAULT_PHOTOS:合成初期固定.accessKey:读取客户端-ID头或客户端 id查询证书.document, (中文(简体) ),operationIds, (中文(简体) ),supportedOperationIds:生成合同元数据.createServer, (中文(简体) ),serveTarget, (中文(简体) ),DEFAULT_PORT从./server: 节点服务器/CLI目标 (默认端口12125).
公共类型 : PhotoFixture, (中文(简体) ), UnsplashAPIOptions, (中文(简体) ), OperationId, (中文(简体) ), SupportedOperationId。 。 。 .