Skip to content

v0.4.0

Compare
Choose a tag to compare
@bbilger bbilger released this 14 Dec 22:06
· 106 commits to master since this release

0.4.0

New Features

  • Binary support: binary data can be returned from endpoints, now. (#13)
  • SNS support: SNS events can be handled by JAX-RS endpoints, now. By default the topic and the subject are used to generate the request URI and the message body is assumed to be JSON. Those assumption can easily be overwritten in the SnsRequestObjectHandler. (#5)
  • Security: when a Custom Authorizer or a Cognito User Pool Authorizer is configured for an API Gateway endpoint, then the data returned by the authorizer automatically gets translated into a Principal including all claims, that can easily be injected into a resource via the SecurityContext. (#12)
  • Jersey: Version 2.25 of Jersey is used now.

Fixed Bugs

  • #14: Maven can be used, now without any workarounds
  • #6: Request objects can be injected into resources as proxies, now. (Context, GatewayRequest, ServiceRequest and SNSRecord)

Module Changes

  • com.jrestless.aws:jrestless-aws-gateway-core and com.jrestless.aws:jrestless-aws-service-core have been merged into com.jrestless.aws:jrestless-aws-core.
  • com.jrestless.aws:jrestless-aws-sns-handler has been introduced.

Incompatible Changes

  • Impl classes have been renamed to Default.
  • The visibility of most methods in *Handler classes has been changed from public to protected.
  • GatewayIdentity and GatewayRequestContext are not injectable directly anymore. So one has to inject GatewayRequest and access GatewayRequestContext like thisgatewayRequest.getRequestContext() and GatewayIdentity like this gatewayRequest.getRequestContext().getIdentity().
  • GatewayResourceConfig, and ServiceResourceConfig have been dropped. Use a plain ResourceConfig and register GatewayFeature, ServiceFeature or SnsFeature; depending on the function type you use.
  • GatewayRequest and ServiceRequest are no longer available in the ContainerRequestContext but they can be injected (@Inject) everywhere.