Git Product home page Git Product logo

quarkus-kiota's Introduction

Quarkus - Kiota Extension

All Contributors

Build Maven Central License

Quarkus' extension for generation of client SDKs based on OpenAPI specification files.

This extension is based on the Kiota.

Want to contribute? Great! We try to make it easy, and all contributions, even the smaller ones, are more than welcome. This includes bug reports, fixes, documentation, examples... But first, read this page.

Getting Started

If you have a supersonic, subatomic Quarkus project you can use this extension to generate code with Kiota:

<dependency>
  <groupId>io.quarkiverse.kiota</groupId>
  <artifactId>quarkus-kiota</artifactId>
  <version>VERSION</version>
</dependency>

remember to enable the code generation in the quarkus-maven-plugin configuration, if not already present, add <goal>generate-code</goal>:

<plugin>
  <groupId>io.quarkus</groupId>
  <artifactId>quarkus-maven-plugin</artifactId>
  <executions>
    <execution>
      <goals>
        <goal>build</goal>
        <goal>generate-code</goal>
      </goals>
    </execution>
  </executions>
</plugin>

now you can drop any Open API specification in the src/<scope>/openapi folder and configure the extension as usual with Quarkus configuration. We highly encourage you to pin quarkus.kiota.version to a specific version instead of relying on the "latest detection" built-in mechanism for production code.

config description
quarkus.kiota.os Override the detected Operating System
quarkus.kiota.arch Override the detected Architecture
quarkus.kiota.provided Specify the path to an available Kiota CLI to be used
quarkus.kiota.release.url Define an alternative URL to be used to download the Kiota CLI
quarkus.kiota.version Define a specific Kiota version to be used
quarkus.kiota.timeout Global timeout over the execution of the Kiota CLI

To fine tune the generation you can define additional properties after the Open API spec file name:

config description
quarkus.kiota.< filename >.class-name Specify the name for the generated client class
quarkus.kiota.< filename >.package-name Specify the name of the package for the generated sources
quarkus.kiota.< filename >.include-path Glob expression to identify the endpoint to be included in the generation
quarkus.kiota.< filename >.exclude-path Glob expression to identify the endpoint to be excluded in the generation
quarkus.kiota.< filename >.serializer Overwrite the serializers for the generation
quarkus.kiota.< filename >.deserializer Overwrite the deserializers for the generation

Using the extension, by default, the Json serializer and deserializer will be based on Jackson instead of the official one based on Gson.

If you want to improve the docs, please feel free to contribute editing the docs in Docs. But first, read this page.

Contributors โœจ

Thanks goes to these wonderful people (emoji key):

Andrea Peruffo
Andrea Peruffo

๐Ÿ’ป ๐Ÿšง
George Gastaldi
George Gastaldi

๐Ÿ’ป ๐Ÿšง

This project follows the all-contributors specification. Contributions of any kind welcome!

quarkus-kiota's People

Contributors

dependabot[bot] avatar andreatp avatar actions-user avatar gastaldi avatar allcontributors[bot] avatar

Stargazers

Benjamin avatar  avatar Thiago Moura avatar User avatar  avatar Shauni avatar

Watchers

Alexey Loubyansky avatar Guillaume Smet avatar  avatar  avatar

Forkers

andreatp

quarkus-kiota's Issues

Use `none` Serialization

With the next Kiota release, we should be able to switch to the none serialization key, removing the need to modify in place the generated code.
We should figure out how to ship the registration code though, probably having Quarkus-specific RequestAdapter implementations.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.