How apple/swift-openapi-runtime works
Swift OpenAPI Runtime supplies shared types and pluggable client/server interfaces for code generated by Swift OpenAPI Generator. The principal client workflow serializes operation input, passes the request through middleware to a transport, then deserializes the response; the server side exposes corresponding transport and middleware abstractions for generated handlers. URI parameter coding, body conversion, multipart, and event-stream support are distinct runtime capabilities. The tree and excerpts support the client dispatch details; server wiring and some format integrations are represented at the documented/module level, with uncertain call links omitted.
Main entry points: Converter+Client.swift Client conversion · UniversalClient.swift Universal client · HTTPBody.swift HTTP body · ClientTransport.swift Client middleware
Components 20
Client Runtime
- Universal client
Sources/OpenAPIRuntime/Interface/UniversalClient.swift - Client conversion
Sources/OpenAPIRuntime/Conversion/Converter+Client.swift - Client middleware
Sources/OpenAPIRuntime/Interface/ClientTransport.swift - Client transport
Sources/OpenAPIRuntime/Interface/ClientTransport.swift
Server Runtime
- Server transport
Sources/OpenAPIRuntime/Interface/ServerTransport.swift - Server middleware
Sources/OpenAPIRuntime/Interface/ErrorHandlingMiddleware.swift - Query normalization
Sources/OpenAPIRuntime/Interface/QuerySpaceNormalizingMiddleware.swift
HTTP Coding
- URI encoder
Sources/OpenAPIRuntime/URICoder/Encoding/URIEncoder.swift - URI serializer
Sources/OpenAPIRuntime/URICoder/Serialization/URISerializer.swift - URI parser
Sources/OpenAPIRuntime/URICoder/Parsing/URIParser.swift - URI decoder
Sources/OpenAPIRuntime/URICoder/Decoding/URIDecoder.swift - Common conversion
Sources/OpenAPIRuntime/Conversion/Converter+Common.swift
Body Formats
- Multipart streams
Sources/OpenAPIRuntime/Multipart/MultipartPublicTypes.swift - Event streams
Sources/OpenAPIRuntime/EventStreams/ServerSentEvents.swift
Shared Types
- HTTP body
Sources/OpenAPIRuntime/Interface/HTTPBody.swift - Base value types
Sources/OpenAPIRuntime/Base/OpenAPIValue.swift - Client errors
Sources/OpenAPIRuntime/Errors/ClientError.swift
Other components
- Generated client
- Generated server
- HTTP types
Connections 20
- Generated client → Universal client: invokes operations
- Universal client → Client conversion: serializes input
- Client conversion → URI encoder: encodes parameters
- URI encoder → URI serializer: serializes nodes
- Universal client → Client middleware: dispatches through
- Client middleware → Client transport: forwards request
- Client transport → HTTP types: exchanges HTTP
- Universal client → Client conversion: deserializes response
- Client conversion → URI decoder: decodes parameters
- URI decoder → URI parser: parses URI data
- Universal client → Client errors: wraps failures
- Generated server → Server transport: uses interface
- Server transport → Server middleware: supports middleware
- Server middleware → Query normalization: may include
- Query normalization → HTTP types: rewrites request
- Client conversion → Common conversion: uses conversions
- Common conversion → HTTP body: converts bodies
- Multipart streams → HTTP body: frames body data
- Event streams → HTTP body: streams body data
- Client conversion → Base value types: converts values