使用 REST API 生成 QR 码:一次 POST,即时 SVG
通过一个 POST 请求从任何 URL 或文本生成 QR 代码。 在 100 毫秒内返回 SVG。 免费层,无需安装库,6 个可配置参数。
您的电子商务结帐需要显示每个订单的跟踪 URL 的二维码。 你可以 安装客户端 QR 库,配置画布元素,处理渲染生命周期, 并向您的捆绑包添加 30-40 KB。 或者您可以发送一个 POST 请求并返回一个 SVG。
波托伊 /v1/qr/generate 端点将任何字符串或 URL 转换为可扫描的 QR
代码。 它返回原始 SVG,您可以嵌入 HTML、保存到文件或流式传输为 PDF。 没有 npm
包,没有画布依赖,没有构建步骤。
API 调用
发送带有您要编码的文本的 POST 请求:
响应是原始 SVG 图像(内容类型: image/svg+xml):
该 SVG 在任何尺寸下都可以清晰呈现,因为它是基于矢量的。 将其放入
<img> 标记,将其内联到 HTML 中,或通过管道将其传输到文件。 没有 JSON 解析
需要; 响应主体是 SVG 本身。
参数
端点接受六个参数。 仅有的 text 是必须的:
- 文本 (字符串,必需):要编码的 URL 或文本。 最多支持 ~4,296 字母数字字符。
- 尺寸 (数字,默认 300):宽度和高度(以像素为单位)。 范围:50 至 2000。
-
深色 (十六进制字符串,默认
#000000): 的前景色 二维码模块。 -
浅色 (十六进制字符串,默认
#ffffff):背景颜色。 -
错误修正级别 (字符串,默认
M): L (7%) 之一, M (15%)、Q (25%) 或 H (30%)。 更高的级别可以容忍更多的损坏,但会产生更密集的代码。 - 利润 (数字,默认4):模块中二维码周围的安静区域。 范围:0 到 20。
这是使用所有六个参数的请求:
实际例子
餐厅菜单二维码
在餐桌帐篷上打印二维码,以便食客可以在手机上调出完整菜单。 错误 H 校正可处理磨损和咖啡渍。
活动门票二维码
在每个二维码中编码唯一的门票 ID。 工作人员在门口用智能手机扫描 相机。 纠错 Q 在密度和损伤容限之间提供了良好的平衡 用于打印徽章。
支付链接二维码
生成发票、收据或销售点显示的可扫描付款链接。 的 顾客扫描它并登陆 Stripe 结账页面。
循环中的批量生成
需要产品目录的二维码吗? 循环遍历 URL 列表并将每个 SVG 保存到磁盘。 此 bash 脚本在一秒钟内生成四个 QR 码:
输出:
Node.js 示例:用于订单跟踪的 QR 码
这个 Express 服务器公开了一个 /orders/:id/qr 端点。 当您结帐时
页面或确认电子邮件模板获取此 URL,它会返回一个 SVG QR 代码指向
到订单的跟踪页面。
用法:
端点设置 24 小时缓存标头,因此同一订单的重复请求不会命中 再次调用 API。 在生产中,在此路由前面添加 Redis 或 CDN 以获得更高的流量。
客户端 QR 库与 API:何时使用哪个
当您需要服务器端生成(电子邮件、PDF、收据)时,当您想要 保持前端包较小,或者在后端工作流程中生成二维码时 例如订单处理或票据发行。
当您的应用程序需要离线工作且延迟更重要时,请使用客户端库 比包大小(渲染时间低于 5 毫秒),或者当您构建用户生成的工具时 二维码在浏览器中交互,您不想依赖网络请求 对于每次击键。
要点
每分钟 5 个请求的免费套餐涵盖开发、原型设计和小批量
生产用途。 对于批量生成或高流量应用程序,请在
Authorization: Bearer 标头。 检查
API文档
获取完整的端点参考。
FAQ
- 我需要 API 密钥来生成二维码吗?
- 不需要。免费套餐允许每分钟 5 个请求的匿名访问,并具有基于 IP 的速率限制。 对于生产应用程序或批量生成,请在授权标头中添加 API 密钥以删除速率限制。
- 我可以用 PNG 代替 SVG 吗?
- 将格式参数设置为“base64”以接收 QR 代码作为可嵌入 img 标签中的数据 URI。 API 在所有情况下都会返回基于 SVG 的输出,因为 SVG 与分辨率无关并且在任何尺寸下都会呈现清晰的效果。 如果您需要光栅文件,请使用画布元素转换为 PNG 客户端。
- QR 码的最大数据长度是多少?
- QR 码最多支持约 4,296 个字母数字字符或 2,953 字节的二进制数据。 大多数 URL 和短字符串都在这些限制范围内。 如果您达到上限,请先使用链接缩短器缩短您的 URL。
- 我应该使用哪种纠错级别?
- 对于数字屏幕使用 M(15% 恢复率),当代码密度很重要时使用 L(7%)。 对于可能磨损、折叠或部分被徽标覆盖层覆盖的印刷材料,请选择 Q (25%) 或 H (30%)。
- 我可以自定义二维码的颜色吗?
- 是的。 将 darkColor 和 lightColor 作为十六进制值传递(例如“#1a1a2e”和“#ffffff”)。 确保两种颜色之间有足够的对比度,以便扫描仪能够可靠地读取代码。
开始使用 botoi 构建
150+ 个 API 端点,涵盖查询、文本处理、图片生成和开发者工具。免费套餐,无需信用卡。