Ce document explique comment utiliser l'API Developer Knowledge pour rechercher et récupérer par programmation la documentation pour les développeurs publique de Google. Au lieu d'extraire manuellement des pages Web, l'API aide vos applications à trouver des extraits de texte pertinents ou à récupérer des documents Markdown complets.
Ce document contient des exemples pour les tâches suivantes :
- Rechercher dans le corpus de documentation
- Parcourir les résultats de recherche
- Appliquer des filtres complexes à votre recherche
- Récupérer le contenu complet d'un document
- Optimiser les charges utiles de réponse pour réduire la latence
Avant de commencer, configurez votre environnement pour l'outil de votre choix :
gcloud
Installez et configurez la gcloud CLI, puis activez l'API Developer Knowledge.
REST
Activez l'API et générez une clé API Developer Knowledge. Ensuite, enregistrez votre clé dans une variable d'environnement :
export DEVELOPERKNOWLEDGE_API_KEY="YOUR_API_KEY"
Remplacez YOUR_API_KEY par votre clé API Developer Knowledge.
Rechercher des documents
Utilisez la gcloud developer-knowledge documents search-chunks
commande ou la
documents.searchDocumentChunks
méthode REST pour trouver des fragments de document qui correspondent à une chaîne de requête. Les résultats incluent des fragments de contenu provenant de documents correspondants, ainsi qu'une référence parent que vous pouvez utiliser pour récupérer le contenu complet de ces documents.
L'exemple suivant recherche des documents correspondant à "BigQuery" :
gcloud
gcloud developer-knowledge documents search-chunks \ --query="BigQuery"
REST
curl "https://developerknowledge.googleapis.com/v1/documents:searchDocumentChunks?query=BigQuery&key=$DEVELOPERKNOWLEDGE_API_KEY"
Le résultat ressemble à ce qui suit :
{
"results": [
{
"parent": "documents/docs.cloud.google.com/bigquery/docs/introduction",
"id": "chunk_0",
"content": "BigQuery is a fully managed enterprise data warehouse...",
"document": {
"name": "documents/docs.cloud.google.com/bigquery/docs/introduction",
"uri": "https://docs.cloud.google.com/bigquery/docs/introduction",
"title": "BigQuery overview",
"dataSource": "docs.cloud.google.com",
"updateTime": "2025-01-15T12:00:00Z"
},
"relevanceScore": 0.92
}
]
}
Chaque résultat de la liste results inclut les éléments suivants :
parent: nom de la ressource du document (par exemple,documents/docs.cloud.google.com/bigquery/docs/introduction).id: identifiant du fragment dans le document (par exemple,chunk_0).content: extrait de texte correspondant du document.document: métadonnées sur le document source, telles quetitle,uri,dataSourceetupdateTime.relevanceScore: score de pertinence du fragment par rapport à la requête de recherche, dans la plage[0.0, 1.0].
Pour en savoir plus sur le schéma de réponse et tous les champs de métadonnées disponibles, consultez la documentation de référence de l'API documents.searchDocumentChunks.
Paginer les résultats de recherche
Lorsqu'une requête de recherche renvoie plusieurs correspondances, vous pouvez parcourir l'ensemble de résultats à l'aide de paramètres de pagination :
--page-size(gcloud CLI) oupageSize(entier) : spécifie le nombre maximal de résultats à renvoyer par page. Si ce paramètre n'est pas spécifié, l'API renvoie cinq résultats par défaut. La valeur maximale autorisée est 100. Les valeurs supérieures à 100 sont forcées à 100.--limit(gcloud CLI) oupageToken(chaîne) : dans la gcloud CLI, utilisez--limitpour contrôler le nombre total de résultats renvoyés sur toutes les pages. Dans les requêtes REST, transmettez la valeurpageTokenreçue dans une réponse précédente pour extraire la page de résultats suivante.
gcloud
Transmettez les options --page-size et --limit pour contrôler le nombre de résultats par page et le nombre total de résultats renvoyés :
gcloud developer-knowledge documents search-chunks \ --query="BigQuery" \ --page-size=5 \ --limit=10
REST
Pour demander la première page, transmettez le paramètre
pageSizedans votre requête :curl "https://developerknowledge.googleapis.com/v1/documents:searchDocumentChunks?query=BigQuery&pageSize=5&key=$DEVELOPERKNOWLEDGE_API_KEY"
Si des résultats supplémentaires sont disponibles, la réponse inclut un
nextPageToken:{ "results": [ { "parent": "documents/docs.cloud.google.com/bigquery/docs/introduction", "id": "chunk_0", "content": "BigQuery is a fully managed enterprise data warehouse...", "document": { "name": "documents/docs.cloud.google.com/bigquery/docs/introduction", "uri": "https://docs.cloud.google.com/bigquery/docs/introduction", "title": "What is BigQuery?", "dataSource": "docs.cloud.google.com", "updateTime": "2025-01-15T12:00:00Z", "view": "DOCUMENT_VIEW_BASIC" }, "relevanceScore": 0.88 } ], "nextPageToken": "CAUQABgB" }Pour récupérer les pages suivantes, transmettez la valeur de
nextPageTokenau paramètrepageTokendans votre requête suivante :curl "https://developerknowledge.googleapis.com/v1/documents:searchDocumentChunks?query=BigQuery&pageSize=5&pageToken=CAUQABgB&key=$DEVELOPERKNOWLEDGE_API_KEY"
Lorsque vous atteignez la dernière page de résultats,
nextPageTokenest omis de la réponse.
Filtrer les résultats de recherche
Utilisez l'option --query-filter dans la gcloud CLI ou le filter
paramètre dans les requêtes REST pour appliquer un filtre strict aux résultats de recherche. L'expression de filtre est appliquée aux métadonnées du document parent pour chaque fragment.
L'expression de filtre est limitée à 500 caractères.
Champs pris en charge
Vous pouvez filtrer vos résultats de recherche à l'aide des champs de document parent suivants :
content_length_bytes(entier) : longueur du champcontentdu document en octets.data_source(chaîne) : domaine source du document, tel quedocs.cloud.google.comoufirebase.google.com. Consultez la documentation de référence du corpus pour connaître toutes les sources de données compatibles.update_time(code temporel) : code temporel de la dernière mise à jour du document. Les valeurs doivent utiliser le format RFC 3339 (par exemple,"2025-01-01T00:00:00Z").uri(chaîne) : URI complet du document (par exemple,https://docs.cloud.google.com/bigquery/docs/tables).
Opérateurs compatibles
L'analyseur d'expressions de filtre accepte différents opérateurs en fonction du type de données du champ :
- Champs de chaîne (
data_source,uri) : acceptent=(égal à) et!=(différent de) pour une correspondance exacte des chaînes. Les correspondances partielles, de préfixe et d'expression régulière ne sont pas acceptées. - Champs de code temporel (
update_time) : acceptent=,<,<=,>, et>=. - Champs d'entiers (
content_length_bytes) : acceptent=,!=,<,<=,>et>=. - Opérateurs logiques : combinent des conditions à l'aide de
AND,ORetNOT(ou-).
Exemples de filtres
Les exemples suivants montrent comment créer des expressions de filtre. Lorsque vous utilisez la gcloud CLI, transmettez l'expression à l'option --query-filter. Lorsque vous appelez l'API REST avec curl, veillez à encoder l'URL du paramètre filter ou à utiliser --data-urlencode.
Faire correspondre une seule source de données
Limitez les résultats de recherche à un seul domaine de documentation :
data_source = "docs.cloud.google.com"
gcloud
gcloud developer-knowledge documents search-chunks \ --query="Cloud Functions deployment" \ --query-filter='data_source = "docs.cloud.google.com"'
REST
curl -G "https://developerknowledge.googleapis.com/v1/documents:searchDocumentChunks" \ --data-urlencode "query=Cloud Functions deployment" \ --data-urlencode 'filter=data_source = "docs.cloud.google.com"' \ --data-urlencode "key=$DEVELOPERKNOWLEDGE_API_KEY"
Faire correspondre plusieurs sources de données
Utilisez OR pour inclure des documents provenant de plusieurs sources :
data_source = "docs.cloud.google.com" OR data_source = "firebase.google.com"
gcloud
gcloud developer-knowledge documents search-chunks \ --query="database" \ --query-filter='data_source = "docs.cloud.google.com" OR data_source = "firebase.google.com"'
REST
curl -G "https://developerknowledge.googleapis.com/v1/documents:searchDocumentChunks" \ --data-urlencode "query=database" \ --data-urlencode 'filter=data_source = "docs.cloud.google.com" OR data_source = "firebase.google.com"' \ --data-urlencode "key=$DEVELOPERKNOWLEDGE_API_KEY"
Filtrer par code temporel
Utilisez des opérateurs de comparaison avec des codes temporels RFC 3339 pour trouver le contenu mis à jour après une date spécifique :
update_time >= "2025-01-01T00:00:00Z"
gcloud
gcloud developer-knowledge documents search-chunks \ --query="BigQuery" \ --query-filter='update_time >= "2025-01-01T00:00:00Z"'
REST
curl -G "https://developerknowledge.googleapis.com/v1/documents:searchDocumentChunks" \ --data-urlencode "query=BigQuery" \ --data-urlencode 'filter=update_time >= "2025-01-01T00:00:00Z"' \ --data-urlencode "key=$DEVELOPERKNOWLEDGE_API_KEY"
Filtrer par longueur de contenu
Utilisez des opérateurs de comparaison avec content_length_bytes pour trouver des documents en fonction de leur taille en octets :
content_length_bytes < 5000
gcloud
gcloud developer-knowledge documents search-chunks \ --query="Cloud Storage" \ --query-filter='content_length_bytes < 5000'
REST
curl -G "https://developerknowledge.googleapis.com/v1/documents:searchDocumentChunks" \ --data-urlencode "query=Cloud Storage" \ --data-urlencode 'filter=content_length_bytes < 5000' \ --data-urlencode "key=$DEVELOPERKNOWLEDGE_API_KEY"
Combiner la source de données, le code temporel et le regroupement
Combinez AND, OR et des parenthèses (...) pour limiter les résultats à des sources spécifiques mises à jour après une date donnée :
(data_source = "developer.chrome.com" OR data_source = "web.dev") AND update_time >= "2025-01-01T00:00:00Z"
gcloud
gcloud developer-knowledge documents search-chunks \ --query="service worker" \ --query-filter='(data_source = "developer.chrome.com" OR data_source = "web.dev") AND update_time >= "2025-01-01T00:00:00Z"'
REST
curl -G "https://developerknowledge.googleapis.com/v1/documents:searchDocumentChunks" \ --data-urlencode "query=service worker" \ --data-urlencode 'filter=(data_source = "developer.chrome.com" OR data_source = "web.dev") AND update_time >= "2025-01-01T00:00:00Z"' \ --data-urlencode "key=$DEVELOPERKNOWLEDGE_API_KEY"
Exclure des sources de données
Utilisez NOT ou != pour exclure les résultats d'une source spécifique :
data_source != "firebase.google.com"
gcloud
gcloud developer-knowledge documents search-chunks \ --query="authentication" \ --query-filter='data_source != "firebase.google.com"'
REST
curl -G "https://developerknowledge.googleapis.com/v1/documents:searchDocumentChunks" \ --data-urlencode "query=authentication" \ --data-urlencode 'filter=data_source != "firebase.google.com"' \ --data-urlencode "key=$DEVELOPERKNOWLEDGE_API_KEY"
Récupérer un document
Utilisez la
gcloud developer-knowledge documents describe commande ou
la documents.get méthode REST pour
récupérer le contenu complet d'un seul document.
L'exemple suivant récupère un document par son nom de ressource :
gcloud
gcloud developer-knowledge documents describe \ documents/docs.cloud.google.com/storage/docs/creating-buckets
REST
curl "https://developerknowledge.googleapis.com/v1/documents/docs.cloud.google.com/storage/docs/creating-buckets?key=$DEVELOPERKNOWLEDGE_API_KEY"
La réponse est une Document
ressource contenant des métadonnées et le contenu Markdown complet dans le champ content.
Noms de ressources et URI
Lorsque vous référencez des documents dans l'API Developer Knowledge, notez la différence entre les noms de ressources et les URI Web :
- Nom de la ressource (
parent,name) : formaté commedocuments/{uri_without_scheme}(par exemple,documents/docs.cloud.google.com/storage/docs/creating-buckets). Transmettez cette valeur comme argument positionnel dansgcloud developer-knowledge documents describe, comme paramètre de chemin d'accès dansGetDocument, ou dans le paramètrenamesdeBatchGetDocuments. - URI Web (
uri) : URL Web complète, y compris le schéma (par exemple,https://docs.cloud.google.com/storage/docs/creating-buckets). Utilisez ce format pour le champurilorsque vous créez des expressions--query-filteroufilter(par exemple,uri = "https://docs.cloud.google.com/storage/docs/creating-buckets").
Récupérer plusieurs documents avec BatchGetDocuments
Utilisez la documents.batchGet
méthode pour récupérer jusqu'à 20 documents par nom en un seul appel d'API. Cette méthode est plus efficace que d'effectuer plusieurs requêtes GetDocument.
L'exemple suivant récupère deux documents par nom :
curl "https://developerknowledge.googleapis.com/v1/documents:batchGet?names=documents/docs.cloud.google.com/storage/docs/creating-buckets&names=documents/firebase.google.com/docs/firestore/quickstart&key=$DEVELOPERKNOWLEDGE_API_KEY"
La réponse contient une liste des ressources demandées
Document
dans l'ordre de votre requête.
Optimiser les charges utiles de réponse
Le contenu des documents au format Markdown peut être volumineux. Si votre application n'a besoin que de métadonnées (telles que les titres de la page, les URI ou les codes temporels) ou de champs spécifiques, vous pouvez optimiser la taille des charges utiles pour réduire la bande passante et la latence.
Utiliser des vues de document
L'option --view dans la gcloud CLI ou le paramètre view dans les requêtes REST
contrôle les champs qui sont renseignés dans les
Document messages.
L'option --view et l'DocumentView
enum acceptent les valeurs suivantes :
--view=basic(gcloud CLI) ouDOCUMENT_VIEW_BASIC: ne renvoie que les champs de métadonnées de base (name,uri,dataSource,title,description,updateTimeetview). Le champcontentest omis.--view=content(gcloud CLI) ouDOCUMENT_VIEW_CONTENT: renvoie les champs de métadonnées ainsi que le champcontentMarkdown. Il s'agit de la valeur par défaut pourgcloud developer-knowledge documents describe,GetDocument, etBatchGetDocuments.--view=full(gcloud CLI) ouDOCUMENT_VIEW_FULL: renvoie tous les champs du document.
Pour récupérer uniquement les métadonnées du document sans télécharger de contenu Markdown volumineux, spécifiez la vue de document de base :
gcloud
gcloud developer-knowledge documents describe \ documents/docs.cloud.google.com/storage/docs/creating-buckets \ --view=basic
REST
curl "https://developerknowledge.googleapis.com/v1/documents/docs.cloud.google.com/storage/docs/creating-buckets?view=DOCUMENT_VIEW_BASIC&key=$DEVELOPERKNOWLEDGE_API_KEY"
Vous pouvez également utiliser view=DOCUMENT_VIEW_BASIC avec BatchGetDocuments :
curl "https://developerknowledge.googleapis.com/v1/documents:batchGet?names=documents/docs.cloud.google.com/storage/docs/creating-buckets&names=documents/firebase.google.com/docs/firestore/quickstart&view=DOCUMENT_VIEW_BASIC&key=$DEVELOPERKNOWLEDGE_API_KEY"
Utiliser des masques de champ
Pour limiter davantage les charges utiles de réponse à des champs spécifiques, utilisez le paramètre de requête fields standard des API Google
(masque de champ).
Filtrer les champs dans GetDocument
Pour récupérer uniquement les champs title, uri et updateTime d'un document :
curl "https://developerknowledge.googleapis.com/v1/documents/docs.cloud.google.com/storage/docs/creating-buckets?fields=title,uri,updateTime&key=$DEVELOPERKNOWLEDGE_API_KEY"
Filtrer les champs dans BatchGetDocuments
Pour récupérer uniquement des champs spécifiques pour chaque document d'un lot :
curl "https://developerknowledge.googleapis.com/v1/documents:batchGet?names=documents/docs.cloud.google.com/storage/docs/creating-buckets&fields=documents(name,title,uri)&key=$DEVELOPERKNOWLEDGE_API_KEY"
Filtrer les champs dans SearchDocumentChunks
Pour ne renvoyer que le id et le content du fragment, le title et l'uri du document parent, ainsi que le nextPageToken d'une recherche :
curl "https://developerknowledge.googleapis.com/v1/documents:searchDocumentChunks?query=BigQuery&fields=results(id,content,document(title,uri)),nextPageToken&key=$DEVELOPERKNOWLEDGE_API_KEY"
Gérer les erreurs
L'API Developer Knowledge renvoie des codes d'état HTTP standards. Les exemples fonctionnels suivants mettent en correspondance les codes d'état HTTP et leurs causes dans l'API Developer Knowledge :
400 INVALID_ARGUMENT:- La chaîne d'expression
filterdépasse 500 caractères. - Le code temporel
update_timen'est pas valide (doit utiliser le format RFC 3339). - Plus de 20 noms de documents ont été fournis dans une requête
BatchGetDocuments.
- La chaîne d'expression
401 UNAUTHENTICATED: la requête ne contient pas de clé API ni de jeton porteur, ou utilise des identifiants non valides. Consultez la section Authentification.404 NOT_FOUND: le nom de document demandé n'existe pas ou appartient à un domaine qui n'est pas inclus dans le corpus.429 RESOURCE_EXHAUSTED: le projet a dépassé son quota. Consultez la section Quotas et limites.
Étape suivante
- Consultez Générer des réponses à partir de la documentation.
- Connectez-vous au serveur MCP Developer Knowledge et installez la
retrieving-developer-knowledgecompétence d'agent pour aider votre assistant de codage IA à rechercher et à lire la documentation officielle. - Découvrez comment utiliser des bibliothèques clientes en Python, Node.js, Go ou Java.
- Découvrez comment utiliser la gcloud CLI.
- Parcourez la documentation de référence du corpus pour afficher toutes les sources de documentation compatibles.
- Consultez la documentation de référence de l'API REST pour obtenir les spécifications complètes des méthodes.
- Vérifiez les quotas et les limites pour les limitations du débit et les quotas de l'API.