

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Importation d’un fichier OpenAPI pour mettre à jour une définition d’API existante
<a name="api-gateway-import-api-update"></a>

 Vous pouvez importer des définitions d’API uniquement pour mettre à jour une API existante, sans modifier la configuration de son point de terminaison, ainsi que ses étapes et variables d’étapes ou ses références à des clés d’API. 

 L' import-to-updateopération peut se produire selon deux modes : fusion ou remplacement. 

Lorsqu'une API (`A`) est fusionnée avec une autre (`B`), l'API résultante conserve les définitions des deux `A` et `B` si les deux APIs ne partagent aucune définition contradictoire. Lorsque des conflits surviennent, les définitions de méthode de l’API fusionnante (`A`) remplacent les définitions de méthode correspondantes de l’API fusionnée (`B`). Par exemple, supposons que `B` déclare les méthodes suivantes pour renvoyer les réponses `200` et `206` :

```
GET /a
POST /a
```

et `A` déclare la méthode suivante pour renvoyer les réponses `200` et `400` :

```
GET /a
```

Lorsque `A` est fusionnée avec `B`, l’API résultante génère les méthodes suivantes :

```
GET /a
```

qui retourne les réponses `200` et `400`, et 

```
POST /a
```

qui retourne les réponses `200` et `206`.

La fusion d’une API s’avère utile lorsque vous avez décomposé vos définitions d’API externes en plusieurs parties plus petites et souhaitez seulement appliquer les modifications à partir d’une de ces parties à la fois. Cela peut être le cas, par exemple, si plusieurs équipes sont responsables de différentes parties d’une API et que leurs modifications deviennent disponibles à des rythmes différents. Dans ce mode, les éléments de l’API existante qui ne sont pas spécifiquement définis dans la définition importée seront conservés. 

Lorsqu’une API (`A`) remplace une autre (`B`), l’API résultante prend les définitions de l’API remplaçante (`A`). Le remplacement d’une API est utile lorsqu’une définition d’API externe contient la définition complète d’une API. Dans ce mode, les éléments d’une API existante qui ne sont pas spécifiquement définis dans la définition importée sont supprimés. 

 Pour fusionner une API, envoyez une requête `PUT` à `https://apigateway.<region>.amazonaws.com/restapis/<restapi_id>?mode=merge`. La valeur du paramètre de chemin `restapi_id` spécifie l’API avec laquelle la définition d’API fournie va être fusionnée. 

 L’extrait de code suivant présente un exemple de requête `PUT` pour fusionner une définition d’API OpenAPI dans JSON en tant que charge utile, avec l’API spécifiée déjà présente dans API Gateway. 

```
PUT /restapis/<restapi_id>?mode=merge
Host:apigateway.<region>.amazonaws.com
Content-Type: application/json
Content-Length: ...

An OpenAPI API definition in JSON
```

 L’opération de mise à jour par fusion prend deux définitions d’API complètes et les fusionne ensemble. Pour une petite modification incrémentielle, vous pouvez utiliser l’opération de [mise à jour des ressources](https://docs.aws.amazon.com/apigateway/latest/api/API_UpdateResource.html). 

 Pour remplacer une API, envoyez une requête `PUT` à `https://apigateway.<region>.amazonaws.com/restapis/<restapi_id>?mode=overwrite`. Le paramètre de chemin `restapi_id` spécifie l’API qui sera remplacée par les définitions d’API fournies. 

 L’extrait de code suivant présente un exemple de requête de remplacement avec la charge utile d’une définition OpenAPI au format JSON : 

```
PUT /restapis/<restapi_id>?mode=overwrite
Host:apigateway.<region>.amazonaws.com
Content-Type: application/json
Content-Length: ...

An OpenAPI API definition in JSON
```

 Lorsque le paramètre `mode` de la requête n’est pas spécifié, le mode de fusion est sélectionné par défaut.

**Note**  
 Les opérations `PUT` sont idempotentes, mais pas atomiques. Cela signifie que si une erreur système se produit au cours du traitement, l’état final de l’API peut être incorrect. Cependant, la réussite de la répétition de l’opération fera passer l’API au même état final que si la première opération avait réussi. 