Introduction
Cet article explique comment utiliser lâAPI REST GitHub Ă lâaide de GitHub CLI, curl
ou JavaScript. Pour obtenir un guide de dĂ©marrage rapide, consultez DĂ©marrage rapide de lâAPI REST GitHub.
Les exemples de cet article envoient les demandes Ă https://api.github.com
. Si vous accédez à GitHub dans un domaine différent, tel que octocorp.ghe.com
, le point de terminaison des demandes d'API reflétera ce domaine. Par exemple : https://api.octocorp.ghe.com/
.
Ă propos des demandes adressĂ©es Ă lâAPI REST
Cette section dĂ©crit les Ă©lĂ©ments qui composent une demande dâAPI :
Chaque demande adressĂ©e Ă lâAPI REST inclut une mĂ©thode HTTP et un chemin dâaccĂšs. Selon le point de terminaison de lâAPI REST, vous devrez peut-ĂȘtre Ă©galement spĂ©cifier des en-tĂȘtes de demande, des informations dâauthentification, des paramĂštres de requĂȘte ou de corps.
La documentation de rĂ©fĂ©rence de lâAPI REST dĂ©crit la mĂ©thode HTTP, le chemin et les paramĂštres de chaque point de terminaison. Elle prĂ©sente aussi des exemples de demande et de rĂ©ponses pour chaque point de terminaison. Pour plus dâinformations, consultez la documentation de rĂ©fĂ©rence sur REST.
Méthode HTTP
La mĂ©thode HTTP dâun point de terminaison dĂ©finit le type dâaction quâil effectue sur une ressource donnĂ©e. Certaines mĂ©thodes HTTP courantes sont GET
, POST
, DELETE
et PATCH
. La documentation de rĂ©fĂ©rence de lâAPI REST fournit la mĂ©thode HTTP pour chaque point de terminaison.
Par exemple, la méthode HTTP pour le point de terminaison « Répertorier les problÚmes de référentiel » est GET
.
Dans la mesure du possible, lâAPI REST GitHub sâefforce dâutiliser une mĂ©thode HTTP appropriĂ©e pour chaque action.
GET
: utilisé pour récupérer des ressources.POST
: utilisé pour créer des ressources.PATCH
: utilisé pour mettre à jour les propriétés des ressources.PUT
: utilisé pour remplacer des ressources ou des collections de celles-ci.DELETE
: utilisé pour supprimer des ressources.
Chemin dâaccĂšs
Chaque point de terminaison possĂšde un chemin dâaccĂšs. La documentation de rĂ©fĂ©rence de lâAPI REST donne le chemin dâaccĂšs pour chaque point de terminaison. Par exemple, le chemin dâaccĂšs pour le point de terminaison « RĂ©ppertorier les problĂšmes du rĂ©fĂ©rentiel » est /repos/{owner}/{repo}/issues
.
Les crochets courbés {}
dans un chemin dâaccĂšs rĂ©flĂštent des paramĂštres de chemin dâaccĂšs que vous avez besoin de spĂ©cifier. Les paramĂštres de chemin dâaccĂšs modifient le chemin dâaccĂšs du point de terminaison et sont requis dans votre demande. Par exemple, les paramĂštres de chemin dâaccĂšs pour le point de terminaison « RĂ©pertorier les problĂšmes du rĂ©fĂ©rentiel » sont {owner}
et {repo}
. Pour utiliser ce chemin dâaccĂšs dans votre demande dâAPI, remplacez {repo}
par le nom du référentiel dans lequel vous souhaitez demander une liste de problÚmes, puis remplacez {owner}
par le nom du compte propriétaire du référentiel.
En-tĂȘtes
Les en-tĂȘtes fournissent des informations supplĂ©mentaires sur la demande et la rĂ©ponse souhaitĂ©e. Voici quelques exemples dâen-tĂȘtes que vous pouvez utiliser dans vos demandes pour lâAPI REST GitHub. Pour obtenir un exemple de demande qui utilise des en-tĂȘtes, consultez Effectuer une demande.
Accept
La plupart des points de terminaison de lâAPI REST GitHub spĂ©cifient que vous devez transfĂ©rer un en-tĂȘte Accept
avec une valeur de application/vnd.github+json
. La valeur de lâen-tĂȘte Accept
est un type de mĂ©dia. Pour plus dâinformations sur les types de mĂ©dias, consultez Types de mĂ©dias.
X-GitHub-Api-Version
Vous devez utiliser cet en-tĂȘte pour spĂ©cifier une version de lâAPI REST Ă utiliser pour votre demande. Pour plus dâinformations, consultez « Versions des API ».
User-Agent
Toutes les demandes dâAPI doivent comprendre un en-tĂȘte User-Agent
valide. Lâen-tĂȘte User-Agent
identifie lâutilisateur ou lâapplication qui effectue la demande.
Par dĂ©faut, GitHub CLI envoie un en-tĂȘte User-Agent
valide. Toutefois, GitHub recommande dâutiliser votre nom dâutilisateur GitHub ou le nom de votre application pour la valeur dâen-tĂȘte User-Agent
. Cela permet Ă GitHub de vous contacter en cas de problĂšme.
curl
envoie par dĂ©faut un en-tĂȘte User-Agent
valide. Toutefois, GitHub recommande dâutiliser votre nom dâutilisateur GitHub ou le nom de votre application pour la valeur dâen-tĂȘte User-Agent
. Cela permet Ă GitHub de vous contacter en cas de problĂšme.
Si vous utilisez le Kit de dĂ©veloppement logiciel (SDK) Octokit.js, le Kit de dĂ©veloppement logiciel (SDK) envoie un en-tĂȘte valide User-Agent
pour vous. Toutefois, GitHub recommande dâutiliser votre nom dâutilisateur GitHub ou le nom de votre application pour la valeur dâen-tĂȘte User-Agent
. Cela permet Ă GitHub de vous contacter en cas de problĂšme.
Lâexemple suivant est un exemple User-Agent
une application nommée Awesome-Octocat-App
:
User-Agent: Awesome-Octocat-App
Les demandes sans en-tĂȘte User-Agent
sont rejetĂ©es. Si vous fournissez un en-tĂȘte User-Agent
non valide, vous recevez une réponse 403 Forbidden
.
Types de médias
Vous pouvez spĂ©cifier un ou plusieurs types de mĂ©dia en les ajoutant Ă lâen-tĂȘte Accept
de votre demande. Pour plus dâinformations sur lâen-tĂȘte Accept
, consultez Accept
.
les types de mĂ©dia spĂ©cifient le format des donnĂ©es que vous souhaitez consommer de lâAPI. Les types mĂ©dias sont spĂ©cifiques aux ressources, ce qui leur permet de changer de façon indĂ©pendante et de prendre en charge des formats que dâautres ressources ne prennent pas en charge. La documentation de chaque point de terminaison de lâAPI REST GitHub dĂ©crit les types de mĂ©dia quâil prend en charge. Pour plus dâinformations, consultez Documentation sur lâAPI REST GitHub.
Les types de mĂ©dia les plus courants pris en charge par lâAPI REST GitHub sont application/vnd.github+json
et application/json
.
Il existe des types de mĂ©dia personnalisĂ©s que vous pouvez utiliser avec certains points de terminaison. Par exemple, lâAPI REST pour gĂ©rer validations et les demandes de tirage prennent en charge les types mĂ©dia diff
, patch
et sha
. Les types de médias full
, raw
, text
, ou html
sont utilisés par d'autres points de terminaison.
Tous les types de média personnalisés pour GitHub se présentent comme suit : application/vnd.github.PARAM+json
, oĂč PARAM
est le nom du type de média. Par exemple, pour spécifier le type de média raw
, vous devez utiliser application/vnd.github.raw+json
.
Pour obtenir un exemple de demande qui utilise des types de média, consultez Effectuer une demande.
Authentification
De nombreux points de terminaison nĂ©cessitent une authentification ou retournent des informations supplĂ©mentaires si vous ĂȘtes authentifiĂ©. De plus, vous pouvez effectuer plus de requĂȘtes par heure lorsque vous ĂȘtes authentifiĂ©.
Pour authentifier votre demande, vous devez fournir un jeton dâauthenti fication avec les Ă©tendues ou autorisations requises. Il existe plusieurs façons dâobtenir un jeton : vous pouvez crĂ©er un personal access token, gĂ©nĂ©rer un jeton avec un GitHub App, ou utiliser le GITHUB_TOKEN
intĂ©grĂ© dans un flux de travail GitHub Actions. Pour plus dâinformations, consultez « Authentification auprĂšs de lâAPI REST ».
Pour obtenir un exemple de demande qui utilise un jeton dâauthentification, consultez Effectuer une demande.
Remarque
Si vous ne souhaitez pas crĂ©er un jeton, vous pouvez utiliser GitHub CLI. GitHub CLI sâoccupent de lâauthentification pour vous et vous aident Ă assurer la sĂ©curitĂ© de votre compte. Pour plus dâinformations, consultez la version GitHub CLI de cette page.
Avertissement
Traitez votre jeton dâaccĂšs de la mĂȘme façon que vous traitez vos mots de passe ou dâautres informations dâidentification sensibles. Pour plus dâinformations, consultez « SĂ©curiser les informations dâidentification de lâAPI ».
Bien que certains points de terminaison dâAPI REST soient accessibles sans authentification, GitHub CLI vous oblige Ă vous authentifier avant de pouvoir utiliser la sous-commande api
pour effectuer une demande dâAPI. Utilisez la sous-commande auth login
pour vous authentifier auprĂšs de GitHub. Pour plus dâinformations, consultez Effectuer une demande.
Pour authentifier votre demande, vous devez fournir un jeton dâauthenti fication avec les Ă©tendues ou autorisations requises. Il existe plusieurs façons dâobtenir un jeton : vous pouvez crĂ©er un personal access token, gĂ©nĂ©rer un jeton avec un GitHub App, ou utiliser le GITHUB_TOKEN
intĂ©grĂ© dans un flux de travail GitHub Actions. Pour plus dâinformations, consultez « Authentification auprĂšs de lâAPI REST ».
Pour obtenir un exemple de demande qui utilise un jeton dâauthentification, consultez Effectuer une demande.
Avertissement
Traitez votre jeton dâaccĂšs de la mĂȘme façon que vous traitez vos mots de passe ou dâautres informations dâidentification sensibles. Pour plus dâinformations, consultez « SĂ©curiser les informations dâidentification de lâAPI ».
ParamĂštres
De nombreuses mĂ©thodes dâAPI nĂ©cessitent ou vous permettent dâenvoyer des informations supplĂ©mentaires dans des paramĂštres dans votre demande. Il existe quelques types de paramĂštres diffĂ©rents : paramĂštres de chemin dâaccĂšs, paramĂštres de corps et paramĂštres de requĂȘte.
ParamĂštres de chemin dâaccĂšs
Les paramĂštres de chemin dâaccĂšs modifient le chemin dâaccĂšs du point de terminaison. Ces paramĂštres sont requis dans votre demande. Pour plus dâinformations, consultez Path.
ParamĂštres du corps
Les paramĂštres de corps vous permettent de passer des donnĂ©es supplĂ©mentaires Ă lâAPI. Ces paramĂštres peuvent ĂȘtre facultatifs ou obligatoires, en fonction du point de terminaison. Par exemple, un paramĂštre de corps peut vous permettre de spĂ©cifier un titre de problĂšme pendant la crĂ©ation dâun nouveau problĂšme, ou de spĂ©cifier certains paramĂštres durant lâactivation ou de la dĂ©sactivation dâune fonctionnalitĂ©. La documentation de chaque point de terminaison de lâAPI REST GitHub dĂ©crit les paramĂštres de corps quâil prend en charge. Pour plus dâinformations, consultez Documentation sur lâAPI REST GitHub.
Par exemple, le point de terminaison « CrĂ©er un problĂšme » vous oblige Ă spĂ©cifier un titre pour le nouveau problĂšme dans votre demande. Il vous permet Ă©galement de spĂ©cifier Ă©ventuellement dâautres informations, telles que le texte Ă placer dans le corps du problĂšme, les utilisateurs Ă affecter au nouveau problĂšme ou les Ă©tiquettes Ă appliquer au nouveau problĂšme. Pour obtenir un exemple de demande qui utilise des paramĂštres de corps, consultez Effectuer une demande.
Vous devez authentifier votre demande pour transfĂ©rer des paramĂštres de corps. Pour plus dâinformations, consultez Authentification.
ParamĂštres de requĂȘte
Les paramĂštres de requĂȘte vous permettent de contrĂŽler les donnĂ©es retournĂ©es pour une requĂȘte. Ces paramĂštres sont habituellement facultatifs. La documentation de chaque point de terminaison de lâAPI REST GitHub dĂ©crit tout paramĂštre de requĂȘte quâil prend en charge. Pour plus dâinformations, consultez Documentation sur lâAPI REST GitHub.
Par exemple, le point de terminaison « RĂ©pertorier les Ă©vĂ©nements publics » retourne trente problĂšmes par dĂ©faut. Vous pouvez utiliser le paramĂštre de requĂȘte per_page
pour renvoyer deux problĂšmes au lieu de 30. Vous pouvez utiliser le paramĂštre de requĂȘte page
pour rĂ©cupĂ©rer uniquement la premiĂšre page des rĂ©sultats. Pour obtenir un exemple de demande qui utilise des paramĂštres de requĂȘte, consultez Effectuer une demande.
CrĂ©ation dâune requĂȘte
Cette section montre comment effectuer une demande authentifiĂ©e auprĂšs de lâAPI REST GitHub Ă lâaide de GitHub CLI.
1. Configurer
Installez GitHub CLI sur macOS, Windows ou Linux. Pour en savoir plus, consultez Installation dans le référentiel GitHub CLI.
2. Sâauthentifier
-
Pour vous authentifier sur GitHub, exécutez la commande suivante depuis votre terminal.
gh auth login
Vous pouvez utiliser lâoption
--scopes
pour spĂ©cifier les Ă©tendues voulues. Si vous souhaitez vous authentifier avec un jeton que vous avez créé, vous pouvez utiliser lâoption--with-token
. Pour plus dâinformations, consultez la documentation sur la sous-commande GitHub CLIauth login
. -
SĂ©lectionnez l'endroit oĂč vous souhaitez vous authentifier :
- Si vous accédez à GitHub à GitHub.com, sélectionnez GitHub.com.
- Si vous accédez à GitHub sur un autre domaine, sélectionnez Autre , puis entrez votre nom d'hÎte (par exemple :
octocorp.ghe.com
).
-
Suivez les autres invites à l'écran.
GitHub CLI enregistre automatiquement vos identifiants Git lorsque vous choisissez HTTPS comme protocole prĂ©fĂ©rĂ© pour les opĂ©rations Git et que vous rĂ©pondez « oui » Ă l'invite vous demandant si vous souhaitez vous authentifier sur Git avec vos identifiants GitHub. Ce procĂ©dĂ© peut ĂȘtre utile car il vous permet d'utiliser les commandes Git telles que
git push
etgit pull
, sans avoir Ă configurer un gestionnaire d'informations d'identification distinct ou Ă utiliser SSH.
3. Choisissez un point de terminaison pour votre demande
-
Choisissez un point de terminaison pour effectuer une demande. Vous pouvez explorer la documentation de lâAPI REST de GitHub pour dĂ©couvrir les points de terminaison que vous pouvez utiliser pour interagir avec GitHub.
-
Identifiez la mĂ©thode HTTP et le chemin dâaccĂšs du point de terminaison. Vous les envoyez avec votre demande. Pour plus dâinformations, consultez MĂ©thode HTTP et Chemin dâaccĂšs.
Par exemple, le point de terminaison « Créer un problÚme » utilise la méthode HTTP
POST
et le chemin dâaccĂšs/repos/{owner}/{repo}/issues
. -
Identifiez tous les paramĂštres de chemin dâaccĂšs requis. Les paramĂštres de chemin dâaccĂšs obligatoires apparaissent entre crochets
{}
dans le chemin dâaccĂšs du point de terminaison. Remplacez chaque espace rĂ©servĂ© du paramĂštre par la valeur souhaitĂ©e. Pour plus dâinformations, consultez Path.Par exemple, le point de terminaison « CrĂ©er un problĂšme » utilise le chemin dâaccĂšs
/repos/{owner}/{repo}/issues
et les paramĂštres de chemin dâaccĂšs sont{owner}
et{repo}
. Pour utiliser ce chemin dâaccĂšs dans votre demande dâAPI, remplacez{repo}
par le nom du référentiel dans lequel vous souhaitez créer un nouveau problÚme, puis remplacez{owner}
par le nom du compte propriétaire du référentiel.
4. Effectuez une demande avec GitHub CLI
Pour effectuer votre demande dâAPI, utilisez la sous-commande api
GitHub CLI. Pour plus dâinformations, consultez la documentation sur la sous-commande GitHub CLI api
.
Dans votre demande, spécifiez les optons et valeurs suivantes :
-
--nom d'hĂŽte : Si vous ĂȘtes authentifiĂ© sur plusieurs comptes Ă travers les plateformes GitHub, indiquez oĂč vous faites la demande. Par exemple :
--hostname octocorp.ghe.com
. -
--methode suivie de la mĂ©thode HTTP et du chemin dâaccĂšs du point de terminaison. Pour plus dâinformations, consultez MĂ©thode HTTP et Chemin dâaccĂšs.
-
--en-tĂȘte :
Accept
: transmettez le type de média dans unAccept
en-tĂȘte. Pour transfĂ©rer plusieurs types de mĂ©dia dans un en-tĂȘteAccept
, séparez les types de médias par une virgule :Accept: application/vnd.github+json,application/vnd.github.diff
. Pour plus dâinformations, consultezAccept
et Types de médias.X-GitHub-Api-Version
: transmettez la version de lâAPI dans unX-GitHub-Api-Version
en-tĂȘte. Pour plus dâinformations, consultezX-GitHub-Api-Version
.
-
-f
ou-F
suivi de tous les paramĂštres de corps ou de requĂȘte au formatkey=value
. Utilisez lâoption-F
pour tranfĂ©rer un paramĂštre qui est un nombre, boolĂ©en ou nul. Utilisez lâoption-f
pour transfĂ©rer des paramĂštres de chaĂźne.Certaines points de terminaison utilisent des paramĂštres de requĂȘte qui sont des tableaux. Pour envoyer un tableau dans la chaĂźne de requĂȘte, utilisez le paramĂštre de requĂȘte une fois par Ă©lĂ©ment de tableau et ajoutez
[]
aprĂšs le nom du paramĂštre de requĂȘte. Par exemple, pour fournir un tableau de deux ID de rĂ©fĂ©rentiel, utilisez-f repository_ids[]=REPOSITORY_A_ID -f repository_ids[]=REPOSITORY_B_ID
.Si vous nâavez pas besoin de spĂ©cifier de paramĂštres de corps ou de requĂȘte dans votre demande, ignorez cette option. Pour plus dâinformations, consultez ParamĂštres de corps et ParamĂštres de requĂȘte. Pour obtenir des exemples, consultez Exemple de demande utilisant des paramĂštres de corps et Exemple de demande utilisant des paramĂštres de requĂȘte.
-
--nom d'hĂŽte : Si vous ĂȘtes authentifiĂ© sur plusieurs comptes Ă travers les plateformes GitHub, indiquez oĂč vous faites la demande. Par exemple :
--hostname octocorp.ghe.com
.
Exemple de requĂȘte
Lâexemple de demande si-aprĂšs utilise le point de terminaison « Obtenir lâoctocat » pour renvoyer lâoctocat en tant quâart ASCII.
gh api --method GET /octocat \ --header 'Accept: application/vnd.github+json' \ --header "X-GitHub-Api-Version: 2022-11-28"
gh api --method GET /octocat \
--header 'Accept: application/vnd.github+json' \
--header "X-GitHub-Api-Version: 2022-11-28"
Exemple de dmande utilisant des paramĂštres de requĂȘte
Le point de terminaison « RĂ©pertorier les Ă©vĂ©nements publics » retourne trente problĂšmes par dĂ©faut. Lâexemple suivant utilise le paramĂštre de requĂȘte per_page
pour renvoyer deux problĂšmes au lieu de 30, et le paramĂštre de requĂȘte page
pour récupérer uniquement la premiÚre page des résultats.
gh api --method GET /events -F per_page=2 -F page=1 --header 'Accept: application/vnd.github+json' \
gh api --method GET /events -F per_page=2 -F page=1
--header 'Accept: application/vnd.github+json' \
Exemple de demande utilisant des paramĂštres de corps
Lâexemple suivant utilise le point de terminaison « CrĂ©er un problĂšme » pour crĂ©er un nouveau problĂšme dans le rĂ©fĂ©rentiel octocat/Couteau Ă cuillĂšre. Dans la rĂ©ponse, recherchez le html_url
de votre problÚme et accédez à votre problÚme dans le navigateur.
gh api --method POST /repos/octocat/Spoon-Knife/issues \ --header "Accept: application/vnd.github+json" \ --header "X-GitHub-Api-Version: 2022-11-28" \ -f title='Created with the REST API' \ -f body='This is a test issue created by the REST API' \
gh api --method POST /repos/octocat/Spoon-Knife/issues \
--header "Accept: application/vnd.github+json" \
--header "X-GitHub-Api-Version: 2022-11-28" \
-f title='Created with the REST API' \
-f body='This is a test issue created by the REST API' \
Cette section montre comment effectuer une demande authentifiĂ©e auprĂšs de lâAPI REST GitHub Ă lâaide curl
.
1. Configurer
Vous devez disposer de curl
installé sur votre ordinateur. Pour vérifier si curl
est déjà installé, exécutez curl --version
sur la ligne de commande.
- Si la sortie fournit des informations sur la version de
curl
, cela signifie quecurl
est installĂ©. - Si vous recevez un message similaire Ă
command not found: curl
, cela signifie quecurl
nâest pas installĂ©. TĂ©lĂ©chargez et installezcurl
. Pour plus dâinformations, consultez la page de tĂ©lĂ©chargement de boucle.
2. Choisissez un point de terminaison pour votre demande
-
Choisissez un point de terminaison pour effectuer une demande. Vous pouvez explorer la documentation de lâAPI REST de GitHub pour dĂ©couvrir les points de terminaison que vous pouvez utiliser pour interagir avec GitHub.
-
Identifiez la mĂ©thode HTTP et le chemin dâaccĂšs du point de terminaison. Vous les envoyez avec votre demande. Pour plus dâinformations, consultez MĂ©thode HTTP et Chemin dâaccĂšs.
Par exemple, le point de terminaison « Créer un problÚme » utilise la méthode HTTP
POST
et le chemin dâaccĂšs/repos/{owner}/{repo}/issues
. -
Identifiez tous les paramĂštres de chemin dâaccĂšs requis. Les paramĂštres de chemin dâaccĂšs obligatoires apparaissent entre crochets
{}
dans le chemin dâaccĂšs du point de terminaison. Remplacez chaque espace rĂ©servĂ© du paramĂštre par la valeur souhaitĂ©e. Pour plus dâinformations, consultez Path.Par exemple, le point de terminaison « CrĂ©er un problĂšme » utilise le chemin dâaccĂšs
/repos/{owner}/{repo}/issues
et les paramĂštres de chemin dâaccĂšs sont{owner}
et{repo}
. Pour utiliser ce chemin dâaccĂšs dans votre demande dâAPI, remplacez{repo}
par le nom du référentiel dans lequel vous souhaitez créer un nouveau problÚme, puis remplacez{owner}
par le nom du compte propriétaire du référentiel.
3. CrĂ©ez des informations dâidentification dâauthentification
CrĂ©ez un jeton dâaccĂšs pour authentifier votre demande. Vous pouvez enregistrer votre jeton et lâutiliser pour plusieurs demandes. Donnez au jeton toutes les Ă©tendues ou autorisations requises pour accĂ©der au point de terminaison. Vous enverrez ce jeton dans un en-tĂȘte Authorization
avec votre demande. Pour en savoir plus, consultez Authentification.
4. Effectuez une demande curl
Utilisez la commande curl
pour effectuer votre requĂȘte. Pour plus dâinformations, consultez la documentation de boucle.
Spécifiez les options et valeurs suivantes dans votre demande :
-
--request
ou-X
suivi de la méthode HTTP en tant que valeur. Pour plus d'informations, consultez Méthode HTTP. -
--url
suivi du chemin complet comme valeur. Le chemin complet est une URL qui comprend l'URL de base de l'API REST de GitHub (https://api.github.com
ouhttps://api.SUBDOMAIN.ghe.com
, selon l'endroit oĂč vous accĂ©dez GitHub) et le chemin du point de terminaison, comme ceci :https://api.github.com/PATH
. Remplacer par le chemin d'accĂšs au point de terminaison. Pour plus dâinformations, consultez Path.Pour utiliser les paramĂštres de requĂȘte, ajoutez un
?
Ă la fin du chemin dâaccĂšs, puis ajoutez le nom et la valeur de votre paramĂštre de requĂȘte dans le formulaireparameter_name=value
. SĂ©parez les paramĂštres de requĂȘte, quand il y en a plusieurs, par un&
. Si vous souhaitez envoyer un tableau dans la chaĂźne de requĂȘte, utilisez le paramĂštre de requĂȘte une fois par Ă©lĂ©ment de tableau et ajoutez[]
aprĂšs le nom du paramĂštre de requĂȘte. Par exemple, pour fournir un tableau de deux ID de rĂ©fĂ©rentiel, utilisez?repository_ids[]=REPOSITORY_A_ID&repository_ids[]=REPOSITORY_B_ID
. Pour en savoir plus, consultez ParamĂštres des requĂȘtes. Pour obtenir un exemple, consultez Exemple de demande utilisant des paramĂštres de requĂȘte. -
--header
ou-H
:Accept
: transmettez le type de média dans unAccept
en-tĂȘte. Pour transfĂ©rer plusieurs types de mĂ©dia dans un en-tĂȘteAccept
, séparez les types de média par une virgule, par exemple :Accept: application/vnd.github+json,application/vnd.github.diff
. Pour plus dâinformations, consultezAccept
et Types de médias.X-GitHub-Api-Version
: transmettez la version de lâAPI dans unX-GitHub-Api-Version
en-tĂȘte. Pour plus dâinformations, consultezX-GitHub-Api-Version
.Authorization
: transmettez votre jeton dâauthentification dans unAuthorization
en-tĂȘte. Sachez que dans la plupart des cas, vous pouvez utiliserAuthorization: Bearer
ouAuthorization: token
pour tranférer un jeton. Toutefois, si vous passez un jeton web JSON (JWT), vous devez utiliserAuthorization: Bearer
. Pour en savoir plus, consultez Authentification. Pour obtenir un exemple de demande qui utilise un en-tĂȘteAuthorization
, consultez Exemple de demande utilisant des paramĂštres de corps.
-
--data
ou-d
suivi de tous les paramĂštres de corps au sein dâun objet JSON. Si vous ne souhaitez pas spĂ©cifier de paramĂštres de corps dans votre demande, ignorez cette option. Pour plus dâinformations, consultez ParamĂštres de corps. Pour obtenir un exemple, consultez Exemple de demande utilisant des paramĂštres de corps.
Exemple de requĂȘte
Lâexemple de demande si-aprĂšs utilise le point de terminaison « Obtenir lâoctocat » pour renvoyer lâoctocat en tant quâart ASCII.
curl --request GET \ --url "https://api.github.com/octocat" \ --header "Accept: application/vnd.github+json" \ --header "X-GitHub-Api-Version: 2022-11-28"
curl --request GET \
--url "https://api.github.com/octocat" \
--header "Accept: application/vnd.github+json" \
--header "X-GitHub-Api-Version: 2022-11-28"
Exemple de dmande utilisant des paramĂštres de requĂȘte
Le point de terminaison « RĂ©pertorier les Ă©vĂ©nements publics » retourne trente problĂšmes par dĂ©faut. Lâexemple suivant utilise le paramĂštre de requĂȘte per_page
pour renvoyer deux problĂšmes au lieu de 30, et le paramĂštre de requĂȘte page
pour récupérer uniquement la premiÚre page des résultats.
curl --request GET \ --url "https://api.github.com/events?per_page=2&page=1" \ --header "Accept: application/vnd.github+json" \ --header "X-GitHub-Api-Version: 2022-11-28" \ https://api.github.com/events
curl --request GET \
--url "https://api.github.com/events?per_page=2&page=1" \
--header "Accept: application/vnd.github+json" \
--header "X-GitHub-Api-Version: 2022-11-28" \
https://api.github.com/events
Exemple de demande utilisant des paramĂštres de corps
Lâexemple suivant utilise le point de terminaison CrĂ©er un problĂšme pour crĂ©er un nouveau problĂšme dans le rĂ©fĂ©rentiel octocat/Spoon-Knife. Remplacez YOUR-TOKEN
par le jeton dâauthentification que vous avez créé Ă lâĂ©tape prĂ©cĂ©dente.
Remarque
Si vous utilisez un fine-grained personal access token, vous devez remplacer octocat/Spoon-Knife
par un rĂ©fĂ©rentiel qui vous appartient ou qui appartient Ă une organisation dont vous ĂȘtes membre. Votre jeton doit avoir accĂšs Ă ce dĂ©pĂŽt et avoir des autorisations en lecture et Ă©criture pour les problĂšmes de dĂ©pĂŽt. Pour plus dâinformations, consultez « Gestion de vos jetons d'accĂšs personnels ».
curl \ --request POST \ --url "https://api.github.com/repos/octocat/Spoon-Knife/issues" \ --header "Accept: application/vnd.github+json" \ --header "X-GitHub-Api-Version: 2022-11-28" \ --header "Authorization: Bearer YOUR-TOKEN" \ --data '{ "title": "Created with the REST API", "body": "This is a test issue created by the REST API" }'
curl \
--request POST \
--url "https://api.github.com/repos/octocat/Spoon-Knife/issues" \
--header "Accept: application/vnd.github+json" \
--header "X-GitHub-Api-Version: 2022-11-28" \
--header "Authorization: Bearer YOUR-TOKEN" \
--data '{
"title": "Created with the REST API",
"body": "This is a test issue created by the REST API"
}'
Cette section montre comment effectuer une demande Ă lâAPI REST GitHub Ă lâaide de JavaScript et Octokit.js. Pour obtenir un guide plus dĂ©taillĂ©, consultez Ăcriture de scripts avec lâAPI REST et JavaScript.
1. Configurer
Vous devez installer octokit
pour utiliser la bibliothÚque Octokit.js illustrée dans les exemples suivants.
- Installez
octokit
. Par exemple :npm install octokit
. Pour dĂ©couvrir dâautres maniĂšres dâinstaller ou chargeroctokit
, consultez le fichier Lisez-moi dâOctokit.js.
2. Choisissez un point de terminaison pour votre demande
-
Choisissez un point de terminaison pour effectuer une demande. Vous pouvez explorer la documentation de lâAPI REST de GitHub pour dĂ©couvrir les points de terminaison que vous pouvez utiliser pour interagir avec GitHub.
-
Identifiez la mĂ©thode HTTP et le chemin dâaccĂšs du point de terminaison. Vous les envoyez avec votre demande. Pour plus dâinformations, consultez MĂ©thode HTTP et Chemin dâaccĂšs.
Par exemple, le point de terminaison « Créer un problÚme » utilise la méthode HTTP
POST
et le chemin dâaccĂšs/repos/{owner}/{repo}/issues
. -
Identifiez tous les paramĂštres de chemin dâaccĂšs requis. Les paramĂštres de chemin dâaccĂšs obligatoires apparaissent entre crochets
{}
dans le chemin dâaccĂšs du point de terminaison. Remplacez chaque espace rĂ©servĂ© du paramĂštre par la valeur souhaitĂ©e. Pour plus dâinformations, consultez Path.Par exemple, le point de terminaison « CrĂ©er un problĂšme » utilise le chemin dâaccĂšs
/repos/{owner}/{repo}/issues
et les paramĂštres de chemin dâaccĂšs sont{owner}
et{repo}
. Pour utiliser ce chemin dâaccĂšs dans votre demande dâAPI, remplacez{repo}
par le nom du référentiel dans lequel vous souhaitez créer un nouveau problÚme, puis remplacez{owner}
par le nom du compte propriétaire du référentiel.
3. CrĂ©ez un jeton dâaccĂšs
CrĂ©ez un jeton dâaccĂšs pour authentifier votre demande. Vous pouvez enregistrer votre jeton et lâutiliser pour plusieurs demandes. Donnez au jeton toutes les Ă©tendues ou autorisations requises pour accĂ©der au point de terminaison. Vous enverrez ce jeton dans un en-tĂȘte Authorization
avec votre demande. Pour en savoir plus, consultez Authentification.
4. Effectuez une demande avec Octokit.js
-
Importez
octokit
dans votre script. Par exemple :import { Octokit } from "octokit";
. Pour dĂ©couvrir dâautres maniĂšres dâimporteroctokit
, consultez le fichier Lisez-moi dâOctokit.js. -
Créez une instance de
Octokit
avec votre jeton. RemplacezYOUR-TOKEN
par votre jeton.JavaScript const octokit = new Octokit({ auth: 'YOUR-TOKEN' });
const octokit = new Octokit({ auth: 'YOUR-TOKEN' });
-
Utilisez
octokit.request
pour exĂ©cuter votre requĂȘte.- Envoyez la mĂ©thode HTTP et le chemin dâaccĂšs en tant que premier argument Ă la mĂ©thode
request
. Pour plus dâinformations, consultez MĂ©thode HTTP et Chemin dâaccĂšs. - SpĂ©cifiez tous les paramĂštres de chemin dâaccĂšs, de requĂȘte et de corps dans un objet en tant que second argument Ă la mĂ©thode
request
. Pour plus dâinformations, consultez ParamĂštres.
Dans lâexemple de demande suivant, la mĂ©thode HTTP est
POST
, le chemin dâaccĂšs est/repos/{owner}/{repo}/issues
, les paramĂštres de chemin dâaccĂšs sontowner: "octocat"
etrepo: "Spoon-Knife"
, et les paramĂštres de corps sonttitle: "Created with the REST API"
etbody: "This is a test issue created by the REST API"
.Remarque
Si vous utilisez un fine-grained personal access token, vous devez remplacer
octocat/Spoon-Knife
par un rĂ©fĂ©rentiel qui vous appartient ou qui appartient Ă une organisation dont vous ĂȘtes membre. Votre jeton doit avoir accĂšs Ă ce dĂ©pĂŽt et avoir des autorisations en lecture et Ă©criture pour les problĂšmes de dĂ©pĂŽt. Pour plus dâinformations, consultez « Gestion de vos jetons d'accĂšs personnels ».JavaScript await octokit.request("POST /repos/{owner}/{repo}/issues", { owner: "octocat", repo: "Spoon-Knife", title: "Created with the REST API", body: "This is a test issue created by the REST API", });
await octokit.request("POST /repos/{owner}/{repo}/issues", { owner: "octocat", repo: "Spoon-Knife", title: "Created with the REST API", body: "This is a test issue created by the REST API", });
La méthode
request
passe automatiquement lâen-tĂȘteAccept: application/vnd.github+json
. Pour passer des en-tĂȘtes supplĂ©mentaires ou un en-tĂȘteAccept
différent, ajoutez une propriétéheaders
Ă lâobjet passĂ© en tant que deuxiĂšme argument. La valeur de la propriĂ©tĂ©headers
est un objet avec les noms dâen-tĂȘte en tant que clĂ©s et les valeurs dâen-tĂȘte en tant que valeurs.Par exemple, le code ci-aprĂšs envoie un en-tĂȘte
content-type
avec la valeur detext/plain
et un en-tĂȘteX-GitHub-Api-Version
avec la valeur de2022-11-28
.JavaScript await octokit.request("GET /octocat", { headers: { "content-type": "text/plain", "X-GitHub-Api-Version": "2022-11-28", }, });
await octokit.request("GET /octocat", { headers: { "content-type": "text/plain", "X-GitHub-Api-Version": "2022-11-28", }, });
- Envoyez la mĂ©thode HTTP et le chemin dâaccĂšs en tant que premier argument Ă la mĂ©thode
Utilisation de la réponse
aprĂšs avoir effectuer une demande, lâAPI retourne le code dâĂ©tat de la rĂ©ponse, les en-tĂȘtes de rĂ©ponse et Ă©ventuellement un corps de rĂ©ponse.
Ă propos du code et des en-tĂȘtes de rĂ©ponse
Chaque requĂȘte retourne un code dâĂ©tat HTTP qui indique la rĂ©ussite de la rĂ©ponse. Pour plus dâinformations sur les codes de rĂ©ponse, consultez la documentation relative aux codes dâĂ©tat de la rĂ©ponse HTTP MDN.
De plus, la rĂ©ponse inclut des en-tĂȘtes qui fournissent dâautres dĂ©tails. Les en-tĂȘtes qui commencent par X-
ou x-
sont propres Ă GitHub. Par exemple, les en-tĂȘtes x-ratelimit-remaining
et x-ratelimit-reset
vous indiquent le nombre de requĂȘtes que vous pouvez effectuer pendant une pĂ©riode donnĂ©e.
Pour visualiser le code dâĂ©tat et les en-tĂȘtes, utilisez lâoption --include
ou --i
quand vous envoyez votre demande.
Par exemple, cette demande obtient une liste de problÚmes dans le référentiel octocat/Couteau à cuillÚre :
gh api \
--header 'Accept: application/vnd.github+json' \
--method GET /repos/octocat/Spoon-Knife/issues \
-F per_page=2 --include
Et elle retourne un code de rĂ©ponse et des en-tĂȘtes qui ressemblent Ă ceci :
HTTP/2.0 200 OK
Access-Control-Allow-Origin: *
Access-Control-Expose-Headers: ETag, Link, Location, Retry-After, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Used, X-RateLimit-Resource, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval, X-GitHub-Media-Type, X-GitHub-SSO, X-GitHub-Request-Id, Deprecation, Sunset
Cache-Control: private, max-age=60, s-maxage=60
Content-Security-Policy: default-src 'none'
Content-Type: application/json; charset=utf-8
Date: Thu, 04 Aug 2022 19:56:41 GMT
Etag: W/"a63dfbcfdb73621e9d2e89551edcf9856731ced534bd7f1e114a5da1f5f73418"
Link: <https://api.github.com/repositories/1300192/issues?per_page=1&page=2>; rel="next", <https://api.github.com/repositories/1300192/issues?per_page=1&page=14817>; rel="last"
Referrer-Policy: origin-when-cross-origin, strict-origin-when-cross-origin
Server: GitHub.com
Strict-Transport-Security: max-age=31536000; includeSubdomains; preload
Vary: Accept, Authorization, Cookie, Accept-Encoding, Accept, X-Requested-With
X-Accepted-Oauth-Scopes: repo
X-Content-Type-Options: nosniff
X-Frame-Options: deny
X-Github-Api-Version-Selected: 2022-08-09
X-Github-Media-Type: github.v3; format=json
X-Github-Request-Id: 1C73:26D4:E2E500:1EF78F4:62EC2479
X-Oauth-Client-Id: 178c6fc778ccc68e1d6a
X-Oauth-Scopes: gist, read:org, repo, workflow
X-Ratelimit-Limit: 15000
X-Ratelimit-Remaining: 14996
X-Ratelimit-Reset: 1659645499
X-Ratelimit-Resource: core
X-Ratelimit-Used: 4
X-Xss-Protection: 0
Dans cet exemple, le code de réponse est 200
, ce qui indique que la requĂȘte est rĂ©ussie.
Quand vous effectuez une requĂȘte avec Octokit.js, la mĂ©thode request
retourne une promesse. Si la requĂȘte rĂ©ussit, la promesse est rĂ©solue en objet qui inclut le code dâĂ©tat HTTP de la rĂ©ponse (status
) et les en-tĂȘtes de rĂ©ponse (headers
). Si une erreur se produit, la promesse est rĂ©solue en objet qui inclut le code dâĂ©tat HTTP de la rĂ©ponse (status
) et les en-tĂȘtes de rĂ©ponse (response.headers
).
Vous pouvez utiliser un bloc try/catch
pour intercepter une erreur Ă©ventuelle. Par exemple, si la requĂȘte indiquĂ©e dans le script suivant rĂ©ussit, le script journalise le code dâĂ©tat et la valeur de lâen-tĂȘte x-ratelimit-remaining
. Si la requĂȘte Ă©choue, le script journalise le code dâĂ©tat, la valeur de lâen-tĂȘte x-ratelimit-remaining
et le message dâerreur.
Dans lâexemple suivant, remplacez REPO-OWNER
par le nom du compte propriétaire du référentiel et REPO-NAME
par le nom du référentiel.
try { const result = await octokit.request("GET /repos/{owner}/{repo}/issues", { owner: "REPO-OWNER", repo: "REPO-NAME", per_page: 2, }); console.log(`Success! Status: ${result.status}. Rate limit remaining: ${result.headers["x-ratelimit-remaining"]}`) } catch (error) { console.log(`Error! Status: ${error.status}. Rate limit remaining: ${error.headers["x-ratelimit-remaining"]}. Message: ${error.response.data.message}`) }
try {
const result = await octokit.request("GET /repos/{owner}/{repo}/issues", {
owner: "REPO-OWNER",
repo: "REPO-NAME",
per_page: 2,
});
console.log(`Success! Status: ${result.status}. Rate limit remaining: ${result.headers["x-ratelimit-remaining"]}`)
} catch (error) {
console.log(`Error! Status: ${error.status}. Rate limit remaining: ${error.headers["x-ratelimit-remaining"]}. Message: ${error.response.data.message}`)
}
Pour visualiser le code dâĂ©tat et les en-tĂȘtes, utilisez lâoption --include
ou --i
quand vous envoyez votre demande.
Par exemple, cette demande obtient une liste de problÚmes dans le référentiel octocat/Couteau à cuillÚre :
curl --request GET \
--url "https://api.github.com/repos/octocat/Spoon-Knife/issues?per_page=2" \
--header "Accept: application/vnd.github+json" \
--header "Authorization: Bearer YOUR-TOKEN" \
--include
Et elle retourne un code de rĂ©ponse et des en-tĂȘtes qui ressemblent Ă ceci :
HTTP/2 200
server: GitHub.com
date: Thu, 04 Aug 2022 20:07:51 GMT
content-type: application/json; charset=utf-8
cache-control: public, max-age=60, s-maxage=60
vary: Accept, Accept-Encoding, Accept, X-Requested-With
etag: W/"7fceb7e8c958d3ec4d02524b042578dcc7b282192e6c939070f4a70390962e18"
x-github-media-type: github.v3; format=json
link: <https://api.github.com/repositories/1300192/issues?per_page=2&sort=updated&direction=asc&page=2>; rel="next", <https://api.github.com/repositories/1300192/issues?per_page=2&sort=updated&direction=asc&page=7409>; rel="last"
access-control-expose-headers: ETag, Link, Location, Retry-After, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Used, X-RateLimit-Resource, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval, X-GitHub-Media-Type, X-GitHub-SSO, X-GitHub-Request-Id, Deprecation, Sunset
access-control-allow-origin: *
strict-transport-security: max-age=31536000; includeSubdomains; preload
x-frame-options: deny
x-content-type-options: nosniff
x-xss-protection: 0
referrer-policy: origin-when-cross-origin, strict-origin-when-cross-origin
content-security-policy: default-src 'none'
x-ratelimit-limit: 15000
x-ratelimit-remaining: 14996
x-ratelimit-reset: 1659645535
x-ratelimit-resource: core
x-ratelimit-used: 4
accept-ranges: bytes
content-length: 4936
x-github-request-id: 14E0:4BC6:F1B8BA:208E317:62EC2715
Dans cet exemple, le code de réponse est 200
, ce qui indique que la requĂȘte est rĂ©ussie.
à propos du corps de réponse
De nombreux points de terminaison retournent un corps de réponse. Sauf indication contraire, le corps de réponse est au format JSON. Les champs vierges sont inclus comme null
au lieu dâĂȘtre omis. Tous les horodateurs reviennent en temps UTC, format ISO 8601 : YYYY-MM-DDTHH:MM:SSZ
.
Contrairement Ă lâAPI GraphQL oĂč vous spĂ©cifiez les informations que vous voulez, lâAPI REST renvoie gĂ©nĂ©ralement plus dâinformations que nĂ©cessaire. Si vous le voulez, vous pouvez analyser la rĂ©ponse pour extraire des Ă©lĂ©ments spĂ©cifiques dâinformations.
Par exemple, vous pouvez utiliser >
pour rediriger la rĂ©ponse vers un fichier. Dans lâexemple suivant, remplacez REPO-OWNER
par le nom du compte propriétaire du référentiel et REPO-NAME
par le nom du référentiel.
gh api \ --header 'Accept: application/vnd.github+json' \ --method GET /repos/REPO-OWNER/REPO-NAME/issues \ -F per_page=2 > data.json
gh api \
--header 'Accept: application/vnd.github+json' \
--method GET /repos/REPO-OWNER/REPO-NAME/issues \
-F per_page=2 > data.json
Vous pouvez ensuite utiliser jq pour obtenir le titre et lâID dâauteur de chaque problĂšme :
jq '.[] | {title: .title, authorID: .user.id}' data.json
jq '.[] | {title: .title, authorID: .user.id}' data.json
Les deux commandes précédentes retournent quelque chose comme ceci :
{
"title": "Update index.html",
"authorID": 10701255
}
{
"title": "Edit index file",
"authorID": 53709285
}
Pour plus dâinformations sur jq, consultez la documentation de jq.
Par exemple, vous pouvez obtenir le titre et lâID dâauteur de chaque problĂšme. Dans lâexemple suivant, remplacez REPO-OWNER
par le nom du compte propriétaire du référentiel et REPO-NAME
par le nom du référentiel.
try { const result = await octokit.request("GET /repos/{owner}/{repo}/issues", { owner: "REPO-OWNER", repo: "REPO-NAME", per_page: 2, }); const titleAndAuthor = result.data.map(issue => {title: issue.title, authorID: issue.user.id}) console.log(titleAndAuthor) } catch (error) { console.log(`Error! Status: ${error.status}. Message: ${error.response.data.message}`) }
try {
const result = await octokit.request("GET /repos/{owner}/{repo}/issues", {
owner: "REPO-OWNER",
repo: "REPO-NAME",
per_page: 2,
});
const titleAndAuthor = result.data.map(issue => {title: issue.title, authorID: issue.user.id})
console.log(titleAndAuthor)
} catch (error) {
console.log(`Error! Status: ${error.status}. Message: ${error.response.data.message}`)
}
Par exemple, vous pouvez utiliser >
pour rediriger la rĂ©ponse vers un fichier. Dans lâexemple suivant, remplacez REPO-OWNER
par le nom du compte propriétaire du référentiel et REPO-NAME
par le nom du référentiel.
curl --request GET \ --url "https://api.github.com/repos/REPO-OWNER/REPO-NAME/issues?per_page=2" \ --header "Accept: application/vnd.github+json" \ --header "Authorization: Bearer YOUR-TOKEN" > data.json
curl --request GET \
--url "https://api.github.com/repos/REPO-OWNER/REPO-NAME/issues?per_page=2" \
--header "Accept: application/vnd.github+json" \
--header "Authorization: Bearer YOUR-TOKEN" > data.json
Vous pouvez ensuite utiliser jq pour obtenir le titre et lâID dâauteur de chaque problĂšme :
jq '.[] | {title: .title, authorID: .user.id}' data.json
jq '.[] | {title: .title, authorID: .user.id}' data.json
Les deux commandes précédentes retournent quelque chose comme ceci :
{
"title": "Update index.html",
"authorID": 10701255
}
{
"title": "Edit index file",
"authorID": 53709285
}
Pour plus dâinformations sur jq, consultez la documentation de jq.
Représentations détaillées ou résumées
Une rĂ©ponse peut comprendre tous les attributs dâune ressource ou seulement un sous-ensemble dâattributs, selon que vous rĂ©cupĂ©rez une ressource individuelle ou une liste de ressources.
- Quand vous rĂ©cupĂ©rez une ressource individuelle, notamment un rĂ©fĂ©rentiel spĂ©cifique, la rĂ©ponse comprend gĂ©nĂ©ralement tous les attributs de cette ressource. Il sâagit de la reprĂ©sentation « dĂ©taillĂ©e » de la ressource.
- Quand vous rĂ©cupĂ©rez une liste de ressources, comme une liste de plusieurs rĂ©fĂ©rentiels, la rĂ©ponse comprend uniquement un sous-ensemble des attributs pour chaque ressource. Il sâagit de la reprĂ©sentation « rĂ©capitulative » de la ressource.
Sachez que lâautorisation influe parfois sur quantitĂ© de dĂ©tail comprise dans la reprĂ©sentation.
La raison en est que certains attributs sont coĂ»teux en calcul pour lâAPI,, donc GitHub exclut ces attributs de la reprĂ©sentation de rĂ©sumĂ©. POur obtenir ces attributs, vous pouvez rĂ©cupĂ©rez la reprĂ©sentation dĂ©taillĂ©e.
La documentation fournit un exemple de rĂ©ponse pour chaque mĂ©thode dâAPI. Lâexemple de rĂ©ponse illustre tous les attributs retournĂ©s par cette mĂ©thode.
Hypermédia
Toutes les ressources peuvent comporter une ou plusieurs propriétés *_url
liĂ©es Ă dâautres ressources. Ces propriĂ©tĂ©s visent Ă fournir des URL explicites afin dâĂ©viter aux clients dâAPI appropriĂ©s dâavoir Ă construire des URL eux-mĂȘmes. Il est vivement recommandĂ© aux clients dâAPI de les utiliser. Cela facilite les mises Ă niveau futures de lâAPI pour les dĂ©veloppeurs. Toutes les URL doivent reprĂ©senter des modĂšles dâURI RFC 6570 appropriĂ©s.
Vous pouvez ensuite dĂ©velopper ces modĂšles Ă lâaide de la gemme uri_template ou dâun objet similaire :
>> tmpl = URITemplate.new('/notifications{?since,all,participating}')
>> tmpl.expand
=> "/notifications"
>> tmpl.expand all: 1
=> "/notifications?all=1"
>> tmpl.expand all: 1, participating: 1
=> "/notifications?all=1&participating=1"
Ătapes suivantes
Cet article a montrĂ© comment lister et crĂ©er des problĂšmes dans un dĂ©pĂŽt. En guise de pratique, essayez de commenter un problĂšme, dâen modifier le titre ou de le fermer. Pour plus dâinformations, consultez un point de terminaison « CrĂ©er un commentaire de problĂšme » et le point de terminaison « Mettre Ă jour un problĂšme ».
Pour plus dâinformations sur dâautres points de terminaison que vous pouvez utiliser, consultez la documentation de rĂ©fĂ©rence REST.