Ce document explique comment utiliser l'API Developer Knowledge pour rechercher et récupérer de manière programmatique la documentation publique pour les développeurs 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.
Dans ce document, vous trouverez des exemples pour les tâches suivantes :
- Recherche dans le corpus de documentation.
- Pagination des résultats de recherche.
- Appliquer des filtres complexes à votre recherche.
- Récupérer le contenu complet d'un document
- Optimisation des 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 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 commande gcloud developer-knowledge documents search-chunks ou la méthode REST documents.searchDocumentChunks pour trouver les blocs de documents qui correspondent à une chaîne de requête. Les résultats incluent des blocs de contenu provenant des documents correspondants, ainsi qu'une référence parent que vous pouvez utiliser pour récupérer l'intégralité du contenu de ces documents.
L'exemple suivant recherche les 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 ressource du document (par exemple,documents/docs.cloud.google.com/bigquery/docs/introduction).id: identifiant du bloc dans le document (par exemple,chunk_0).content: extrait de texte correspondant dans le document.document: métadonnées sur le document source, telles quetitle,uri,dataSourceetupdateTime.relevanceScore: score de pertinence du bloc 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 des paramètres de pagination :
--page-size(gcloud CLI) oupageSize(entier) : spécifie le nombre maximal de résultats à renvoyer par page. Si aucune valeur n'est spécifiée, l'API renvoie cinq résultats par défaut. La valeur maximale autorisée est de 100. Les valeurs supérieures sont réduites à 100.--limit(gcloud CLI) oupageToken(chaîne) : dans gcloud CLI, utilisez--limitpour contrôler le nombre total de résultats renvoyés sur 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 indicateurs --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ètrepageTokende votre prochaine requête :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 paramètre filter 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 bloc.
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. Pour connaître toutes les sources de données compatibles, consultez la documentation de référence sur le corpus.update_time(code temporel) : code temporel de la dernière mise à jour du document. Les valeurs doivent être au 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 est compatible avec différents opérateurs en fonction du type de données du champ :
- Les champs de chaîne (
data_source,uri) sont compatibles avec=(égal à) et!=(différent de) pour la mise en correspondance exacte des chaînes. Les correspondances partielles, de préfixe et d'expression régulière ne sont pas acceptées. - Champs d'horodatage (
update_time) : compatibles avec=,<,<=,>et>=. - Les champs entiers (
content_length_bytes) acceptent=,!=,<,<=,>et>=. - Opérateurs logiques : combinez 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 CLI gcloud, transmettez l'expression à l'option --query-filter. Lorsque vous appelez l'API REST avec curl, veillez à encoder au format URL le paramètre filter ou à utiliser --data-urlencode.
Faire correspondre une seule source de données
Limiter 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"
Associer 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 du 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 durée du 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 commande gcloud developer-knowledge documents describe ou la méthode REST documents.get pour récupérer l'intégralité du contenu d'un 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 ressource Document contenant des métadonnées et l'intégralité du contenu Markdown 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 ressource (
parent,name) : au formatdocuments/{uri_without_scheme}(par exemple,documents/docs.cloud.google.com/storage/docs/creating-buckets). Transmettez cette valeur en tant qu'argument positionnel dansgcloud developer-knowledge documents describe, paramètre de chemin d'accès dansGetDocumentou 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 méthode documents.batchGet pour récupérer jusqu'à 20 documents par nom dans 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 leur 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 Document demandées, dans l'ordre dans lequel vous les avez demandées.
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 les vues de document
L'option --view dans la CLI gcloud ou le paramètre view dans les requêtes REST contrôlent les champs renseignés dans les messages Document.
L'option --view et l'enum DocumentView 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 champ Markdowncontent. Il s'agit de la valeur par défaut pourgcloud developer-knowledge documents describe,GetDocumentetBatchGetDocuments.--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 base du document :
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 (masque de champ) des API Google standards.
Champs de filtre 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"
Champs de filtre 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"
Champs de filtre dans SearchDocumentChunks
Pour ne renvoyer que les blocs id et content, les documents parents title et uri, et 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 mappent 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 (il doit être au format RFC 3339). - Plus de 20 noms de documents ont été fournis dans une demande
BatchGetDocuments.
- La chaîne d'expression
401 UNAUTHENTICATED: la requête ne contient pas de clé API ou utilise une clé non valide. Consultez Authentification.404 NOT_FOUND: le nom du 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 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 les compétences d'agent
retrieving-developer-knowledgepour aider votre assistant d'assistance au 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 des spécifications complètes sur les méthodes.
- Consultez les quotas et limites pour connaître les limites de débit et les quotas des API.