

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.

# Api
<a name="sam-property-function-api"></a>

L'objet décrivant un type de source d'événement `Api`. Si une ressource [AWS::Serverless::Api](sam-resource-api.md) est définie, les valeurs de chemin d'accès et de méthode doivent correspondre à une opération dans la définition OpenAPI de l'API.

Si aucune [AWS::Serverless::Api](sam-resource-api.md) n'est définie, l'entrée et la sortie de la fonction sont une représentation de la demande HTTP et de la réponse HTTP.

Par exemple, à l'aide de l' JavaScript API, le code d'état et le corps de la réponse peuvent être contrôlés en renvoyant un objet avec les clés statusCode et body.

## Syntaxe
<a name="sam-property-function-api-syntax"></a>

Pour déclarer cette entité dans votre modèle AWS Serverless Application Model (AWS SAM), utilisez la syntaxe suivante.

### YAML
<a name="sam-property-function-api-syntax.yaml"></a>

```
  [Auth](#sam-function-api-auth): ApiFunctionAuth
  [Method](#sam-function-api-method): String
  [Path](#sam-function-api-path): String
  [RequestModel](#sam-function-api-requestmodel): RequestModel
  [RequestParameters](#sam-function-api-requestparameters): List of [ String | RequestParameter ]
  [RestApiId](#sam-function-api-restapiid): String
  [ResponseTransferMode](#sam-function-api-responsetransfermode): String
  TimeoutInMillis: Integer
```

## Propriétés
<a name="sam-property-function-api-properties"></a>

 `Auth`   <a name="sam-function-api-auth"></a>
Configuration d'authentification pour cette méthode Api\$1Chemin\$1Méthode spécifique.  
Utile pour remplacer la configuration d'autorisation du paramètre de `DefaultAuthorizer` de l'API sur un chemin d'accès individuel, lorsqu'aucun `DefaultAuthorizer` n'est spécifié, ou pour remplacer le paramètre `ApiKeyRequired` par défaut.  
*Type :* [ApiFunctionAuth](sam-property-function-apifunctionauth.md)  
*Obligatoire* : non  
*CloudFormation compatibilité* : cette propriété est unique AWS SAM et n'a pas d' CloudFormation équivalent.

 `Method`   <a name="sam-function-api-method"></a>
Méthode HTTP pour laquelle cette fonction est appelée. Les options incluent `DELETE``GET`,`HEAD`,`OPTIONS`,`PATCH`,`POST`,`PUT`, et`ANY`. Reportez-vous à la section [Configurer une méthode HTTP](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-method-settings-method-request.html#setup-method-add-http-method) dans le *guide du développeur d'API Gateway* pour plus de détails.  
*Type* : chaîne  
*Obligatoire* : oui  
*CloudFormation compatibilité* : cette propriété est unique AWS SAM et n'a pas d' CloudFormation équivalent.

 `Path`   <a name="sam-function-api-path"></a>
Chemin d'accès d'URI pour lequel cette fonction est appelée. Doit commencer par `/`.  
*Type* : chaîne  
*Obligatoire* : oui  
*CloudFormation compatibilité* : cette propriété est unique AWS SAM et n'a pas d' CloudFormation équivalent.

 `RequestModel`   <a name="sam-function-api-requestmodel"></a>
Demander un modèle à utiliser pour cette formule Api\$1Chemin\$1Méthode spécifique. Cela devrait faire référence au nom d'un modèle spécifié dans la section `Models` d'une ressource [AWS::Serverless::Api](sam-resource-api.md).  
*Type :* [RequestModel](sam-property-function-requestmodel.md)  
*Obligatoire* : non  
*CloudFormation compatibilité* : cette propriété est unique AWS SAM et n'a pas d' CloudFormation équivalent.

 `RequestParameters`   <a name="sam-function-api-requestparameters"></a>
Configuration des paramètres de demande pour cette formule Api\$1Chemin\$1Méthode spécifique. Tous les noms de paramètres doivent commencer par `method.request` et doivent être limités à `method.request.header`, `method.request.querystring`, ou `method.request.path`.  
Une liste peut contenir à la fois des chaînes de noms de paramètres et [RequestParameter](sam-property-function-requestparameter.md)des objets. Pour les chaînes, les propriétés `Required` et `Caching` prendront par défaut la valeur `false`.  
*Type* : Liste de [String \$1 [RequestParameter](sam-property-function-requestparameter.md)]  
*Obligatoire* : non  
*CloudFormation compatibilité* : cette propriété est unique AWS SAM et n'a pas d' CloudFormation équivalent.

 `RestApiId`   <a name="sam-function-api-restapiid"></a>
Identifiant d'une RestApi ressource, qui doit contenir une opération avec le chemin et la méthode donnés. Cela est généralement défini pour faire référence à une ressource [AWS::Serverless::Api](sam-resource-api.md), qui est définie dans ce modèle.  
Si vous ne définissez pas cette propriété, AWS SAM crée une [AWS::Serverless::Api](sam-resource-api.md) ressource par défaut à l'aide d'un `OpenApi` document généré. Cette ressource contient une union de tous les chemins et méthodes définis par `Api` dans le même modèle qui ne spécifient pas un `RestApiId`.  
Cela ne peut pas référencer une ressource [AWS::Serverless::Api](sam-resource-api.md) définie dans un autre modèle.  
*Type* : chaîne  
*Obligatoire* : non  
*CloudFormation compatibilité* : cette propriété est unique AWS SAM et n'a pas d' CloudFormation équivalent.

`ResponseTransferMode`  <a name="sam-function-api-responsetransfermode"></a>
Mode de transfert de réponse pour l'intégration de la fonction Lambda. Définissez cette valeur `RESPONSE_STREAM` pour activer le streaming des réponses Lambda via API Gateway, ce qui permet à la fonction de renvoyer les réponses aux clients. Lorsqu'il est défini sur`RESPONSE_STREAM`, API Gateway utilise l'API Lambda InvokeWithResponseStreaming .  
*Type* : chaîne  
*Obligatoire* : non  
*Valeurs valides* : `BUFFERED` \$1 `RESPONSE_STREAM`  
*CloudFormation compatibilité* : Cette propriété est transmise directement à la [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-method-integration.html#cfn-apigateway-method-integration-responsetransfermode](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-apigateway-method-integration.html#cfn-apigateway-method-integration-responsetransfermode)propriété d'un`AWS::ApiGateway::Method Integration`.

`TimeoutInMillis`  <a name="sam-function-api-timeoutinmillis"></a>
Délai d'attente personnalisé compris entre 50 et 29 000 millisecondes.  
Lorsque vous spécifiez cette propriété, cela AWS SAM modifie votre définition OpenAPI. La définition OpenAPI doit être spécifiée en ligne à l'aide de la propriété `DefinitionBody`. 
*Type* : entier  
*Obligatoire* : non  
*Par défaut* : 29 000 millisecondes ou 29 secondes  
*CloudFormation compatibilité* : cette propriété est unique AWS SAM et n'a pas d' CloudFormation équivalent.

## Exemples
<a name="sam-property-function-api--examples"></a>

### Exemple de base
<a name="sam-property-function-api--examples--apievent"></a>

#### YAML
<a name="sam-property-function-api--examples--apievent--yaml"></a>

```
Events:
  ApiEvent:
    Type: Api
    Properties:
      Path: /path
      Method: get
      RequestParameters:
        - method.request.header.Authorization
        - method.request.querystring.keyword:
            Required: true
            Caching: false
```