142 lines
11 KiB
HTML
142 lines
11 KiB
HTML
<html>
|
|
<head>
|
|
<meta name="viewport" content="width=device-width, initial-scale=1" charset="UTF-8">
|
|
<title>All modules</title>
|
|
<link href="images/logo-icon.svg" rel="icon" type="image/svg"><script>var pathToRoot = "";</script> <script>const storage = localStorage.getItem("dokka-dark-mode")
|
|
const savedDarkMode = storage ? JSON.parse(storage) : false
|
|
if(savedDarkMode === true){
|
|
document.getElementsByTagName("html")[0].classList.add("theme-dark")
|
|
}</script>
|
|
<script type="text/javascript" src="scripts/sourceset_dependencies.js" async></script><link href="styles/style.css" rel="Stylesheet"><link href="styles/jetbrains-mono.css" rel="Stylesheet"><link href="styles/main.css" rel="Stylesheet"><link href="styles/prism.css" rel="Stylesheet"><link href="styles/logo-styles.css" rel="Stylesheet"><script type="text/javascript" src="scripts/clipboard.js" async></script><script type="text/javascript" src="scripts/navigation-loader.js" async></script><script type="text/javascript" src="scripts/platform-content-handler.js" async></script><script type="text/javascript" src="scripts/main.js" defer></script><script type="text/javascript" src="scripts/prism.js" async></script><link href="styles/multimodule.css" rel="Stylesheet"> </head>
|
|
<body>
|
|
<div class="navigation-wrapper" id="navigation-wrapper">
|
|
<div id="leftToggler"><span class="icon-toggler"></span></div>
|
|
<div class="library-name"><a href="index.html">kompendium</a></div>
|
|
<div><dokka-template-command data="{"@class":"org.jetbrains.dokka.base.templating.ReplaceVersionsCommand","location":"index.html"}"><div class="versions-dropdown">
|
|
<div class="versions-dropdown-button">2.0.1</div>
|
|
<div class="versions-dropdown-data"><a href="../../index.html">2.1.1</a><a href="../2.1.0/index.html">2.1.0</a><a href="../2.0.4/index.html">2.0.4</a><a href="../2.0.3/index.html">2.0.3</a><a href="../2.0.2/index.html">2.0.2</a><a href="index.html">2.0.1</a></div>
|
|
</div>
|
|
</dokka-template-command></div>
|
|
<div class="pull-right d-flex"><button id="theme-toggle-button"><span id="theme-toggle"></span></button>
|
|
<div id="searchBar"></div>
|
|
</div>
|
|
</div>
|
|
<div id="container">
|
|
<div id="leftColumn">
|
|
<div id="sideMenu"></div>
|
|
</div>
|
|
<div id="main">
|
|
<div class="main-content" id="content" pageids="kompendium::.ext/allModules///PointingToDeclaration//0">
|
|
<div class="breadcrumbs"></div>
|
|
<div class="cover ">
|
|
<div class="cover ">
|
|
<h1 class="">Kompendium</h1>
|
|
<p class="paragraph">Welcome to Kompendium, the straight-forward, minimally-invasive OpenAPI generator for Ktor. </p>
|
|
<h2 class=""> How to install</h2>
|
|
<p class="paragraph">Kompendium publishes all releases to Maven Central. As such, using the release versions of <code class="lang-kotlin">Kompendium</code> is as simple as declaring it as an implementation dependency in your <code class="lang-kotlin">build.gradle.kts</code></p>
|
|
<div class="sample-container">
|
|
<pre><code class="block lang-kotlin" theme="idea">repositories {<br> mavenCentral()<br>}<br><br>dependencies {<br> implementation("io.bkbn:kompendium-core:latest.release")<br>}</code></pre>
|
|
<span class="top-right-position"><span class="copy-icon"></span>
|
|
<div class="copy-popup-wrapper popup-to-left"><span class="copy-popup-icon"></span><span>Content copied to clipboard</span></div>
|
|
</span></div>
|
|
<p class="paragraph">In addition to publishing releases to Maven Central, a snapshot version gets published to GitHub Packages on every merge to <code class="lang-kotlin">main</code>. These can be consumed by adding the repository to your gradle build file. Instructions can be found <a href="https://docs.github.com/en/packages/working-with-a-github-packages-registry/working-with-the-gradle-registry#using-a-published-package">here</a></p>
|
|
<h2 class=""> Setting up the Kompendium Plugin</h2>
|
|
<p class="paragraph">Kompendium is instantiated as a Ktor Feature/Plugin. It can be added to your API as follows</p>
|
|
<div class="sample-container">
|
|
<pre><code class="block lang-kotlin" theme="idea">private fun Application.mainModule() {<br> // Installs the Kompendium Plugin and sets up baseline server metadata<br> install(Kompendium) {<br> spec = OpenApiSpec(/*..*/)<br> }<br> // ...<br>}</code></pre>
|
|
<span class="top-right-position"><span class="copy-icon"></span>
|
|
<div class="copy-popup-wrapper popup-to-left"><span class="copy-popup-icon"></span><span>Content copied to clipboard</span></div>
|
|
</span></div>
|
|
<h2 class=""> Notarization</h2>
|
|
<p class="paragraph">The concept of notarizing routes / exceptions / etc. is central to Kompendium. More details on <i>how</i> to notarize your API can be found in the kompendium-core module.</p>
|
|
</div>
|
|
<h2 class="">All modules:</h2>
|
|
<div class="table"><a data-name="1162350513%2FMain%2F0" anchor-label="kompendium-annotations" id="1162350513%2FMain%2F0" data-filterable-set=""></a>
|
|
<div class="table-row">
|
|
<div class="main-subrow ">
|
|
<div class="w-100"><span class="inline-flex">
|
|
<div><a href="kompendium-annotations/index.html">kompendium-annotations</a></div>
|
|
<span class="anchor-wrapper"><span class="anchor-icon" pointing-to="1162350513%2FMain%2F0"></span>
|
|
<div class="copy-popup-wrapper "><span class="copy-popup-icon"></span><span>Link copied to clipboard</span></div>
|
|
</span></span></div>
|
|
<div><span class="brief-comment">
|
|
<p class="paragraph">This module houses all annotations that Kompendium uses to provide key metadata when performing reflective analysis. </p>
|
|
</span></div>
|
|
</div>
|
|
</div>
|
|
<a data-name="1574642149%2FMain%2F0" anchor-label="kompendium-auth" id="1574642149%2FMain%2F0" data-filterable-set=""></a>
|
|
<div class="table-row">
|
|
<div class="main-subrow ">
|
|
<div class="w-100"><span class="inline-flex">
|
|
<div><a href="kompendium-auth/index.html">kompendium-auth</a></div>
|
|
<span class="anchor-wrapper"><span class="anchor-icon" pointing-to="1574642149%2FMain%2F0"></span>
|
|
<div class="copy-popup-wrapper "><span class="copy-popup-icon"></span><span>Link copied to clipboard</span></div>
|
|
</span></span></div>
|
|
<div><span class="brief-comment">
|
|
<p class="paragraph">This module is responsible for providing wrappers around ktor-auth configuration blocks, allowing users to document their API authentication with minimal modifications to their existing configuration.</p>
|
|
</span></div>
|
|
</div>
|
|
</div>
|
|
<a data-name="-1821989938%2FMain%2F0" anchor-label="kompendium-core" id="-1821989938%2FMain%2F0" data-filterable-set=""></a>
|
|
<div class="table-row">
|
|
<div class="main-subrow ">
|
|
<div class="w-100"><span class="inline-flex">
|
|
<div><a href="kompendium-core/index.html">kompendium-core</a></div>
|
|
<span class="anchor-wrapper"><span class="anchor-icon" pointing-to="-1821989938%2FMain%2F0"></span>
|
|
<div class="copy-popup-wrapper "><span class="copy-popup-icon"></span><span>Link copied to clipboard</span></div>
|
|
</span></span></div>
|
|
<div><span class="brief-comment">
|
|
<p class="paragraph">This is where the magic happens. This module houses all the reflective goodness that powers Kompendium.</p>
|
|
</span></div>
|
|
</div>
|
|
</div>
|
|
<a data-name="-960478793%2FMain%2F0" anchor-label="kompendium-locations" id="-960478793%2FMain%2F0" data-filterable-set=""></a>
|
|
<div class="table-row">
|
|
<div class="main-subrow ">
|
|
<div class="w-100"><span class="inline-flex">
|
|
<div><a href="kompendium-locations/index.html">kompendium-locations</a></div>
|
|
<span class="anchor-wrapper"><span class="anchor-icon" pointing-to="-960478793%2FMain%2F0"></span>
|
|
<div class="copy-popup-wrapper "><span class="copy-popup-icon"></span><span>Link copied to clipboard</span></div>
|
|
</span></span></div>
|
|
<div><span class="brief-comment">
|
|
<p class="paragraph">Adds support for Ktor <a href="https://ktor.io/docs/locations.html">Locations</a> API. Any notarized location <i>must</i> be provided with a <code class="lang-kotlin">TParam</code> annotated with <code class="lang-kotlin">@Location</code>. Nested Locations are supported</p>
|
|
</span></div>
|
|
</div>
|
|
</div>
|
|
<a data-name="926400660%2FMain%2F0" anchor-label="kompendium-oas" id="926400660%2FMain%2F0" data-filterable-set=""></a>
|
|
<div class="table-row">
|
|
<div class="main-subrow ">
|
|
<div class="w-100"><span class="inline-flex">
|
|
<div><a href="kompendium-oas/index.html">kompendium-oas</a></div>
|
|
<span class="anchor-wrapper"><span class="anchor-icon" pointing-to="926400660%2FMain%2F0"></span>
|
|
<div class="copy-popup-wrapper "><span class="copy-popup-icon"></span><span>Link copied to clipboard</span></div>
|
|
</span></span></div>
|
|
<div><span class="brief-comment">
|
|
<p class="paragraph">This module contains the models that represent the Open Api Specification 3.0 (OAS).</p>
|
|
</span></div>
|
|
</div>
|
|
</div>
|
|
<a data-name="-1622380618%2FMain%2F0" anchor-label="kompendium-swagger-ui" id="-1622380618%2FMain%2F0" data-filterable-set=""></a>
|
|
<div class="table-row">
|
|
<div class="main-subrow ">
|
|
<div class="w-100"><span class="inline-flex">
|
|
<div><a href="kompendium-swagger-ui/index.html">kompendium-swagger-ui</a></div>
|
|
<span class="anchor-wrapper"><span class="anchor-icon" pointing-to="-1622380618%2FMain%2F0"></span>
|
|
<div class="copy-popup-wrapper "><span class="copy-popup-icon"></span><span>Link copied to clipboard</span></div>
|
|
</span></span></div>
|
|
<div><span class="brief-comment">
|
|
<p class="paragraph">Contains the code necessary to launch <code class="lang-kotlin">swagger</code> as your documentation frontend.</p>
|
|
</span></div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="footer"><span class="go-to-top-icon"><a href="#content" id="go-to-top-link"></a></span><span>© 2022 Copyright</span><span class="pull-right"><span>Generated by </span><a href="https://github.com/Kotlin/dokka"><span>dokka</span><span class="padded-icon"></span></a></span></div>
|
|
</div>
|
|
</div>
|
|
|
|
</body></html>
|
|
|
|
|