google-developer-knowledge-api
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseGoogle Developer Knowledge API
Google Developer Knowledge API
Direct REST API access to Google's public developer documentation without needing the MCP server.
无需MCP服务器,即可通过直接REST API访问谷歌公开开发者文档。
Overview
概述
The Developer Knowledge API provides machine-readable access to Google's developer docs. It offers:
- SearchDocumentChunks: Find relevant page URIs and content snippets
- GetDocument: Fetch full content of a single document
- BatchGetDocuments: Fetch multiple documents at once
Developer Knowledge API 提供了对谷歌开发者文档的机器可读访问方式。它支持:
- SearchDocumentChunks:查找相关页面URI和内容片段
- GetDocument:获取单篇文档的完整内容
- BatchGetDocuments:一次性获取多篇文档
Authentication
身份验证
IMPORTANT: Despite official documentation suggesting API keys work, the API actually requires OAuth2 authentication (access tokens or ADC).
重要提示:尽管官方文档表明API密钥可用,但该API实际上需要OAuth2 authentication(访问令牌或ADC)。
Option 1: Application Default Credentials (Recommended)
选项1:应用默认凭据(推荐)
- Install gcloud CLI if not already installed
- Run:
bash
gcloud auth application-default login - Enable the API in your project:
- Open Developer Knowledge API page
- Select your project and click Enable
- 若未安装gcloud CLI,请先安装
- 运行以下命令:
bash
gcloud auth application-default login - 在你的项目中启用该API:
- 打开Developer Knowledge API页面
- 选择你的项目并点击启用
Option 2: Service Account
选项2:服务账号
- Create a service account in Google Cloud Console
- Download the JSON key file
- Set the environment variable:
bash
export GOOGLE_APPLICATION_CREDENTIALS="/path/to/service-account.json"
- 在Google Cloud控制台中创建服务账号
- 下载JSON密钥文件
- 设置环境变量:
bash
export GOOGLE_APPLICATION_CREDENTIALS="/path/to/service-account.json"
Option 3: Access Token
选项3:访问令牌
Get a token manually:
bash
gcloud auth application-default print-access-token手动获取令牌:
bash
gcloud auth application-default print-access-tokenAPI Reference
API参考
Base URL:
https://developerknowledge.googleapis.com/v1alphaAll requests require an header.
Authorization: Bearer <token>基础URL:
https://developerknowledge.googleapis.com/v1alpha所有请求都需要携带请求头。
Authorization: Bearer <token>Search for Document Chunks
搜索文档片段
bash
GET /documents:searchDocumentChunks?query={query}Parameters:
- (required): Search query string
query - (optional): Number of results per page
pageSize - (optional): Token for pagination
pageToken
Response includes:
- : Array of matching chunks
documentChunks[]- : Document identifier (use for GetDocument)
parent - : Snippet of matching content
content - : Original documentation URL
uri
bash
GET /documents:searchDocumentChunks?query={query}参数:
- (必填):搜索查询字符串
query - (可选):每页结果数量
pageSize - (可选):分页令牌
pageToken
响应包含:
- :匹配片段的数组
documentChunks[]- :文档标识符(用于GetDocument接口)
parent - :匹配内容的片段
content - :原始文档URL
uri
Get Single Document
获取单篇文档
bash
GET /{document_name}Parameters:
- : The
document_namevalue from search results (e.g.,parent)documents/developers.google.com/...
Response: Full Markdown content of the document
bash
GET /{document_name}参数:
- :搜索结果中的
document_name值(例如:parent)documents/developers.google.com/...
响应:文档的完整Markdown内容
Batch Get Documents
批量获取文档
bash
POST /documents:batchGetBody (JSON):
json
{
"names": [
"documents/developers.google.com/path/to/doc1",
"documents/developers.google.com/path/to/doc2"
]
}Retrieves up to 100 documents in a single call.
bash
POST /documents:batchGet请求体(JSON):
json
{
"names": [
"documents/developers.google.com/path/to/doc1",
"documents/developers.google.com/path/to/doc2"
]
}单次调用最多可检索100篇文档。
Python Client
Python客户端
See for a ready-to-use Python client with automatic OAuth2 handling.
scripts/developer_knowledge_client.py请查看获取现成可用的Python客户端,它支持自动OAuth2处理。
scripts/developer_knowledge_client.pyInstallation Requirements
安装要求
bash
pip install google-auth google-auth-httplib2Or use the gcloud CLI fallback (no extra dependencies).
bash
pip install google-auth google-auth-httplib2或者使用gcloud CLI作为备选方案(无需额外依赖)。
Quick Usage
快速使用
python
from developer_knowledge_client import DeveloperKnowledgeClientpython
from developer_knowledge_client import DeveloperKnowledgeClientUses Application Default Credentials automatically
自动使用应用默认凭据
client = DeveloperKnowledgeClient()
client = DeveloperKnowledgeClient()
Search for documentation
搜索文档
results = client.search("Cloud Storage buckets")
for chunk in results.get("documentChunks", []):
print(f"URL: {chunk.get('uri')}")
print(f"Content: {chunk.get('content')[:200]}...")
results = client.search("Cloud Storage buckets")
for chunk in results.get("documentChunks", []):
print(f"URL: {chunk.get('uri')}")
print(f"内容: {chunk.get('content')[:200]}...")
Get full document
获取完整文档
doc = client.get_document(chunk["parent"])
print(doc.get("content"))
undefineddoc = client.get_document(chunk["parent"])
print(doc.get("content"))
undefinedExplicit Authentication
显式身份验证
python
undefinedpython
undefinedUsing service account
使用服务账号
client = DeveloperKnowledgeClient(service_account_file="/path/to/sa.json")
client = DeveloperKnowledgeClient(service_account_file="/path/to/sa.json")
Using explicit access token
使用显式访问令牌
client = DeveloperKnowledgeClient(access_token="ya29.xxxx")
undefinedclient = DeveloperKnowledgeClient(access_token="ya29.xxxx")
undefinedConvenience Method
便捷方法
python
undefinedpython
undefinedSearch and fetch full documents in one call
一次调用完成搜索并获取完整文档
docs = client.search_and_get("Firebase authentication", max_results=3)
for doc in docs:
print(doc["content"])
undefineddocs = client.search_and_get("Firebase authentication", max_results=3)
for doc in docs:
print(doc["content"])
undefinedcURL Examples
cURL示例
Get Access Token
获取访问令牌
bash
export TOKEN=$(gcloud auth application-default print-access-token)bash
export TOKEN=$(gcloud auth application-default print-access-token)Search
搜索
bash
curl -H "Authorization: Bearer $TOKEN" \
"https://developerknowledge.googleapis.com/v1alpha/documents:searchDocumentChunks?query=BigQuery"bash
curl -H "Authorization: Bearer $TOKEN" \
"https://developerknowledge.googleapis.com/v1alpha/documents:searchDocumentChunks?query=BigQuery"Get Document
获取文档
bash
curl -H "Authorization: Bearer $TOKEN" \
"https://developerknowledge.googleapis.com/v1alpha/documents/developers.google.com/path/to/doc"bash
curl -H "Authorization: Bearer $TOKEN" \
"https://developerknowledge.googleapis.com/v1alpha/documents/developers.google.com/path/to/doc"Covered Documentation
覆盖的文档范围
The API indexes these Google developer sites:
- developer.android.com (Android)
- firebase.google.com (Firebase)
- docs.cloud.google.com (Google Cloud)
- ai.google.dev (Gemini API / Google AI)
- developers.google.com (Ads, Maps, YouTube, etc.)
- developer.chrome.com (Chrome)
- developers.home.google.com (Google Home)
- www.tensorflow.org (TensorFlow)
- web.dev (Web)
- fuchsia.dev (Fuchsia)
该API已索引以下谷歌开发者站点:
- developer.android.com(Android)
- firebase.google.com(Firebase)
- docs.cloud.google.com(Google Cloud)
- ai.google.dev(Gemini API / Google AI)
- developers.google.com(Ads、Maps、YouTube等)
- developer.chrome.com(Chrome)
- developers.home.google.com(Google Home)
- www.tensorflow.org(TensorFlow)
- web.dev(Web)
- fuchsia.dev(Fuchsia)
Limitations
限制
- Authentication: Requires OAuth2 (API keys do NOT work despite documentation)
- Markdown Quality: Generated from HTML, may have formatting issues
- Content Scope: Only public documentation pages, no GitHub/OSS/blogs/YouTube
- Data Freshness: Re-indexed within 24 hours of publication
- 身份验证:需要OAuth2(尽管文档说明API密钥可用,但实际不可用)
- Markdown质量:由HTML生成,可能存在格式问题
- 内容范围:仅包含公开文档页面,不包含GitHub/开源项目/博客/YouTube内容
- 数据新鲜度:发布后24小时内完成重新索引
When to Use This Instead of MCP
何时替代MCP使用此API
Use direct API calls when:
- MCP authentication is failing or not configured
- You need more control over request/response handling
- You're integrating into a pipeline that doesn't support MCP
- You want to use the API in a standalone script
- You need to handle OAuth2 tokens explicitly
在以下场景中使用直接API调用:
- MCP身份验证失败或未配置
- 你需要对请求/响应处理有更多控制权
- 你要集成到不支持MCP的流水线中
- 你希望在独立脚本中使用该API
- 你需要显式处理OAuth2令牌