API Gateway: Creación e implementación
API Gateway permite la implementación y creación de APIs para nuestros recursos en AWS. A continuación pongo el código que permitiría crear e implementar APIs, comenzando con los módulos del SDK necesarios, luego el conjunto de comandos y al final la estructura básica de sus parámetros.
const { APIGatewayClient,
CreateResourceCommand,
CreateRestApiCommand,
GetResoucesCommand,
PutIntegrationCommand,
PutMethodCommand } = require('@aws-sdk/client-api-gateway');
const paramsClient = { ... };
const clientAPI = new APIGatewayClient(paramsClient);
const apiName = 'myAPIName';
Realmente aquí comienzan los comandos utilizados para crear las API e implementarlas mediante SDK y API Gateway.
const paramsAPI = { ... };
const cmdAPI = new CreateRestApiCommand(paramsAPI);
const dataAPI = clientAPI.send(cmdAPI);
const paramsResouce = { ... };
const cmdResource = new GetResourcesCommand(paramsResource);
const responseResource = await clientAPI.send(cmdResource);
const rootResource = responseResource.items.find(r => r.path === '/');
const path = rootResource.id;
const paramsCreateRes = { ... };
const cmdCreateRes = new CreateResouceSommand(paramsCreateRes);
const responseCreateRes = await clientAPI.send(cmdCreateRes);
const dataResCreateResource = responseCreateRes.id;
const paramsCreateResMethod = { ... };
const cmdCreateResMethod = new PutMethodCommand(paramsCreateResMethod);
const dataCreateResMethod = clientAPI.send(cmdCreateRedMethod);
const paramsMethodInteg = { ... };
const cmdIntegration = new PutIntegrationCommand(paramsMethodInteg);
const dataIntegration = clientAPI.send(cmdIntegration);
Estas son las estructuras básicas de los parámetros para cada comando.
const paramsClient = {
region: process.env.AWS_REGION // string con el nombre de la región.
};
const paramsAPI = {
name: apiName // string con el nombre de la API.
};
const paramsResouce = {
restAPiId: dataAPI.id // id obtenido de los datos de la API luego de crearla.
};
const paramsCreateRes = {
parentId: parentResourceId, // id obtenido luego de buscar el recurso raíz.
pathPart: resporcePath, // string con la ruta para el recurso.
restApiId: api.id // id de la api obtenido al crearla.
};
const paramsCreateResMethod = {
authorizationType: authType, // string con el tipo de autorización, p. e., 'NONE'.
httpMethod: method, // string con un verbo, p. e., 'GET' o 'ANY'.
resourceId: resourceId, // id obtenido para el recurso luego de ser creado.
restApiId: api.id // id de la api obtenido al crearla.
};
const paramsMethodInteg = {
httpMethod: method, // string con un verbo, p. e., 'GET' o 'ANY'.
resourceId: resourceId, // id obtenido para el recurso luego de ser creado.
restApiId: api.id, // id de la api obtenido al crearla.
integrationHttpMethod: method, // string con un verbo, p. e., 'GET' o 'ANY'.
type: type, // string con el tipo, p. e.: 'HTTP_PROXY'.
uri: uri_string,
requestParameters: {
[ `integration.request.path${path}` ]: `method.request.path${path}` // path es un string.
}
};
Comentarios
Publicar un comentario