forked from OpenAPITools/openapi-generator
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[Rust] [Server] New generator bases on Axum (OpenAPITools#17549)
* Rust Server - Axum based (#5) * Fix typo * Address comment * Address comment
- Loading branch information
Showing
107 changed files
with
35,444 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,10 @@ | ||
generatorName: rust-axum | ||
outputDir: samples/server/petstore/rust-axum/output/multipart-v3 | ||
inputSpec: modules/openapi-generator/src/test/resources/3_0/rust-server/multipart-v3.yaml | ||
templateDir: modules/openapi-generator/src/main/resources/rust-axum | ||
generateAliasAsModel: true | ||
additionalProperties: | ||
hideGenerationTimestamp: "true" | ||
allowBlockingResponseSerialize: "true" | ||
packageName: multipart-v3 | ||
enablePostProcessFile: true |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,10 @@ | ||
generatorName: rust-axum | ||
outputDir: samples/server/petstore/rust-axum/output/openapi-v3 | ||
inputSpec: modules/openapi-generator/src/test/resources/3_0/rust-server/openapi-v3.yaml | ||
templateDir: modules/openapi-generator/src/main/resources/rust-axum | ||
generateAliasAsModel: true | ||
additionalProperties: | ||
hideGenerationTimestamp: "true" | ||
allowBlockingValidator: "true" | ||
packageName: openapi-v3 | ||
enablePostProcessFile: true |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,8 @@ | ||
generatorName: rust-axum | ||
outputDir: samples/server/petstore/rust-axum/output/ops-v3 | ||
inputSpec: modules/openapi-generator/src/test/resources/3_0/rust-server/ops-v3.yaml | ||
templateDir: modules/openapi-generator/src/main/resources/rust-axum | ||
generateAliasAsModel: true | ||
additionalProperties: | ||
hideGenerationTimestamp: "true" | ||
packageName: ops-v3 |
10 changes: 10 additions & 0 deletions
10
bin/configs/rust-axum-petstore-with-fake-endpoints-models-for-testing.yaml
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,10 @@ | ||
generatorName: rust-axum | ||
outputDir: samples/server/petstore/rust-axum/output/petstore-with-fake-endpoints-models-for-testing | ||
inputSpec: modules/openapi-generator/src/test/resources/2_0/rust-server/petstore-with-fake-endpoints-models-for-testing.yaml | ||
templateDir: modules/openapi-generator/src/main/resources/rust-axum | ||
generateAliasAsModel: true | ||
additionalProperties: | ||
hideGenerationTimestamp: "true" | ||
packageName: petstore-with-fake-endpoints-models-for-testing | ||
publishRustRegistry: crates-io | ||
enablePostProcessFile: true |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,9 @@ | ||
generatorName: rust-axum | ||
outputDir: samples/server/petstore/rust-axum/output/petstore | ||
inputSpec: modules/openapi-generator/src/test/resources/3_0/petstore.yaml | ||
templateDir: modules/openapi-generator/src/main/resources/rust-axum | ||
generateAliasAsModel: true | ||
additionalProperties: | ||
hideGenerationTimestamp: "true" | ||
packageName: petstore | ||
enablePostProcessFile: true |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,9 @@ | ||
generatorName: rust-axum | ||
outputDir: samples/server/petstore/rust-axum/output/ping-bearer-auth | ||
inputSpec: modules/openapi-generator/src/test/resources/3_0/rust-server/ping-bearer-auth.yaml | ||
templateDir: modules/openapi-generator/src/main/resources/rust-axum | ||
generateAliasAsModel: true | ||
additionalProperties: | ||
hideGenerationTimestamp: "true" | ||
packageName: ping-bearer-auth | ||
enablePostProcessFile: true |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,9 @@ | ||
generatorName: rust-axum | ||
outputDir: samples/server/petstore/rust-axum/output/rust-axum-test | ||
inputSpec: modules/openapi-generator/src/test/resources/2_0/rust-server/rust-server-test.yaml | ||
templateDir: modules/openapi-generator/src/main/resources/rust-axum | ||
generateAliasAsModel: true | ||
additionalProperties: | ||
hideGenerationTimestamp: "true" | ||
packageName: rust-server-test | ||
enablePostProcessFile: true |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,235 @@ | ||
--- | ||
title: Documentation for the rust-axum Generator | ||
--- | ||
|
||
## METADATA | ||
|
||
| Property | Value | Notes | | ||
| -------- | ----- | ----- | | ||
| generator name | rust-axum | pass this to the generate command after -g | | ||
| generator stability | BETA | | | ||
| generator type | SERVER | | | ||
| generator language | Rust | | | ||
| generator default templating engine | mustache | | | ||
| helpTxt | Generates a Rust server library which bases on Axum. | | | ||
|
||
## CONFIG OPTIONS | ||
These options may be applied as additional-properties (cli) or configOptions (plugins). Refer to [configuration docs](https://openapi-generator.tech/docs/configuration) for more details. | ||
|
||
| Option | Description | Values | Default | | ||
| ------ | ----------- | ------ | ------- | | ||
|allowBlockingResponseSerialize|By default, json/form-urlencoded response serialization, which might perform a lot of compute in a future without yielding, is executed on a blocking thread via tokio::task::spawn_blocking. Set this option to true will override this behaviour and allow blocking call to happen. It helps to improve the performance when response serialization (e.g. returns tiny data) is low cost.| |false| | ||
|allowBlockingValidator|By default, validation process, which might perform a lot of compute in a future without yielding, is executed on a blocking thread via tokio::task::spawn_blocking. Set this option to true will override this behaviour and allow blocking call to happen. It helps to improve the performance when validating request-data (header, path, query, body) is low cost.| |false| | ||
|disableValidator|Disable validating request-data (header, path, query, body) against OpenAPI Schema Specification.| |false| | ||
|packageName|Rust crate name (convention: snake_case).| |openapi| | ||
|packageVersion|Rust crate version.| |null| | ||
|
||
## IMPORT MAPPING | ||
|
||
| Type/Alias | Imports | | ||
| ---------- | ------- | | ||
|
||
|
||
## INSTANTIATION TYPES | ||
|
||
| Type/Alias | Instantiated By | | ||
| ---------- | --------------- | | ||
|array|Vec| | ||
|map|std::collections::HashMap| | ||
|
||
|
||
## LANGUAGE PRIMITIVES | ||
|
||
<ul class="column-ul"> | ||
<li>String</li> | ||
<li>bool</li> | ||
<li>char</li> | ||
<li>f32</li> | ||
<li>f64</li> | ||
<li>i16</li> | ||
<li>i32</li> | ||
<li>i64</li> | ||
<li>i8</li> | ||
<li>isize</li> | ||
<li>str</li> | ||
<li>u16</li> | ||
<li>u32</li> | ||
<li>u64</li> | ||
<li>u8</li> | ||
<li>usize</li> | ||
</ul> | ||
|
||
## RESERVED WORDS | ||
|
||
<ul class="column-ul"> | ||
<li>Self</li> | ||
<li>abstract</li> | ||
<li>as</li> | ||
<li>async</li> | ||
<li>await</li> | ||
<li>become</li> | ||
<li>box</li> | ||
<li>break</li> | ||
<li>const</li> | ||
<li>continue</li> | ||
<li>crate</li> | ||
<li>do</li> | ||
<li>dyn</li> | ||
<li>else</li> | ||
<li>enum</li> | ||
<li>extern</li> | ||
<li>false</li> | ||
<li>final</li> | ||
<li>fn</li> | ||
<li>for</li> | ||
<li>if</li> | ||
<li>impl</li> | ||
<li>in</li> | ||
<li>let</li> | ||
<li>loop</li> | ||
<li>macro</li> | ||
<li>match</li> | ||
<li>mod</li> | ||
<li>move</li> | ||
<li>mut</li> | ||
<li>override</li> | ||
<li>priv</li> | ||
<li>pub</li> | ||
<li>ref</li> | ||
<li>return</li> | ||
<li>self</li> | ||
<li>static</li> | ||
<li>struct</li> | ||
<li>super</li> | ||
<li>trait</li> | ||
<li>true</li> | ||
<li>try</li> | ||
<li>type</li> | ||
<li>typeof</li> | ||
<li>unsafe</li> | ||
<li>unsized</li> | ||
<li>use</li> | ||
<li>virtual</li> | ||
<li>where</li> | ||
<li>while</li> | ||
<li>yield</li> | ||
</ul> | ||
|
||
## FEATURE SET | ||
|
||
|
||
### Client Modification Feature | ||
| Name | Supported | Defined By | | ||
| ---- | --------- | ---------- | | ||
|BasePath|✗|ToolingExtension | ||
|Authorizations|✗|ToolingExtension | ||
|UserAgent|✗|ToolingExtension | ||
|MockServer|✗|ToolingExtension | ||
|
||
### Data Type Feature | ||
| Name | Supported | Defined By | | ||
| ---- | --------- | ---------- | | ||
|Custom|✗|OAS2,OAS3 | ||
|Int32|✓|OAS2,OAS3 | ||
|Int64|✓|OAS2,OAS3 | ||
|Float|✓|OAS2,OAS3 | ||
|Double|✓|OAS2,OAS3 | ||
|Decimal|✓|ToolingExtension | ||
|String|✓|OAS2,OAS3 | ||
|Byte|✓|OAS2,OAS3 | ||
|Binary|✓|OAS2,OAS3 | ||
|Boolean|✓|OAS2,OAS3 | ||
|Date|✓|OAS2,OAS3 | ||
|DateTime|✓|OAS2,OAS3 | ||
|Password|✓|OAS2,OAS3 | ||
|File|✓|OAS2 | ||
|Uuid|✗| | ||
|Array|✓|OAS2,OAS3 | ||
|Null|✗|OAS3 | ||
|AnyType|✗|OAS2,OAS3 | ||
|Object|✓|OAS2,OAS3 | ||
|Maps|✓|ToolingExtension | ||
|CollectionFormat|✓|OAS2 | ||
|CollectionFormatMulti|✓|OAS2 | ||
|Enum|✓|OAS2,OAS3 | ||
|ArrayOfEnum|✓|ToolingExtension | ||
|ArrayOfModel|✓|ToolingExtension | ||
|ArrayOfCollectionOfPrimitives|✓|ToolingExtension | ||
|ArrayOfCollectionOfModel|✓|ToolingExtension | ||
|ArrayOfCollectionOfEnum|✓|ToolingExtension | ||
|MapOfEnum|✓|ToolingExtension | ||
|MapOfModel|✓|ToolingExtension | ||
|MapOfCollectionOfPrimitives|✓|ToolingExtension | ||
|MapOfCollectionOfModel|✓|ToolingExtension | ||
|MapOfCollectionOfEnum|✓|ToolingExtension | ||
|
||
### Documentation Feature | ||
| Name | Supported | Defined By | | ||
| ---- | --------- | ---------- | | ||
|Readme|✗|ToolingExtension | ||
|Model|✓|ToolingExtension | ||
|Api|✓|ToolingExtension | ||
|
||
### Global Feature | ||
| Name | Supported | Defined By | | ||
| ---- | --------- | ---------- | | ||
|Host|✓|OAS2,OAS3 | ||
|BasePath|✓|OAS2,OAS3 | ||
|Info|✗|OAS2,OAS3 | ||
|Schemes|✗|OAS2,OAS3 | ||
|PartialSchemes|✓|OAS2,OAS3 | ||
|Consumes|✓|OAS2 | ||
|Produces|✓|OAS2 | ||
|ExternalDocumentation|✗|OAS2,OAS3 | ||
|Examples|✗|OAS2,OAS3 | ||
|XMLStructureDefinitions|✗|OAS2,OAS3 | ||
|MultiServer|✗|OAS3 | ||
|ParameterizedServer|✗|OAS3 | ||
|ParameterStyling|✗|OAS3 | ||
|Callbacks|✗|OAS3 | ||
|LinkObjects|✗|OAS3 | ||
|
||
### Parameter Feature | ||
| Name | Supported | Defined By | | ||
| ---- | --------- | ---------- | | ||
|Path|✓|OAS2,OAS3 | ||
|Query|✓|OAS2,OAS3 | ||
|Header|✓|OAS2,OAS3 | ||
|Body|✓|OAS2 | ||
|FormUnencoded|✓|OAS2 | ||
|FormMultipart|✓|OAS2 | ||
|Cookie|✗|OAS3 | ||
|
||
### Schema Support Feature | ||
| Name | Supported | Defined By | | ||
| ---- | --------- | ---------- | | ||
|Simple|✓|OAS2,OAS3 | ||
|Composite|✓|OAS2,OAS3 | ||
|Polymorphism|✗|OAS2,OAS3 | ||
|Union|✗|OAS3 | ||
|allOf|✗|OAS2,OAS3 | ||
|anyOf|✗|OAS3 | ||
|oneOf|✗|OAS3 | ||
|not|✗|OAS3 | ||
|
||
### Security Feature | ||
| Name | Supported | Defined By | | ||
| ---- | --------- | ---------- | | ||
|BasicAuth|✓|OAS2,OAS3 | ||
|ApiKey|✓|OAS2,OAS3 | ||
|OpenIDConnect|✗|OAS3 | ||
|BearerToken|✓|OAS3 | ||
|OAuth2_Implicit|✓|OAS2,OAS3 | ||
|OAuth2_Password|✓|OAS2,OAS3 | ||
|OAuth2_ClientCredentials|✓|OAS2,OAS3 | ||
|OAuth2_AuthorizationCode|✓|OAS2,OAS3 | ||
|SignatureAuth|✗|OAS3 | ||
|AWSV4Signature|✗|ToolingExtension | ||
|
||
### Wire Format Feature | ||
| Name | Supported | Defined By | | ||
| ---- | --------- | ---------- | | ||
|JSON|✓|OAS2,OAS3 | ||
|XML|✗|OAS2,OAS3 | ||
|PROTOBUF|✗|ToolingExtension | ||
|Custom|✓|OAS2,OAS3 |
Oops, something went wrong.