

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

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

El objeto que describe un tipo de fuente de evento de `Api`. Si se define un recurso [AWS::Serverless::Api](sam-resource-api.md), los valores de ruta y método deben corresponder a una operación de la definición de OpenAPI de la API.

Si no se define ningún [AWS::Serverless::Api](sam-resource-api.md), la entrada y la salida de la función son una representación de la solicitud HTTP y la respuesta HTTP.

Por ejemplo, mediante la JavaScript API, el código de estado y el cuerpo de la respuesta se pueden controlar devolviendo un objeto con las claves StatusCode y body.

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

Para declarar esta entidad en tu plantilla AWS Serverless Application Model (AWS SAM), usa la siguiente sintaxis.

### 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
```

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

 `Auth`   <a name="sam-function-api-auth"></a>
Configuración de autenticación para esta API, ruta y método específicos.  
Útil para anular la configuración `DefaultAuthorizer` de autenticación de la API en una ruta individual cuando no se especifica ninguna `DefaultAuthorizer` o la anulación de la configuración `ApiKeyRequired` predeterminada.  
*Tipo:* [ApiFunctionAuth](sam-property-function-apifunctionauth.md)  
*Obligatorio*: no  
*CloudFormation compatibilidad*: esta propiedad es exclusiva de AWS SAM y no tiene un CloudFormation equivalente.

 `Method`   <a name="sam-function-api-method"></a>
Método HTTP para el que se invoca esta función. Las opciones incluyen `DELETE`, `GET`, `HEAD`, `OPTIONS`, `PATCH`, `POST`, `PUT` y `ANY`. Consulte [Configuración de un método HTTP](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-method-settings-method-request.html#setup-method-add-http-method) en la *Guía para desarrolladores de API Gateway* para obtener más información.  
*Tipo:* cadena  
*Obligatorio*: sí  
*CloudFormation compatibilidad*: esta propiedad es exclusiva de AWS SAM y no tiene un CloudFormation equivalente.

 `Path`   <a name="sam-function-api-path"></a>
Ruta de URI para la que se invoca esta función. Debe empezar con `/`.  
*Tipo:* cadena  
*Obligatorio*: sí  
*CloudFormation compatibilidad*: esta propiedad es exclusiva de AWS SAM y no tiene un CloudFormation equivalente.

 `RequestModel`   <a name="sam-function-api-requestmodel"></a>
Modelo de solicitud para usarlo en esta API, ruta y método específicos. Debe hacer referencia al nombre de un modelo especificado en la sección `Models` de un recurso [AWS::Serverless::Api](sam-resource-api.md).  
*Tipo:* [RequestModel](sam-property-function-requestmodel.md)  
*Obligatorio*: no  
*CloudFormation compatibilidad*: esta propiedad es exclusiva de AWS SAM y no tiene un CloudFormation equivalente.

 `RequestParameters`   <a name="sam-function-api-requestparameters"></a>
Configuración de los parámetro de solicitud para una API\$1ruta\$1método específicos. Todos los nombres de los parámetros deben empezar por `method.request` y estar limitados a `method.request.header`, `method.request.querystring` o `method.request.path`.  
Una lista puede contener tanto cadenas de nombres de parámetros como [RequestParameter](sam-property-function-requestparameter.md)objetos. En el caso de las cadenas, las propiedades `Required` y `Caching` se establecerán de forma predeterminada en `false`.  
*Tipo*: Lista de [Cadena \$1 [RequestParameter](sam-property-function-requestparameter.md)]  
*Obligatorio*: no  
*CloudFormation compatibilidad*: esta propiedad es exclusiva de AWS SAM y no tiene un CloudFormation equivalente.

 `RestApiId`   <a name="sam-function-api-restapiid"></a>
Identificador de un RestApi recurso, que debe contener una operación con la ruta y el método dados. Normalmente, se configura para hacer referencia a un recurso [AWS::Serverless::Api](sam-resource-api.md) definido en esta plantilla.  
Si no define esta propiedad, AWS SAM crea un [AWS::Serverless::Api](sam-resource-api.md) recurso predeterminado a partir de un `OpenApi` documento generado. Ese recurso contiene una unión de todas las rutas y métodos definidos por eventos `Api` de la misma plantilla que no especifican un `RestApiId`.  
Esto no puede hacer referencia a un recurso [AWS::Serverless::Api](sam-resource-api.md) definido en otra plantilla.  
*Tipo:* cadena  
*Obligatorio*: no  
*CloudFormation compatibilidad*: esta propiedad es exclusiva AWS SAM y no tiene un CloudFormation equivalente.

`ResponseTransferMode`  <a name="sam-function-api-responsetransfermode"></a>
El modo de transferencia de respuestas para la integración de la función Lambda. Configúrelo en `RESPONSE_STREAM` para habilitar la transmisión de respuestas de Lambda a través de API Gateway, lo que permite que la función transmita las respuestas a los clientes. Cuando se establece en`RESPONSE_STREAM`, API Gateway utiliza la API Lambda InvokeWithResponseStreaming .  
*Tipo:* cadena  
*Obligatorio*: no  
*Valores válidos*: `BUFFERED` \$1 `RESPONSE_STREAM`  
*CloudFormation compatibilidad*: esta propiedad se pasa directamente a 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)propiedad de un`AWS::ApiGateway::Method Integration`.

`TimeoutInMillis`  <a name="sam-function-api-timeoutinmillis"></a>
Tiempo de espera personalizado entre 50 y 29 000 milisegundos.  
Al especificar esta propiedad, AWS SAM modifica la definición de OpenAPI. La definición de OpenAPI debe especificarse en línea mediante la propiedad `DefinitionBody`. 
*Tipo*: entero  
*Obligatorio*: no  
*Valor predeterminado*: 29 000 milisegundos (29 segundos)  
*CloudFormation compatibilidad*: esta propiedad es exclusiva AWS SAM y no tiene un CloudFormation equivalente.

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

### Ejemplo básico
<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
```