An open API service indexing awesome lists of open source software.

https://github.com/ricardozanini/quarkus-openapi-gen-showcase

End-to-End example of Quarkus OpenAPI Generator Extension
https://github.com/ricardozanini/quarkus-openapi-gen-showcase

extension openapi openapi-generator quarkus

Last synced: 7 months ago
JSON representation

End-to-End example of Quarkus OpenAPI Generator Extension

Awesome Lists containing this project

README

          

# Quarkus OpenAPI Generator Showcase

Small example of the [Quarkus OpenAPI Generator extension](https://github.com/quarkiverse/quarkus-openapi-generator) usage.

To create this project from the ground up:

1. Run quarkus CLI to bootstrap the project:

```shell
quarkus create app \
-x=quarkus-openapi-generator \
--no-code \
org.acme:my-app:1.0
```

2. Add the [OpenAPI file from this repo](https://github.com/ricardozanini/quarkus-openapi-gen-showcase/blob/main/src/main/openapi/openweather.yaml) to the `src/main/openapi` directory

3. Run `mvn clean install` to generate the REST stubs for you

4. Now your IDE should recognize the generated code in `target/generated-sources/open-api-yaml` folder

5. Use the `CurrentWeatherDataApi` class in your code. You can refer to [`WeatherResource.java`](https://github.com/ricardozanini/quarkus-openapi-gen-showcase/blob/main/src/main/java/org/acme/openweather/WeatherResource.java#L23) as a usage example

6. Go to the [OpenWeatherMap website](https://openweathermap.org/api) and grab an API key. Add it to your `application.property` file:

```properties
quarkus.openapi-generator.openweather_yaml.auth.app_id.api-key=
```

For any questions, please open an issue in this repo, I'll be glad to help you with it. Also, this project can be used as a reference to write your own tests.

How to run this application

This project uses Quarkus, the Supersonic Subatomic Java Framework.

If you want to learn more about Quarkus, please visit its website: https://quarkus.io/ .

## Running the application in dev mode

You can run your application in dev mode that enables live coding using:
```shell script
./mvnw compile quarkus:dev
```

> **_NOTE:_** Quarkus now ships with a Dev UI, which is available in dev mode only at http://localhost:8080/q/dev/.

## Packaging and running the application

The application can be packaged using:
```shell script
./mvnw package
```
It produces the `quarkus-run.jar` file in the `target/quarkus-app/` directory.
Be aware that it’s not an _über-jar_ as the dependencies are copied into the `target/quarkus-app/lib/` directory.

The application is now runnable using `java -jar target/quarkus-app/quarkus-run.jar`.

If you want to build an _über-jar_, execute the following command:
```shell script
./mvnw package -Dquarkus.package.type=uber-jar
```

The application, packaged as an _über-jar_, is now runnable using `java -jar target/*-runner.jar`.

## Creating a native executable

You can create a native executable using:
```shell script
./mvnw package -Pnative
```

Or, if you don't have GraalVM installed, you can run the native executable build in a container using:
```shell script
./mvnw package -Pnative -Dquarkus.native.container-build=true
```

You can then execute your native executable with: `./target/quarkus-podcast-1.0-runner`

If you want to learn more about building native executables, please consult https://quarkus.io/guides/maven-tooling.