Skip to content

RouteResponse

The RouteResponse resource lets you manage AWS ApiGatewayV2 RouteResponses, which define how API responses are handled and formatted. For more details, you can refer to the AWS ApiGatewayV2 RouteResponses documentation.

Minimal Example

Create a basic RouteResponse with required properties and one optional property.

ts
import AWS from "alchemy/aws/control";

const routeResponse = await AWS.ApiGatewayV2.RouteResponse("basicRouteResponse", {
  RouteResponseKey: "200",
  RouteId: "123456",
  ApiId: "api-abcdef",
  ResponseParameters: {
    "method.response.header.Access-Control-Allow-Origin": "'*'"
  }
});

Advanced Configuration

Configure a RouteResponse with additional properties to refine response handling.

ts
const advancedRouteResponse = await AWS.ApiGatewayV2.RouteResponse("advancedRouteResponse", {
  RouteResponseKey: "404",
  RouteId: "123456",
  ApiId: "api-abcdef",
  ModelSelectionExpression: "$request.body.type",
  ResponseModels: {
    "application/json": "ErrorModel"
  }
});

Custom Response Parameters

Create a RouteResponse that specifies custom response parameters for CORS.

ts
const corsRouteResponse = await AWS.ApiGatewayV2.RouteResponse("corsRouteResponse", {
  RouteResponseKey: "200",
  RouteId: "123456",
  ApiId: "api-abcdef",
  ResponseParameters: {
    "method.response.header.Access-Control-Allow-Origin": "'https://example.com'",
    "method.response.header.Access-Control-Allow-Methods": "'GET, POST, OPTIONS'",
    "method.response.header.Access-Control-Allow-Headers": "'Content-Type'"
  }
});

Response Model Example

Define a RouteResponse that leverages a specific response model for structured data.

ts
const modelRouteResponse = await AWS.ApiGatewayV2.RouteResponse("modelRouteResponse", {
  RouteResponseKey: "200",
  RouteId: "123456",
  ApiId: "api-abcdef",
  ResponseModels: {
    "application/json": "MyResponseModel"
  }
});