news 2026/10/8 7:03:00

一条curl拿到真实地址:Address开放API快速上手与Bearer Token认证完整指南

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
一条curl拿到真实地址:Address开放API快速上手与Bearer Token认证完整指南

一条curl拿到真实地址:Address开放API快速上手与Bearer Token认证完整指南

【免费下载链接】addressA self-hosted address and synthetic test-profile generator for 27 countries and regions, built from real open-data streets, administrative areas, coordinates, and postcodes. Supports multilingual output, IP-nearby generation, map previews, and API access. 基于真实开放数据的自托管地址与合成测试资料生成器,覆盖 27 个国家和地区,支持多语言地址、IP 附近生成、地图预览与 API 调用项目地址: https://gitcode.com/gh_mirrors/address4/address

Address 是一个自托管的真实地址与合成测试资料生成器,数据来自官方登记和开放地图,覆盖 27 个国家和地区。通过它的开放 API,你只需一条 curl 命令加一个 Bearer Token,就能拿到带门牌、邮编和坐标的真实地址,非常适合表单测试、物流联调和地理数据演示。本文带你从零完成部署、创建令牌并发起第一次生成请求。

为什么选 Address 开放 API 拿测试地址

随机字符串拼出来的地址过不了真实校验,而 Address 返回的每一条地址都真实存在:

  • 来源可追溯:地址来自官方登记、OpenStreetMap 等开放数据,附带来源与验证证据;
  • 严格筛选:指定城市、区县后范围内无数据会明确报错,不会悄悄换成邻近地区;
  • 配套测试资料:同一条请求还附带合成的人物、银行卡、工作等测试数据,且与真实地址无关;
  • 无第三方密钥也能跑:不配置任何平台密钥即可使用开放数据源,密钥仅用于扩充数据或启用在线翻译。

第一步:用 Docker Compose 部署并确认服务就绪

生产部署只支持 docker-compose.yml 一种方式,应用、PostgreSQL、迁移与同步服务一次拉起:

git clone https://gitcode.com/gh_mirrors/address4/address cd address docker compose up -d

然后确认服务就绪(这两个端点无需令牌,是鉴权体系之外的健康检查):

curl -fsS http://127.0.0.1:8787/api/v1/ready # => {"status":"ready"}

💡 首次同步大型国家(如美国、法国)建议 8 GB 以上内存,同步完成前不影响 API 使用。

第二步:在管理后台创建 Bearer Token

  1. 浏览器打开http://127.0.0.1:8787/admin/,用初始密码admin登录后按提示修改管理员密码;
  2. 进入左侧Security → API Tokens(接口令牌);
  3. 新建令牌,设置:
    • 权限范围(scope):read(只读)或generate(可生成);
    • 限速:每分钟请求数上限;
    • 到期时间:到期后令牌自动失效。

创建成功后会弹出一个一次性显示的令牌明文窗口,请立即复制保存——之后列表里只能看到掩码。令牌在数据库中以哈希形式存储,生成逻辑见 server/control/security.ts,编辑界面实现见 src/components/admin/security.tsx。

第三步:一条 curl 拿到真实地址

把刚才的令牌放进Authorization头,请求/api/v1/generate:

curl -fsS "http://127.0.0.1:8787/api/v1/generate?country=CN&city=深圳" \ -H "Authorization: Bearer YOUR_API_TOKEN"

响应核心结构(节选):

{ "data": { "country": "CN", "filters": { "city": "深圳" }, "result": { "address": { "formattedAddress": "广东省深圳罗湖深南东路2671号金安大厦2栋4单元602室", "matchLevel": "premise", "propertyType": "residential", "coordinates": { "latitude": 22.54, "longitude": 114.13 } }, "profile": { "…": "合成测试资料" } } } }

几个值得留意的字段:

字段含义
matchLevel地址精度:street/premise(门牌)/subpremise(门牌以下单元)
propertyType仅在存在独立住宅证据时才为residential
addressVariants原文、英文、简体中文等多语言版本
evidence数据来源与验证证据

高频参数速查:筛选、复现与 IP 附近生成

