

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.

# Développez REST APIs dans API Gateway
<a name="rest-api-develop"></a>

 Dans Amazon API Gateway, vous créez une API REST sous la forme d’un ensemble d’entités programmables, appelées [ressources](https://docs.aws.amazon.com/apigateway/latest/api/API_Resource.html). Par exemple, vous utilisez une [RestApi](https://docs.aws.amazon.com/apigateway/latest/api/API_RestApi.html)ressource pour représenter une API qui peut contenir un ensemble d'entités [Resource](https://docs.aws.amazon.com/apigateway/latest/api/API_Resource.html). 

Chaque entité `Resource` peut disposer d’une ou de plusieurs ressources [Method](https://docs.aws.amazon.com/apigateway/latest/api/API_Method.html). Une `Method` est une demande entrante soumise par le client, qui peut contenir les paramètres de demande suivants : un paramètre de chemin, un en-tête ou un paramètre de chaîne de requête. En outre, selon la méthode HTTP, la demande peut contenir un corps. Votre méthode définit la manière dont le client accède à la `Resource` exposée. Pour intégrer la `Method` avec un point de terminaison de backend, également appelé point de terminaison d’intégration, vous allez créer une ressource [Integration](https://docs.aws.amazon.com/apigateway/latest/api/API_Integration.html). Cette opération transmet la demande entrante à un URI de point de terminaison d’intégration spécifié. Si nécessaire, vous pouvez transformer les paramètres ou le corps de la demande afin de répondre aux exigences du backend, ou vous pouvez créer une intégration de proxy, dans laquelle API Gateway envoie la demande complète dans un format normalisé à l’URI du point de terminaison d’intégration, puis envoie directement la réponse au client.

Pour les réponses, vous pouvez créer une [MethodResponse](https://docs.aws.amazon.com/apigateway/latest/api/API_MethodResponse.html)ressource pour représenter une réponse reçue par le client et vous créer une [IntegrationResponse](https://docs.aws.amazon.com/apigateway/latest/api/API_IntegrationResponse.html)ressource pour représenter la réponse renvoyée par le backend. Utilisez une réponse d’intégration pour transformer les données de la réponse du backend avant de les renvoyer au client, ou pour transmettre la réponse du backend telle quelle au client.

## Exemple de ressource pour une API REST
<a name="rest-api-develop-example"></a>

Le schéma suivant montre comment API Gateway implémente ce request/response modèle pour un proxy HTTP et une intégration HTTP sans proxy pour la `GET /pets` ressource. Le client envoie l’en-tête `x-version:beta` à API Gateway, qui envoie le code d’état `204` au client.

Dans une intégration sans proxy, API Gateway transforme les données pour répondre aux exigences du backend en modifiant la demande d’intégration et la réponse d’intégration. Dans une intégration sans proxy, vous accédez au corps dans la demande de méthode, mais vous le transformez dans la demande d’intégration. Lorsque le point de terminaison d’intégration renvoie une réponse avec un corps, vous y accédez et vous le transformez dans la réponse d’intégration. Vous ne pouvez pas modifier le corps dans la réponse de méthode.

Dans une intégration de proxy, le point de terminaison d’intégration modifie la demande et la réponse. API Gateway ne modifie ni la demande d’intégration ni la réponse d’intégration, et envoie la demande entrante au backend telle quelle.

Quel que soit le type d’intégration, le client envoie une demande à API Gateway, qui y répond de manière synchrone.

------
#### [ Non-proxy integration ]

![Schéma d’une intégration sans proxy d’API Gateway](http://docs.aws.amazon.com/fr_fr/apigateway/latest/developerguide/images/develop-non-proxy.png)


------
#### [ Proxy integration ]

![Schéma d’une intégration de proxy API Gateway](http://docs.aws.amazon.com/fr_fr/apigateway/latest/developerguide/images/develop-proxy.png)


------

Les exemples de journaux d’exécution suivants montrent ce qu’API Gateway enregistrerait dans l’exemple précédent. Pour plus de clarté, certaines valeurs et certains journaux initiaux ont été supprimés :

------
#### [ Non-proxy integration ]

```
Wed Feb 12 23:56:44 UTC 2025 : Starting execution for request: abcd-1234-5678
Wed Feb 12 23:56:44 UTC 2025 : HTTP Method: GET, Resource Path: /pets
Wed Feb 12 23:56:44 UTC 2025 : Method request path: {}
Wed Feb 12 23:56:44 UTC 2025 : Method request query string: {}
Wed Feb 12 23:56:44 UTC 2025 : Method request headers: {x-version=beta}
Wed Feb 12 23:56:44 UTC 2025 : Method request body before transformations: 
Wed Feb 12 23:56:44 UTC 2025 : Endpoint request URI: http://petstore-demo-endpoint.execute-api.com/petstore/pets
Wed Feb 12 23:56:44 UTC 2025 : Endpoint request headers: {app-version=beta}
Wed Feb 12 23:56:44 UTC 2025 : Endpoint request body after transformations: 
Wed Feb 12 23:56:44 UTC 2025 : Sending request to http://petstore-demo-endpoint.execute-api.com/petstore/pets
Wed Feb 12 23:56:45 UTC 2025 : Received response. Status: 200, Integration latency: 123 ms
Wed Feb 12 23:56:45 UTC 2025 : Endpoint response headers: {Date=Wed, 12 Feb 2025 23:56:45 GMT}
Wed Feb 12 23:56:45 UTC 2025 : Endpoint response body before transformations:
Wed Feb 12 23:56:45 UTC 2025 : Method response body after transformations: (null)
Wed Feb 12 23:56:45 UTC 2025 : Method response headers: {X-Amzn-Trace-Id=Root=1-abcd-12345}
Wed Feb 12 23:56:45 UTC 2025 : Successfully completed execution
Wed Feb 12 23:56:45 UTC 2025 : Method completed with status: 204
```

------
#### [ Proxy integration ]

```
Wed Feb 12 23:59:42 UTC 2025 : Starting execution for request: abcd-1234-5678
Wed Feb 12 23:59:42 UTC 2025 : HTTP Method: GET, Resource Path: /pets
Wed Feb 12 23:59:42 UTC 2025 : Method request path: {}
Wed Feb 12 23:59:42 UTC 2025 : Method request query string: {}
Wed Feb 12 23:59:42 UTC 2025 : Method request headers: {x-version=beta}
Wed Feb 12 23:59:42 UTC 2025 : Method request body before transformations: 
Wed Feb 12 23:59:42 UTC 2025 : Endpoint request URI: http://petstore-demo-endpoint.execute-api.com/petstore/pets
Wed Feb 12 23:59:42 UTC 2025 : Endpoint request headers: { x-version=beta}
Wed Feb 12 23:59:42 UTC 2025 : Endpoint request body after transformations: 
Wed Feb 12 23:59:42 UTC 2025 : Sending request to http://petstore-demo-endpoint.execute-api.com/petstore/pets
Wed Feb 12 23:59:43 UTC 2025 : Received response. Status: 204, Integration latency: 123 ms
Wed Feb 12 23:59:43 UTC 2025 : Endpoint response headers: {Date=Wed, 12 Feb 2025 23:59:43 GMT}
Wed Feb 12 23:59:43 UTC 2025 : Endpoint response body before transformations: 
Wed Feb 12 23:59:43 UTC 2025 : Method response body after transformations:
Wed Feb 12 23:59:43 UTC 2025 : Method response headers: {Date=Wed, 12 Feb 2025 23:59:43 GMT}
Wed Feb 12 23:59:43 UTC 2025 : Successfully completed execution
Wed Feb 12 23:59:43 UTC 2025 : Method completed with status: 204
```

------

Pour importer une API similaire et la tester dans le AWS Management Console, consultez l'[exemple d'API](api-gateway-create-api-from-example.md).

## Autres fonctionnalités pour le développement des API REST
<a name="rest-api-develop-details"></a>

API Gateway prend en charge d’autres fonctionnalités pour le développement de votre API REST. Par exemple, pour aider vos clients à comprendre votre API, vous pouvez fournir une documentation sur l’API. Pour ce faire, ajoutez une ressource [DocumentationPart](https://docs.aws.amazon.com/apigateway/latest/api/API_DocumentationPart.html) pour une entité d'API prise en charge.

Pour contrôler la manière dont les clients appellent une API, utilisez des [autorisations IAM](permissions.md), un [mécanisme d'autorisation Lambda](apigateway-use-lambda-authorizer.md) ou un [groupe d'utilisateurs Amazon Cognito](apigateway-integrate-with-cognito.md). Pour mesurer l’utilisation de votre API, configurez des [plans d’utilisation](api-gateway-api-usage-plans.md) pour limiter les demandes d’API. Vous pouvez les activer lors de la création ou de la mise à jour de l’API.

Le schéma suivant montre les fonctionnalités disponibles pour le développement d’API REST et indique où ces fonctionnalités sont configurées dans le modèle de demande/réponse.

![Schéma des fonctionnalités d’API Gateway](http://docs.aws.amazon.com/fr_fr/apigateway/latest/developerguide/images/develop-features.png)


Pour une introduction à la création d’une API, consultez [Didacticiel : création d’une API REST avec une intégration de proxy Lambda](api-gateway-create-api-as-simple-proxy-for-lambda.md). Pour en savoir plus sur les fonctionnalités d’API Gateway que vous pouvez utiliser lors du développement d’une API REST, consultez les rubriques suivantes. Ces rubriques contiennent des informations conceptuelles et des procédures que vous pouvez exécuter à l'aide de la console API Gateway, de l'API REST API Gateway AWS CLI, de ou de l'une des AWS SDKs.

**Topics**
+ [Exemple de ressource pour une API REST](#rest-api-develop-example)
+ [Autres fonctionnalités pour le développement des API REST](#rest-api-develop-details)
+ [Types de points de terminaison d'API pour REST APIs dans API Gateway](api-gateway-api-endpoint-types.md)
+ [Politiques de sécurité pour REST APIs dans API Gateway](apigateway-security-policies.md)
+ [Types d’adresses IP pour les API REST dans API Gateway](api-gateway-ip-address-type.md)
+ [Méthodes pour REST APIs dans API Gateway](how-to-method-settings.md)
+ [Contrôler et gérer l'accès à REST APIs dans API Gateway](apigateway-control-access-to-api.md)
+ [Intégrations pour REST APIs dans API Gateway](how-to-integration-settings.md)
+ [Demande de validation pour REST APIs dans API Gateway](api-gateway-method-request-validation.md)
+ [Transformations de données pour REST APIs dans API Gateway](rest-api-data-transformations.md)
+ [Réponses de passerelle pour REST APIs dans API Gateway](api-gateway-gatewayResponse-definition.md)
+ [CORS pour REST APIs dans API Gateway](how-to-cors.md)
+ [Types de médias binaires pour REST APIs dans API Gateway](api-gateway-payload-encodings.md)
+ [Invocation d’une API REST dans API Gateway](how-to-call-api.md)
+ [Développez REST APIs à l'aide d'OpenAPI dans API Gateway](api-gateway-import-api.md)