# Effectuer une requête à l'API

## GraphQL

Contrairement aux architectures de type REST où le verbe HTTP et l'URI vont caractériser l'opération, toutes les requêtes à l'API GraphQL partageront le même verbe HTTP `POST` et le même URI.

{% hint style="info" %}
Cet URI unique dépend de l'environnement :&#x20;

* <https://api.mobilic.beta.gouv.fr/graphql> pour l'environnement de production
* <https://api.sandbox.mobilic.beta.gouv.fr/graphql> pour l'environnement bac à sable
  {% endhint %}

Le détail de l'opération sera précisé dans le corps JSON de la requête.

## Exemple simple <a href="#exemple-simple" id="exemple-simple"></a>

Toutes les actions réalisables sur l'API nécessitent d'avoir [créé un compte Mobilic](/guides/inscription-et-rattachement-des-salaries.md), et presque toutes requièrent d'être [authentifié](/guides/authentification.md).

Pour cet exemple basique, nous allons prendre une opération qui affiche l'email, le nom, et l'identifiant Mobilic de l'utilistateur, à l'aide de l'opération `me`

Le corps de la requête, au format JSON, doit contenir un champ `query` qui précise l'opération. La valeur de ce champ `query` est pour l'opération `me`:

```graphql
query {
    me {
        id
        lastName
        email
    }
}
```

Pour constituer le corps JSON de la requête, il suffit de mettre le texte de l'opération dans une chaîne de caractères, en échappant les guillemets à l'aide d'un anti-slash et en remplaçant les sauts de ligne par  :

```json
{
    \"query\": \"query {\n me {\n id\n lastName\n email\n }\n }\"
}
```

{% hint style="info" %}
Cette requête nécessite d'être authentifié, il faut donc rajouter les header HTTP d'authentification [décrit dans cette page](/guides/authentification.md#utilisation-des-jetons).
{% endhint %}

Pour soumettre la requête à l'API il est possible d'utiliser :

* la [console](https://mobilic.beta.gouv.fr/developers/playground) pour une expérience interactive. Voir le [guide de la console](/guides/utiliser-la-console.md).
* n'importe quelle librairie HTTP (`curl`, `requests` en `python`, ...)

### Via cURL <a href="#via-curl" id="via-curl"></a>

Il suffit de constituer le corps JSON de la requête à partir du champ `query`.

```bash
curl \
  -X POST \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer {access_token}" \
  -H "X-CLIENT-ID: {client_id}" \
  --data "{ \"query\": \"query {\n me {\n id\n lastName\n email\n }\n }\"}" \
  https://api.sandbox.mobilic.beta.gouv.fr/graphql
```

Pour plus d'informations sur la manière d'écrire des opérations GraphQL vous pouvez consulter notre [guide sur les opérations GraphQL](/guides/syntaxe-des-operations-graphql.md).


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://developers.mobilic.beta.gouv.fr/guides/effectuer-une-requete-a-lapi.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