参数用法场景
city/region/district/postcode?city=深圳按名称筛选,每项最多 300 字符
cityId等*Id参数传/locations/*返回的 ID按 ID 精确筛选,优先使用
residential?residential=true只要带住宅证据的地址
seed?seed=demo-01相同种子复现同一条地址,方便回归测试
mode=ip-region?mode=ip-region&ip=8.8.8.8按指定 IP 所在地区生成“附近”地址
strategyrandom/instant默认random

⚠️ 筛选是严格的:所选范围内没有合格地址时返回NO_POOL_COVERAGE错误,而不会退而求其次。

批量生成与地区搜索

批量生成(一次最多 50 条,unique: true保证不重复):

curl -fsS "http://127.0.0.1:8787/api/v1/generate/batch" \ -H "Authorization: Bearer YOUR_API_TOKEN" \ -H "Content-Type: application/json" \ -d '{"count":20,"filters":{"country":"DE","city":"Berlin"},"options":{"unique":true}}'

地区搜索(先搜到城市,再把返回的id传给/generate):

curl -fsS "http://127.0.0.1:8787/api/v1/locations/search?country=CN&field=city&q=南" \ -H "Authorization: Bearer YOUR_API_TOKEN"

哪些国家现在能生成?

调用GET /api/v1/countries可看到每个国家当前可生成的地址数,GET /api/v1/availability则只列出“现在就能生成”的国家。管理端有对应的数据监控页,可按国家查看同步完成度:

认证与错误处理:401、429 与错误码

现象含义处理
401令牌缺失、无效或已过期核对Authorization: Bearer …头,检查权限范围是否覆盖该操作
429+Retry-After: 60超出令牌限速按响应头等待后重试
INVALID_COUNTRY国家代码不支持用/countries查询支持的 27 国代码
NO_POOL_COVERAGE所选范围无合格地址放宽筛选条件,或改用/locations/search确认地区写法
IP_LOCATION_UNAVAILABLEIP 无法解析到地区换用ip参数显式指定

错误统一为{ "error": { "code", "message" } }结构,请依据error.code写逻辑,不要解析message文本。

进阶:多语言地址与完整参数表

  • 地址翻译:POST /api/v1/address-translation可将地址译为en、zh-CN、ja等 9 种语言,门牌号、邮编等数字始终保留;
  • 交互式文档:服务运行后访问/zh-CN/api/页面,或直接拉取/api/v1/openapi.json导入 API 工具;
  • 第三方密钥:地图与翻译平台密钥均为可选项,在管理后台“地图密钥 / 在线翻译”中添加,说明见 docs/API_KEYS.zh-CN.md。

延伸阅读

文档 / 模块内容
docs/API.zh-CN.md全部端点、参数、批量生成与错误码
docs/API_KEYS.zh-CN.md各平台密钥的用途与添加方式
docs/DEPLOYMENT.zh-CN.md反向代理、升级与备份恢复
server/control/security.ts令牌生成、哈希与密钥加密实现
src/components/admin/security.tsx管理后台令牌管理界面

至此,你已经用一条 curl 从 Address 开放 API 拿到了可追溯来源的真实地址。接下来不妨试试seed复现、批量生成,或把/countries接到你的测试流水线里 🚀

【免费下载链接】addressA self-hosted address and synthetic test-profile generator for 27 countries and regions, built from real open-data streets, administrative areas, coordinates, and postcodes. Supports multilingual output, IP-nearby generation, map previews, and API access. 基于真实开放数据的自托管地址与合成测试资料生成器,覆盖 27 个国家和地区,支持多语言地址、IP 附近生成、地图预览与 API 调用项目地址: https://gitcode.com/gh_mirrors/address4/address

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/8 7:01:18

工业级电源路径保护:TPS259483与PIC18F87K22协同设计

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/10/8 6:56:50

把 GEO / AI 落地工作台拆成五层:工具能解决什么、不能解决什么、什么时候才需要私有化部署

先说结论:工具只是工作台,不是结果制造机。 选型之前,先把一条完整链路拆开看——哪些层可以用工具提效、哪些层必须由人判断、哪些层一旦涉及内部系统和客户数据就要单独评估权限与边界。 顺序反了,最常见的结局是:工…

作者头像 李华