> ## Documentation Index
> Fetch the complete documentation index at: https://help.teable.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Mettre à jour un Enregistrement

### Chemin

PATCH /api/table/\{tableId}/record/\{recordId}

### Requête

#### Paramètres de chemin

* tableId (string) : L’identifiant unique de la Table [(comment l’obtenir)](/fr/api-doc/get-id#tableid).
* recordId (string) : L’identifiant unique de l’Enregistrement à mettre à jour [(comment l’obtenir)](/fr/api-doc/get-id#recordid).

#### Corps de la requête

* **record (obligatoire)**
  * Description : Les données de l’Enregistrement à mettre à jour
  * Type : Objet
  * Exemple :
    ```json theme={null}
    {
      "fields": {
        "Name": "John Doe",
        "Age": 31,
        "Email": "john.doe@example.com"
      }
    }
    ```
  * Remarque : L’objet `fields` contient les noms de Champ et leurs nouvelles valeurs correspondantes. Chaque type de Champ a une structure de valeur différente ; consultez [Types de valeurs des Champs d’Enregistrement](/fr/api-doc/record/interface) pour plus de détails.

Pour effacer la valeur d’un Champ, transmettez explicitement `null`. Si un nom de Champ n’est pas inclus, aucune mise à jour ne sera effectuée pour ce Champ.

* **fieldKeyType (facultatif)**
  * Description : Spécifie le type de clé de Champ
  * Type : Chaîne
  * Valeurs possibles :
    * "name" : Utiliser le nom du Champ comme clé
    * "id" : Utiliser l’ID de Champ comme clé
    * "dbFieldName" : Utiliser le dbFieldName du Champ comme clé
  * Exemple : `"name"` ou `"id"` ou `"dbFieldName"`
  * Remarque : S’il n’est pas spécifié, le nom du Champ est utilisé comme clé par défaut.
  * Utilisation :
    * Lorsque la valeur est "name" :
      ```json theme={null}
      {
        "fields": {
          "Name": "John Doe",
          "Age": 30
        }
      }
      ```
    * Lorsque la valeur est "id" :
      ```json theme={null}
      {
        "fields": {
          "fldABCDEFGHIJKLMN": "John Doe",
          "fldOPQRSTUVWXYZ12": 30
        }
      }
      ```
* **typecast (facultatif)**
  * Description : Indique s’il faut convertir automatiquement les types de valeur de Champ. Par défaut, une validation stricte est appliquée et exige que les valeurs fournies correspondent au type de données du Champ actuel. Si cette option est activée, le système tentera une conversion automatique.
  * Type : Booléen
  * Valeurs possibles : true ou false
  * Exemple : `true`
  * Remarque : Si la valeur est true, le système tentera de convertir les valeurs fournies vers le type de valeur de Champ approprié.
  * Exemples d’utilisation :
    * Champ de lien : le texte de clé primaire peut être utilisé directement pour établir le lien
      ```json theme={null}
      {
        "User table": "John Smith"
      }
      ```
    * Champ de date : des chaînes de date dans un format non standard peuvent être utilisées
      ```json theme={null}
      {
        "Date": "2023-05-15"
      }
      ```
    * Champ utilisateur : le nom d’utilisateur peut être utilisé directement
      ```json theme={null}
      {
        "Assigned To": "John Doe"
      }
      ```

Pour téléverser de nouveaux fichiers dans des Champs de pièce jointe, consultez la section [Téléverser une pièce jointe](/fr/api-doc/record/upload-attachment).

* **order (facultatif)**
  * Description : Après avoir mis à jour l’Enregistrement, déplacez-le vers une position donnée dans une Vue donnée.
  * Type : Objet
  * Propriétés :
    * viewId : ID de Vue
    * anchorId : ID de l’Enregistrement d’ancrage
    * position : Position par rapport à l’Enregistrement d’ancrage. Valeurs possibles : `"before"` ou `"after"`
  * Exemple :
    ```json theme={null}
    {
      "viewId": "viwABCDEFGHIJKLMN",
      "anchorId": "rec123456789ABCDE",
      "position": "after"
    }
    ```

### Réponse

#### Réponse réussie

* Code d’état : 200 OK
* Corps de la réponse : Renvoie les données de l’Enregistrement mis à jour.

**Exemple de corps de réponse**

```json theme={null}
{
    "id": "rec123456789ABCDE",
    "fields": {
        "Name": "John Doe",
        "Age": 31,
        "Email": "john.doe@example.com"
    }
}
```

#### Réponses d’erreur

* Code d’état : 400 Bad Request : erreur de format du corps de la requête ou Champs obligatoires manquants.
* Code d’état : 404 Not Found : le tableId ou le recordId spécifié n’existe pas.

#### Exemple de code

<CodeGroup>
  ```bash CURL theme={null}
  curl -X PATCH 'https://app.teable.ai/api/table/__tableId__/record/__recordId__' \
    -H 'Authorization: Bearer __token__' \
    -H 'Content-Type: application/json' \
    -d '{
      "record": {
        "fields": {
          "Name": "John Doe",
          "Age": 31
        }
      }
    }'
  ```

  ```js JS SDK theme={null}
  import { configApi, updateRecord } from '@teable/openapi';

  configApi({
    endpoint: 'https://app.teable.ai',
    token,
  });

  const response = await updateRecord('__tableId__', '__recordId__', {
    record: {
      fields: {
        Name: 'John Doe',
        Age: 31
      }
    }
  });

  console.log(response.data);
  ```

  ```ts TypeScript theme={null}
  const response = await fetch('https://app.teable.ai/api/table/__tableId__/record/__recordId__', {
    method: 'PATCH',
    headers: {
      'Authorization': 'Bearer __token__',
      'Content-Type': 'application/json'
    },
    body: JSON.stringify({
      record: {
        fields: {
          Name: 'John Doe',
          Age: 31
        }
      }
    })
  });

  console.log(await response.json());
  ```

  ```python Python theme={null}
  import requests

  response = requests.patch(
      'https://app.teable.ai/api/table/__tableId__/record/__recordId__',
      headers={
          'Authorization': 'Bearer __token__',
          'Content-Type': 'application/json'
      },
      json={
          'record': {
              'fields': {
                  'Name': 'John Doe',
                  'Age': 31
              }
          }
      }
  )

  print(response.json())
  ```
</CodeGroup>
