lambdify.apigateway.Request Maven / Gradle / Ivy
package lambdify.apigateway;
import java.util.*;
import lombok.*;
/**
* Represents an API Gateway request.
*/
@Data
public class Request
{
String resource;
String path;
String httpMethod;
Map headers;
Map queryStringParameters;
Map pathParameters;
Map stageVariables;
RequestContext requestContext;
String body;
boolean isBase64Encoded;
@Setter transient Serializer serializer;
public String getContentType(){
return getHeaders().get( "content-type" );
}
public Map getHeaders(){
if ( headers == null )
headers = new HashMap<>();
return headers;
}
public T getHeader( String key, Class clazz ) {
val value = getHeaders().get( key );
return Config.INSTANCE.paramReader().convert( value, clazz );
}
public Map getQueryStringsParameters(){
if ( queryStringParameters == null )
queryStringParameters = new HashMap<>();
return queryStringParameters;
}
public T getQueryParam( String key, Class clazz ) {
val value = getQueryStringParameters().get( key );
return Config.INSTANCE.paramReader().convert( value, clazz );
}
public Map getPathParameters(){
if ( pathParameters == null )
pathParameters = new HashMap<>();
return pathParameters;
}
public T getPathParam( String key, Class clazz ) {
val value = getPathParameters().get( key );
return Config.INSTANCE.paramReader().convert( value, clazz );
}
public Map getStageVariables(){
if ( stageVariables == null )
stageVariables = new HashMap<>();
return stageVariables;
}
public T getStageParam( String key, Class clazz ) {
val value = getStageVariables().get( key );
return Config.INSTANCE.paramReader().convert( value, clazz );
}
public T getBodyAs( Class type ) {
if ( serializer == null )
throw new RuntimeException( "Could not found a valid serializer for this request." );
return serializer.toObject( getBody(), type, isBase64Encoded );
}
@Data
public static class RequestContext {
String apiId;
String accountId;
Map authorizer;
Map error;
RequestContextIdentity identity;
String path;
String resourceId;
String stage;
String requestId;
String resourcePath;
String httpMethod;
}
@Data
public static class RequestContextIdentity {
String accountId;
String apiKey;
String apiKeyId;
String caller;
String cognitoIdentityPoolId;
String cognitoIdentityId;
String cognitoAuthenticationType;
String cognitoAuthenticationProvider;
String sourceIp;
String userArn;
String userAgent;
String user;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy