当前位置: 首页 > news >正文

食品经营许可证识别API参数详解与最佳实践

适用场景与接口价值

在企业资质审核、供应链合规验证、食品经营许可自动录入等场景中,手动录入许可证信息效率低且易出错。通过调用食品经营许可证识别API,可将图片中的13个关键字段(许可证编号、经营者名称、法定代表人、经营场所、主体业态、经营项目、有效期等)自动提取为结构化JSON,直接对接后端业务系统。

接口能力边界

  • 支持输入:图片URL或Base64编码字符串(最大5MB)
  • 返回字段:共13个(详见下方字段表),覆盖证照核心要素
  • QPS限制:2次/秒,超出会返回限流错误
  • 图片要求:建议清晰、无遮挡、证件四角完整,光照均匀

请求参数详解

Header参数

参数名是否必须类型说明
Content-Typestring固定值application/json

请求体(JSON Object)

字段名是否必须类型说明
keystringAPI密钥(Bearer令牌),也可通过HeaderX-API-Key传递(推荐)
input_typestring图片传入方式:urlbase64
input_datastring图片URL(input_type=url)或Base64编码字符串(input_type=base64,≤5MB)

注意key参数在请求体中为可选,若已在Header中传入X-API-Key则可省略。建议统一通过Header传递,避免请求体泄露密钥。

鉴权方式与密钥传递

该API支持两种鉴权方式:

  1. Header方式:添加X-API-Key请求头,值为您的API密钥。
  2. 请求体方式:在JSON对象的key字段中填入密钥。

推荐使用Header方式,因为请求体的key可能会被日志或代理服务器记录,增加泄露风险。

curl请求示例

示例1:通过图片URL识别

curl -sS \ -X POST \ -H "X-API-Key: YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "input_type": "url", "input_data": "https://example.com/license.jpg" }' \ "https://v1.apizero.cn/api/food-license"

示例2:通过Base64编码图片识别

# 先将图片转为base64(不含换行) BASE64=$(base64 -w0 license.jpg) curl -sS \ -X POST \ -H "X-API-Key: YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d "{ \"input_type\": \"base64\", \"input_data\": \"$BASE64\" }" \ "https://v1.apizero.cn/api/food-license"

请将YOUR_API_KEY替换为实际密钥。若使用请求体传key,则在JSON中添加"key": "YOUR_API_KEY"

返回字段全解析

成功响应(HTTP 200)示例:

{ "code": 0, "message": "success", "data": { "license_number": "JY14012800001234", "operator": "某某餐饮有限公司", "legal_representative": "张三", "premise": "北京市朝阳区某街道1号", "domicile": "北京市朝阳区某街道1号", "main_body": "餐饮服务经营者", "operating_item": "热食类食品制售", "validity_period": "长期", "issuing_authority": "北京市朝阳区市场监督管理局", "issuer": "李四", "daily_supervisor": "王五", "daily_supervisory_authorities": "北京市朝阳区市场监督管理局", "complaints_hotline": "12315" } }

字段含义表

字段名说明示例
license_number许可证编号JY14012800001234
operator经营者名称某某餐饮有限公司
legal_representative法定代表人张三
premise经营场所北京市朝阳区某街道1号
domicile住所北京市朝阳区某街道1号
main_body主体业态餐饮服务经营者
operating_item经营项目热食类食品制售
validity_period有效期长期
issuing_authority发证机关北京市朝阳区市场监督管理局
issuer签发人李四
daily_supervisor日常监督管理人员王五
daily_supervisory_authorities日常监督管理机构北京市朝阳区市场监督管理局
complaints_hotline投诉举报电话12315

注意:若图片中某字段模糊或不完整,返回的对应值可能为空字符串。建议对必填字段做空值校验。

常见错误码与处理

HTTP状态码code字段message原因与处理
4001001参数错误缺少必填参数input_typeinput_data,检查请求体结构
4001002图片格式不支持图片不是JPEG/PNG/WebP格式,或者Base64编码有误(如含换行)
4001003图片过大Base64数据超过5MB限制,建议压缩图片或改用URL方式
4012001鉴权失败API密钥无效或未提供,检查X-API-Key或请求体key是否正确
4293001请求过于频繁QPS超过2次/秒,加入重试退避逻辑(如指数退避,初始等待1秒)
5005000服务内部错误服务端异常,可稍后重试;若持续失败请联系技术支持

工程化最佳实践

1. 图片预处理

  • 裁剪与压缩:若图片包含多余边框或文字,建议先裁剪证件主体区域;JPEG质量可降至80%以减小体积。
  • Base64注意事项:编码时不添加data:image/jpeg;base64,前缀,仅传原始Base64字符串;确保无换行(base64 -w0)。
  • 图片方向:若证件方向不正,识别准确率会下降;可先通过图像旋转纠正。

2. 请求重试与退避

由于QPS限制为2次/秒,高并发场景需加本地限流。推荐使用令牌桶算法控制请求速率。遇到429错误时,建议:

import time import requests def call_api_with_retry(url, headers, payload, max_retries=3): for attempt in range(max_retries): resp = requests.post(url, json=payload, headers=headers) if resp.status_code == 429: wait = 2 ** attempt time.sleep(wait) continue return resp return None

3. 字段校验与补录

  • 某些字段如validity_period可能为“长期”,也可能为具体日期(如“2023-01-01至2028-01-01”)。建议统一解析为结束日期,方便做到期提醒。
  • license_number为空,说明图片质量差或非目标证件,应记录失败原因并人工审核。

4. 安全与密钥管理

  • 将API密钥存储为环境变量或密钥管理服务(如Vault),避免硬编码。
  • 日志中过滤掉X-API-Keykey字段,防止敏感信息泄露。

5. 响应缓存

对于同一张图片重复请求(例如重试时),可利用图片的MD5或URL作为键,缓存识别结果5分钟,减少重复调用。

参考文档

  • 官方文档页:https://apizero.cn/aidocs/food-license
  • 原始Markdown:https://apizero.cn/aidocs/food-license/raw.md
  • 如果对接口有其他疑问,建议查阅文档中的更新日志和FAQ。
http://www.jsqmd.com/news/1254469/

相关文章:

  • 计算机毕业设计之基于Vue的友居租房系统的设计与实现
  • 【Python毕业设计】基于Python的香港历史文脉展示与线上科普平台设计 轻量化地方历史文化科普宣传网站设计与实现(源码+文档+远程调试,全bao定制等)
  • AI大模型核心技术解析:从Transformer到RAG实战
  • 三星发布 2026 年折叠屏产品线:三款新机登场,零部件短缺致价格上涨!
  • 东莞学CREO产品设计有多吃香?CREO和UG到底学哪个?附东莞模具设计学校联系方式大全+橡果教育5大CREO实战班 - 橡果教育Acorn
  • 上了主数据平台还是乱?中翰AI方案让数据治理“不断线”
  • 2026免费去视频水印软件手机电脑合集 侵权风险与工具优缺点指南
  • DP83826以太网PHY芯片LED与GPIO配置实战指南
  • Zed 的选择器多选:当“打开”从一次一个变成批量操作
  • 扩散模型原理与实战:从DDPM到AI图像生成
  • 赤峰面试课程TOP3排名,真实口碑一目了然:2026备考必看的择课指南
  • Context Engineering:AI应用开发的新范式
  • 2026在线去除视频水印用什么工具?手机电脑实操教程
  • 一天之内,谷歌扔出两张底牌,AI JB竞赛烧到了什么程度?
  • 从零构建60FPS 3D瓦片地球渲染引擎:OpenGL性能优化实战
  • 高速ADC系统SYSREF校准原理与实战:从JESD204B同步到抗辐射设计
  • AI健身计数系统:3D姿态估计技术实现精准动作识别
  • 巴斯吸尘器深度评测:16000Pa超强吸力,车载家用全能清洁利器
  • 士模CM2268:Pin-to-Pin兼容AD7606C-16,16位8通道同步采样国产 ADC
  • 2026年AI视频行业的竞争转折点,支持Skill的AI视频生成工具全面解读
  • AI视频生成技术解析与中国市场崛起
  • 从硬编码到热插拔:SagooIoT插件架构如何打破物联网平台的扩展瓶颈
  • Unity对象池技术:从原理到实战,彻底解决GC卡顿与性能瓶颈
  • API Key 认证:从基础到生产级密钥生命周期管理
  • AI教材写作工具:解决查重与效率难题的智能方案
  • SQL优化没那么难,这些技巧我帮你踩过坑了地的实战技巧
  • .NET现代化构建方案:容器化与增量编译实战
  • AD7616可靠国产替代 | 士模CM2249,更优线性度/低谐波失真,电力多通道采集自主可控优选
  • 有哪些BI系统品牌
  • Unity Input System实战:构建可动态配置的自定义按键绑定系统