chore: sync local changes to Gitea

This commit is contained in:
shumengya
2026-06-24 22:10:23 +08:00
parent f5a765a30d
commit c82cc9e1e3
2 changed files with 264 additions and 1 deletions

263
api-docs/doh-api.json Normal file
View File

@@ -0,0 +1,263 @@
{
"info": {
"_postman_id": "a7f3c891-2b4e-5d6c-8e9f-0a1b2c3d4e5f",
"name": "doh-api",
"description": "Cloudflare WorkerDoH 代理、DNS 解析 API、IP 地理信息。\n\n仅使用集合变量无独立环境默认指向生产`{{baseUrl}}`。\n\n- `dohPath`DoH 路径段,默认与 Worker 未配置 `PATH`/`TOKEN` 时一致(`dns-query`)。若部署时通过环境变量修改了路径,请同步改此变量。\n- `token`:当 Worker 配置了 `TOKEN` 时,`/ip-info` 必填;未配置可留空。",
"schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json"
},
"variable": [
{
"key": "baseUrl",
"value": "https://cf-dns.smyhub.com"
},
{
"key": "dohPath",
"value": "dns-query"
},
{
"key": "domain",
"value": "www.google.com"
},
{
"key": "url",
"value": "https://example.com/path"
},
{
"key": "ip",
"value": "1.1.1.1"
},
{
"key": "token",
"value": ""
},
{
"key": "dohServerUrl",
"value": "https://cf-dns.smyhub.com/dns-query"
},
{
"key": "dnsQueryType",
"value": "all"
},
{
"key": "dnsWireBase64url",
"value": ""
}
],
"item": [
{
"name": "DoH",
"item": [
{
"name": "DNS JSON (GET)",
"request": {
"method": "GET",
"header": [
{
"key": "Accept",
"value": "application/dns-json"
}
],
"url": {
"raw": "{{baseUrl}}/{{dohPath}}?name={{domain}}&type=A",
"query": [
{
"key": "name",
"value": "{{domain}}"
},
{
"key": "type",
"value": "A",
"description": "DNS 记录类型,如 A、AAAA、NS、TXT 等"
}
]
},
"description": "RFC 8484 JSON DoH`name` 与 `type` 查询。无查询字符串且 GET 时返回 400。"
},
"response": []
},
{
"name": "DNS wire (GET, dns parameter)",
"request": {
"method": "GET",
"header": [
{
"key": "Accept",
"value": "application/dns-message"
}
],
"url": {
"raw": "{{baseUrl}}/{{dohPath}}?dns={{dnsWireBase64url}}",
"query": [
{
"key": "dns",
"value": "{{dnsWireBase64url}}",
"description": "DNS 报文 Base64url 编码(需自行生成)"
}
]
},
"description": "GET 且非 `name` 参数分支:使用 `dns` 查询参数传递 wire format。"
},
"response": []
},
{
"name": "DNS wire (POST)",
"request": {
"method": "POST",
"header": [
{
"key": "Accept",
"value": "application/dns-message"
},
{
"key": "Content-Type",
"value": "application/dns-message"
}
],
"body": {
"mode": "raw",
"raw": "",
"options": {
"raw": {
"language": "text"
}
}
},
"url": "{{baseUrl}}/{{dohPath}}",
"description": "POST 二进制 DNS 报文,转发至上游 DoH。请在 Body 中填入原始 DNS wire bytes非 JSON。"
},
"response": []
},
{
"name": "OPTIONS (CORS preflight)",
"request": {
"method": "OPTIONS",
"header": [],
"url": "{{baseUrl}}/{{dohPath}}",
"description": "预检请求,返回 CORS 头。"
},
"response": []
}
]
},
{
"name": "REST",
"item": [
{
"name": "解析域名 IP (/api/dns?domain)",
"request": {
"method": "GET",
"header": [],
"url": {
"raw": "{{baseUrl}}/api/dns?domain={{domain}}",
"query": [
{
"key": "domain",
"value": "{{domain}}"
},
{
"key": "url",
"value": "{{url}}",
"disabled": true,
"description": "与 domain 二选一,也可使用 url 参数"
}
]
},
"description": "返回域名的 IPv4、IPv6、CNAME 等聚合结果。参数 `url` 与 `domain` 任选其一。"
},
"response": []
},
{
"name": "解析 URL 对应 IP (/api/dns?url)",
"request": {
"method": "GET",
"header": [],
"url": {
"raw": "{{baseUrl}}/api/dns?url={{url}}",
"query": [
{
"key": "url",
"value": "{{url}}"
}
]
},
"description": "从完整 URL 提取 hostname 再查询 DNS。"
},
"response": []
},
{
"name": "通过 doh 参数代理查询 (GET)",
"request": {
"method": "GET",
"header": [],
"url": {
"raw": "{{baseUrl}}/?doh={{dohServerUrl}}&domain={{domain}}&type={{dnsQueryType}}",
"query": [
{
"key": "doh",
"value": "{{dohServerUrl}}",
"description": "目标 DoH 完整 URL若包含当前站点 host则走本地合并逻辑"
},
{
"key": "domain",
"value": "{{domain}}",
"description": "也可用 name 参数"
},
{
"key": "name",
"value": "{{domain}}",
"disabled": true
},
{
"key": "type",
"value": "{{dnsQueryType}}",
"description": "默认 allA+AAAA+NS 合并;其它值为单次 queryDns"
}
]
},
"description": "路径需避开 `/dns-query`、`/ip-info`、`/api/dns` 时,通常使用 `/?doh=...`。`type=all` 时返回合并 JSON。"
},
"response": []
}
]
},
{
"name": "IP",
"item": [
{
"name": "IP 地理信息 (/ip-info)",
"request": {
"method": "GET",
"header": [],
"url": {
"raw": "{{baseUrl}}/ip-info?ip={{ip}}&token={{token}}",
"query": [
{
"key": "ip",
"value": "{{ip}}",
"description": "可选;省略时使用 CF-Connecting-IP浏览器直连场景"
},
{
"key": "token",
"value": "{{token}}",
"description": "Worker 配置 TOKEN 时必填"
}
]
},
"description": "代理 ip-api.com中文 lang。未传 ip 时在 Worker 边缘可自动取客户端 IP。"
},
"response": []
},
{
"name": "OPTIONS /ip-info (CORS)",
"request": {
"method": "OPTIONS",
"header": [],
"url": "{{baseUrl}}/ip-info",
"description": "预检。"
},
"response": []
}
]
}
]
}

View File

@@ -1,3 +1,3 @@
name = "cf-doh-dns"
name = "doh-api"
main = "worker.js"
compatibility_date = "2024-09-23"