API de calculadora sencilla en API Gateway
Nuestra API de calculadora sencilla expone tres métodos (GET, POST, GET) para invocar Función de Lambda de calculadora sencilla. A continuación, se muestra una representación gráfica de esta API:
Estos tres métodos muestran diferentes formas de proporcionar la entrada para la función de Lambda del backend con el objetivo de realizar la misma operación:
-
El método
GET /?a=...&b=...&op=...
utiliza los parámetros de consulta para especificar la entrada. -
El método
POST /
utiliza una carga JSON{"a":"Number", "b":"Number", "op":"string"}
para especificar la entrada. -
El método
GET /{a}/{b}/{op}
utiliza los parámetros de ruta para especificar la entrada.
Si no se define, API Gateway genera el nombre del método del SDK correspondiente combinando las partes de la ruta de acceso y el método HTTP. La parte de la ruta raíz (/
) se denomina Api
Root
. Por ejemplo, el nombre predeterminado del SDK de Java para el método GET /?a=...&b=...&op=...
de la API es getABOp
, el del método POST /
es postApiRoot
y el del método GET /{a}/{b}/{op}
es getABOp
. Cada SDK puede personalizar la convención. Consulte en la documentación del código fuente del SDK generado los nombres de los métodos específicos del SDK.
Puede y debe anular los nombres de método del SDK predeterminados especificando la propiedad operationName en cada método de la API. Puede hacerlo al crear el método de la API o al actualizar el método de la API con la API de REST de API Gateway. En la definición de Swagger de la API, puede definir operationId
para conseguir el mismo resultado.
Antes de mostrar cómo llamar a estos métodos con un SDK generado por API Gateway para esta API, vamos a recordar brevemente cómo se configuran. Para obtener instrucciones detalladas, consulte Desarrollo de las API de REST en API Gateway. Si es nuevo en API Gateway, consulte Elección de un tutorial de integración de AWS Lambda primero.
Crear modelos para la entrada y la salida
Para especificar una entrada con establecimiento inflexible de tipos en el SDK, creamos un modelo Input
para la API. Para describir el tipo de datos del cuerpo de la respuesta, creamos un modelo Output
y un modelo Result
.
Para crear modelos para la entrada, la salida y el resultado
-
En el panel de navegación principal, elija Modelos.
-
Seleccione Crear modelo.
-
En Nombre, escriba
input
. -
En Tipo de contenido, ingrese
application/json
.Si no se encuentra ningún tipo de contenido coincidente, no se realiza la validación de la solicitud. Para utilizar el mismo modelo independientemente del tipo de contenido, introduzca
$default
. -
En Esquema del modelo, escriba el siguiente modelo:
{ "$schema" : "$schema": "http://json-schema.org/draft-04/schema#", "type":"object", "properties":{ "a":{"type":"number"}, "b":{"type":"number"}, "op":{"type":"string"} }, "title":"Input" }
Seleccione Crear modelo.
Repita los pasos siguientes para crear un modelo
Output
y un modeloResult
.Para el modelo
Output
, escriba lo siguiente en Esquema del modelo:{ "$schema": "http://json-schema.org/draft-04/schema#", "type": "object", "properties": { "c": {"type":"number"} }, "title": "Output" }
Para el modelo
Result
, escriba lo siguiente en Esquema del modelo. Sustituya el IDabc123
de la API por su ID de API.{ "$schema": "http://json-schema.org/draft-04/schema#", "type":"object", "properties":{ "input":{ "$ref":"https://apigateway.amazonaws.com/restapis/abc123/models/Input" }, "output":{ "$ref":"https://apigateway.amazonaws.com/restapis/abc123/models/Output" } }, "title":"Result" }
Configurar parámetros de consulta del método GET /
Para el método GET /?a=..&b=..&op=..
, los parámetros de consulta se declaran en Method Request (Solicitud de método):
Para configurar los parámetros de la cadena de consulta GET/URL
En la sección Solicitud de método del método
GET
del recurso raíz (/
), seleccione Editar.Elija Parámetros de cadenas de consulta de URL y haga lo siguiente:
Elija Add query string (Añadir cadena de consulta).
En Nombre, escriba
a
.Mantenga desactivados Obligatorio y Almacenamiento en caché.
Mantenga Almacenamiento en caché desactivado.
Repita los mismos pasos y cree una cadena de consulta llamada
b
y una cadena de consulta llamadaop
.Seleccione Guardar.
Configuración del modelo de datos de la carga como entrada del backend
Para el método POST /
, creamos el modelo Input
y lo añadimos a la solicitud de método para definir la forma de los datos de entrada.
Para configurar el modelo de datos de la carga como entrada del backend
En la sección Solicitud de método del método
POST
del recurso raíz (/
), seleccione Editar.Elija Cuerpo de la solicitud.
Elija Add model (Añadir modelo).
En Tipo de contenido, ingrese
application/json
.En Modelo, seleccione Entrada.
Seleccione Guardar.
Con este modelo, los clientes de la API pueden llamar al SDK para especificar la entrada creando una instancia del objeto Input
. Sin este modelo, los clientes tendrán que crear un objeto de diccionario que represente la entrada JSON de la función de Lambda.
Configuración del modelo de datos de la salida del resultado desde el backend
Para los tres métodos, creamos el modelo Result
y lo agregamos al elemento Method Response
del método para definir la forma de la salida devuelta por la función de Lambda.
Para configurar el modelo de datos de la salida del resultado desde el backend
Seleccione el recurso /{a}/{b}/{op} y, a continuación, elija el método GET.
-
En la pestaña Respuesta del método, en Respuesta 200, elija Editar.
-
En Cuerpo de la respuesta, seleccione Agregar modelo.
-
En Tipo de contenido, ingrese
application/json
. -
En Modelo, seleccione Resultado.
-
Seleccione Guardar.
Con este modelo, los clientes de la API pueden analizar la salida leyendo las propiedades de un objeto Result
. Sin este modelo, los clientes tendrían que crear un objeto de diccionario que representara la salida JSON.