r1-api-layer 1.0.1

This is the API for the in class project of the TINF22B6 course at DHBW Karlsruhe. Here we create a OSU-like game which also sends some of the game run data to a server to do statistical analysis with Julia.
Documentation
# Rust API for openapi_client

This is the API for the in class project of the TINF22B6 course at DHBW Karlsruhe. Here we create a OSU-like game which also sends some of the game run data to a server to do statistical analysis with Julia.

## Overview

This client/server was generated by the [openapi-generator]
(https://openapi-generator.tech) project.  By using the
[OpenAPI-Spec](https://github.com/OAI/OpenAPI-Specification) from a remote
server, you can easily generate a server stub.

To see how to make this your own, look here:

[README]((https://openapi-generator.tech))

- API version: 1.0.1
- Build date: 2025-03-04T12:44:52.339843+01:00[Europe/Berlin]
- Generator version: 7.11.0



This autogenerated project defines an API crate `openapi_client` which contains:
* An `Api` trait defining the API in Rust.
* Data types representing the underlying data model.
* A `Client` type which implements `Api` and issues HTTP requests for each operation.
* A router which accepts HTTP requests and invokes the appropriate `Api` method for each operation.
* A CLI tool to drive basic API operations from the command line.

It also contains an example server and client which make use of `openapi_client`:

* The example server starts up a web server using the `openapi_client`
    router, and supplies a trivial implementation of `Api` which returns failure
    for every operation.
* The example client provides a CLI which lets you invoke
    any single operation on the `openapi_client` client by passing appropriate
    arguments on the command line.

You can use the example server and client as a basis for your own code.
See below for [more detail on the examples](#using-the-generated-library).

## CLI

Run the included CLI tool with:

```
cargo run --bin cli --features=cli
```

To pass in arguments, put them after `--`, for example:

```
cargo run --bin cli --features=cli -- --help
```

See the help text for available options.

To build a standalone tool, use:

```
cargo build --bin cli --features=cli --release
```

You'll find the binary at `target/release/cli`.

## Examples

Run examples with:

```
cargo run --example <example-name>
```

To pass in arguments to the examples, put them after `--`, for example:

```
cargo run --example client -- --help
```

### Running the example server
To run the server, follow these simple steps:

```
cargo run --example server
```

### Running the example client
To run a client, follow one of the following simple steps:

```
cargo run --example client BobbyDelete
cargo run --example client StatisticsGet
cargo run --example client StatisticsUuidGet
cargo run --example client UserUuidGet
```

### HTTPS
The examples can be run in HTTPS mode by passing in the flag `--https`, for example:

```
cargo run --example server -- --https
```

This will use the keys/certificates from the examples directory. Note that the
server chain is signed with `CN=localhost`.

## Using the generated library

The generated library has a few optional features that can be activated through Cargo.

* `server`
    * This defaults to enabled and creates the basic skeleton of a server implementation based on hyper
    * To create the server stack you'll need to provide an implementation of the API trait to provide the server function.
* `client`
    * This defaults to enabled and creates the basic skeleton of a client implementation based on hyper
    * The constructed client implements the API trait by making remote API call.
* `conversions`
    * This defaults to disabled and creates extra derives on models to allow "transmogrification" between objects of structurally similar types.
* `cli`
    * This defaults to disabled and is required for building the included CLI tool.

See https://doc.rust-lang.org/cargo/reference/manifest.html#the-features-section for how to use features in your `Cargo.toml`.

## Documentation for API Endpoints

All URIs are relative to *https://tbd.freemine.de*

Method | HTTP request | Description
------------- | ------------- | -------------
[****]docs/default_api.md# | **DELETE** /bobby | Calls for Booby Drop Tables
[****]docs/default_api.md# | **POST** /game | Submit game end data
[****]docs/default_api.md# | **POST** /register | Creates a User in our System.
[****]docs/default_api.md# | **GET** /statistics | Fetch all statistics
[****]docs/default_api.md# | **GET** /statistics/{UUID} | Fetch details for a specific run.
[****]docs/default_api.md# | **GET** /user/{UUID} | Gets user Details from UUID.


## Documentation For Models

 - [Click]docs/Click.md
 - [CreateUserDto]docs/CreateUserDto.md
 - [GameEndDto]docs/GameEndDto.md
 - [GameEndDtoDifficulty]docs/GameEndDtoDifficulty.md
 - [HitDetail]docs/HitDetail.md
 - [Hitbox]docs/Hitbox.md
 - [Point]docs/Point.md
 - [ResultDto]docs/ResultDto.md
 - [Spawn]docs/Spawn.md
 - [Tier]docs/Tier.md
 - [UserDto]docs/UserDto.md


## Documentation For Authorization
Endpoints do not require authorization.


## Author