Skip to content

rboyce/swift-openapi-runtime

 
 

Repository files navigation

Swift OpenAPI Generator Runtime

This library provides common abstractions and helper functions used by the client and server code generated by Swift OpenAPI Generator.

Overview

It contains:

  • Common types used in the code generated by the swift-openapi-generator package plugin.
  • Protocol definitions for pluggable layers, including ClientTransport, ServerTransport, and middleware.

Usage

Add the package dependency in your Package.swift:

.package(
    url: "https://github.com/apple/swift-openapi-runtime",
    .upToNextMinor(from: "0.1.0")
),

Note that this repository does not have a 1.0 tag yet, so the API is not stable.

Next, in your target, add OpenAPIRuntime to your dependencies:

.target(name: "MyTarget", dependencies: [
    .product(name: "OpenAPIRuntime", package: "swift-openapi-runtime"),
],

The next step depends on your use case.

Using Swift OpenAPI Generator for code generation

The generated code depends on types from this library. Check out the adoption guides in the Swift OpenAPI Generator documentation to see how the packages fit together.

Implementing transports and middlewares

Swift OpenAPI Generator generates client and server code that is designed to be used with pluggable transports and middlewares.

Implement a new transport or middleware by providing a type that adopts one of the protocols from the runtime library:

  • ClientTransport
  • ClientMiddleware
  • ServerTransport
  • ServerMiddleware

You can also publish your transport or middleware as a Swift package to allow others to use it with their generated code.

Reporting issues

Please report any issues related to this library in the swift-openapi-generator repository.

Documentation

To learn more, check out the full documentation.

About

API package for code generated by Swift OpenAPI Generator.

Resources

License

Code of conduct

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Swift 93.2%
  • Shell 6.5%
  • Dockerfile 0.3%