kompendium
2.0.2
2.0.2 2.0.1

# kompendium-oas

## Open Api Specification

This module contains the models that represent the Open Api Specification 3.0 (OAS).

It is a purely domain-based module, with no logic whatsoever.

The specification can be found here.

## Packages

io.bkbn.kompendium.oas
Link copied to clipboard

This is the root package that contains the top level spec that is ultimately serialized into the specification JSON payload.

io.bkbn.kompendium.oas.common
Link copied to clipboard

Here we house data models that will be used across the module.

io.bkbn.kompendium.oas.component
Link copied to clipboard

This package correlates to the OAS Component layer, which at the moment is relatively bare bones. It will just contain a reference to any security schemas, as adding objects here as components severely limits future ability to add cool features such as route level object validations. Got issues with that, bring it up with the Open API Team :)

io.bkbn.kompendium.oas.info
Link copied to clipboard

This package houses the data models for information metadata such as contact and licensing info

io.bkbn.kompendium.oas.path
Link copied to clipboard

Now we're getting to the good stuff. This is where the details on each path level operation will live. Your `gets`, your `puts`, so on and so forth.

io.bkbn.kompendium.oas.payload
Link copied to clipboard

This is another good one, this is where the actual payload types live. Request and response body specifications, parameter details, collection support. That all lives here.

io.bkbn.kompendium.oas.schema
Link copied to clipboard

A bit confusingly, in the OAS, there is a distinction between a payload and a schema. You can think of payloads as containing schemas. So here we dive into the true object level definitions that we want to map out. Models for supporting collections, dictionaries, polymorphic classes, enums, along with your standard library classes all live here.

io.bkbn.kompendium.oas.security
Link copied to clipboard

Separated from the core schema models are the models that represent security schemas. Despite being referred to as schemas, and despite living as part of the component data structure, these models are drastically different from your core data model schemas, and thus earn their own package

io.bkbn.kompendium.oas.serialization
Link copied to clipboard
io.bkbn.kompendium.oas.server
Link copied to clipboard

Here we detail any server information that you wish to attach to your specification