I can add multiple handlers like this
runLambdaHaskellRuntime
defaultDispatcherOptions
(pure ())
id $ do
addAPIGatewayHandler "api-gateway" gatewayHandler
addALBHandler "alb" albHandler
addStandaloneLambdaHandler "standalone" regularHandler
gatewayHandler ::
ApiGatewayRequest request ->
Context context ->
IO (Either (ApiGatewayResponse error) (ApiGatewayResponse response))
gatewayHandler = doSomething
albHandler ::
ALBRequest request ->
Context context ->
IO (Either (ALBResponse error) (ALBResponse response))
albHandler = doSomething
regularHandler ::
request ->
Context context ->
IO (Either error response)
regularHandler = doSomething
But the request and response type must be the same for all the handlers. What's the recommended way to add handlers with different types?
EG:
gatewayHandler ::
ApiGatewayRequest Foo ->
Context context ->
IO (Either (ApiGatewayResponse Error) (ApiGatewayResponse Bar))
gatewayHandler = doSomething1
albHandler ::
ALBRequest Bar ->
Context context ->
IO (Either (ALBResponse error) (ALBResponse response))
albHandler = doSomething2
regularHandler ::
request ->
Context context ->
IO (Either error response)
regularHandler = doSomething3
I can add multiple handlers like this
runLambdaHaskellRuntime defaultDispatcherOptions (pure ()) id $ do addAPIGatewayHandler "api-gateway" gatewayHandler addALBHandler "alb" albHandler addStandaloneLambdaHandler "standalone" regularHandler gatewayHandler :: ApiGatewayRequest request -> Context context -> IO (Either (ApiGatewayResponse error) (ApiGatewayResponse response)) gatewayHandler = doSomething albHandler :: ALBRequest request -> Context context -> IO (Either (ALBResponse error) (ALBResponse response)) albHandler = doSomething regularHandler :: request -> Context context -> IO (Either error response) regularHandler = doSomethingBut the request and response type must be the same for all the handlers. What's the recommended way to add handlers with different types?
EG: