diff --git a/Sources/OpenAPILambda.swift b/Sources/OpenAPILambda.swift index bf7d222..686f590 100644 --- a/Sources/OpenAPILambda.swift +++ b/Sources/OpenAPILambda.swift @@ -56,8 +56,8 @@ extension OpenAPILambdaService { /// try await lambdaRuntime.run() /// /// - Returns: A handler function that can be used with AWS Lambda Runtime - public static func handler() throws -> (Event, LambdaContext) async throws -> Output { - try OpenAPILambdaHandler().handler + public static func makeHandler() throws -> OpenAPILambdaHandler { + try OpenAPILambdaHandler() } /// Start the Lambda Runtime with the Lambda handler function for this OpenAPI Lambda implementation with a custom logger, @@ -65,7 +65,14 @@ extension OpenAPILambdaService { /// - Parameter logger: The logger to use for Lambda runtime logging public static func run(logger: Logger? = nil) async throws { let _logger = logger ?? Logger(label: "OpenAPILambdaService") - let lambdaRuntime = LambdaRuntime(logger: _logger, body: try Self.handler()) + + let handler = LambdaCodableAdapter( + encoder: JSONEncoder(), + decoder: JSONDecoder(), + handler: LambdaHandlerAdapter(handler: try Self.makeHandler()) + ) + + let lambdaRuntime = LambdaRuntime(handler: handler, logger: _logger) try await lambdaRuntime.run() } } diff --git a/Sources/OpenAPILambdaHandler.swift b/Sources/OpenAPILambdaHandler.swift index a66e8a5..621118c 100644 --- a/Sources/OpenAPILambdaHandler.swift +++ b/Sources/OpenAPILambdaHandler.swift @@ -18,7 +18,7 @@ import OpenAPIRuntime import HTTPTypes /// Specialization of LambdaHandler which runs an OpenAPILambda -public struct OpenAPILambdaHandler: Sendable { +public struct OpenAPILambdaHandler: LambdaHandler { private let router: OpenAPILambdaRouter private let transport: OpenAPILambdaTransport @@ -65,7 +65,7 @@ public struct OpenAPILambdaHandler: Sendable { /// - context: Runtime ``LambdaContext``. /// /// - Returns: A Lambda result ot type `Output`. - public func handler(event: OALS.Event, context: LambdaContext) async throws -> OALS.Output { + public func handle(_ event: OALS.Event, context: AWSLambdaRuntime.LambdaContext) async throws -> OALS.Output { // by default returns HTTP 500 var lambdaResponse: OpenAPILambdaResponse = (HTTPResponse(status: .internalServerError), "unknown error")