From 91a69c30e68846bf4faaedef525d095b10f5aebf Mon Sep 17 00:00:00 2001 From: Fabian Fett Date: Thu, 4 Sep 2025 15:20:10 +0200 Subject: [PATCH 1/2] Use explicit types all the time --- Sources/OpenAPILambda.swift | 13 ++++++++++--- Sources/OpenAPILambdaHandler.swift | 4 ++-- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/Sources/OpenAPILambda.swift b/Sources/OpenAPILambda.swift index bf7d222..fd613dc 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") From 797f7785d90536e940a22185e4a1489fe839f14f Mon Sep 17 00:00:00 2001 From: Fabian Fett Date: Thu, 4 Sep 2025 15:24:45 +0200 Subject: [PATCH 2/2] Fix format --- Sources/OpenAPILambda.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Sources/OpenAPILambda.swift b/Sources/OpenAPILambda.swift index fd613dc..686f590 100644 --- a/Sources/OpenAPILambda.swift +++ b/Sources/OpenAPILambda.swift @@ -72,7 +72,7 @@ extension OpenAPILambdaService { handler: LambdaHandlerAdapter(handler: try Self.makeHandler()) ) - let lambdaRuntime = LambdaRuntime(handler: handler, logger: _logger,) + let lambdaRuntime = LambdaRuntime(handler: handler, logger: _logger) try await lambdaRuntime.run() } }