# REST : manipuler les données

### Généralités <a href="#rest-generalites" id="rest-generalites"></a>

Les requêtes REST utilisent les actions suivantes :

<table><thead><tr><th width="138.33333333333331">Méthode</th><th width="107">Action</th><th>Description</th></tr></thead><tbody><tr><td>GET</td><td>Get</td><td><p>Chargement d'un ou plusieurs objets.</p><ul><li>Charger une collection : <code>/rest/objet/</code></li><li>Charger un élément par son ID : <code>/rest/objet/id</code></li></ul></td></tr><tr><td>POST</td><td>Create</td><td>Création d'un nouvel objet.</td></tr><tr><td>PUT</td><td>Update</td><td>Mise à jour d'un objet existant.</td></tr><tr><td>DELETE</td><td>Delete</td><td>Suppression d'un objet.</td></tr></tbody></table>

### Endpoints <a href="#rest-urlapi" id="rest-urlapi"></a>

<table><thead><tr><th width="174">Environnement</th><th>Endpoint</th></tr></thead><tbody><tr><td>Production</td><td><a href="https://api.mon-butin.fr/rpc">https://api.mon-butin.fr</a></td></tr><tr><td>Edge</td><td><a href="https://api.mon-butin.fr/rpc">https://api-edge.mon-butin.fr</a></td></tr><tr><td>Test</td><td><a href="https://api.mon-butin.fr/rpc">https://api-test.mon-butin.fr</a></td></tr></tbody></table>

### Références à d'autres objets <a href="#rest-referencesadautresobjets" id="rest-referencesadautresobjets"></a>

Par convention, les références externes à d'autres objets adopte la syntaxe suivante : `nomObjet_id`.

Pour un objet `file` par exemple, ce sera `file_id`.

Seul l'ID de l'objet est retourné, sauf mention contraire.

### Dates <a href="#rest-dates" id="rest-dates"></a>

Les dates sont généralement retournées sous 2 formes :

* la date au format « [Heure Unix](https://fr.wikipedia.org/wiki/Heure_Unix) » ;
* la date au format ISO-8601 (nom de variable identique avec suffixe `-8601` ).

### Pagination des résultats <a href="#rest-paginationdesresultats" id="rest-paginationdesresultats"></a>

Une requête `GET` sur un endpoint sans `id` retourne la liste complète des données. Il est possible d'utiliser la pagination à l'aide des paramètres d'URL suivants :

* `limit` indique le nombre maximum de résultats à retourner
* `offset` pour indiquer le point de départ des résultats à retourner (correspond généralement à `limit * page`)

### Recherche <a href="#rest-recherche" id="rest-recherche"></a>

Les requêtes `GET` sur collection complète peuvent bénéficier du filtrage des résultats. Dans ce cas il faut passer chaque élément en paramètre d'URL avec la syntaxe suivante : `filters[attribut]=valeur`.

Par exemple, pour réccupérer la liste des fichiers déjà attachés à une recette ou une dépense : `/rest/files?filters[isAttached]=1`&#x20;

### Liste des objets disponibles <a href="#rest-listedesobjetsdisponibles" id="rest-listedesobjetsdisponibles"></a>

BankAccount \
BankStatus \
Customer \
Depreciation \
File \
FileTag \
Income \
Outcome \
PaymentMode \
Provision \
RecurringIncome \
RecurringOutcome \
Stack \
Supplier \
YearlyResult


---

# 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://docs.mon-butin.fr/api/rest-manipuler-les-donnees.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.
