-
-
Notifications
You must be signed in to change notification settings - Fork 6.5k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[Scala][Client]Add Http4s scala3 client codegen #19658
Open
JennyLeahy
wants to merge
17
commits into
OpenAPITools:master
Choose a base branch
from
JennyLeahy:http4s-scala3-client
base: master
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Changes from all commits
Commits
Show all changes
17 commits
Select commit
Hold shift + click to select a range
94b05e5
fix attemp
d3b4014
use java.time.Instant
33ba493
fix client gen
3dba0af
Tweeks
44d08f8
header and form
b814269
use scala 3 enum
9f94a38
more tweeks
4877254
add additional properties; add auth
a598f68
add form media type
9ab85ff
add modelsOnly
12ac0ca
Merge branch 'OpenAPITools:master' into http4s-scala3-client
JennyLeahy 9cd4b24
add unit tests
a75eb52
add petstore samples
f5e3791
add doc
a0791ad
add new samle to .github/workflows/samples-scala.yaml
59930cc
update build.sbt template
4c5c1ca
simply the baseclient
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,6 @@ | ||
generatorName: scala-http4s | ||
outputDir: samples/client/petstore/scala-http4s | ||
inputSpec: modules/openapi-generator/src/test/resources/3_0/scala-http4s/petstore.yaml | ||
templateDir: modules/openapi-generator/src/main/resources/scala-http4s | ||
additionalProperties: | ||
artifactId: scala-http4s-client |
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,272 @@ | ||
--- | ||
title: Documentation for the scala-http4s Generator | ||
--- | ||
|
||
## METADATA | ||
|
||
| Property | Value | Notes | | ||
| -------- | ----- | ----- | | ||
| generator name | scala-http4s | pass this to the generate command after -g | | ||
| generator stability | STABLE | | | ||
| generator type | CLIENT | | | ||
| generator language | Scala | | | ||
| generator default templating engine | mustache | | | ||
| helpTxt | Generates a scala-http4s client. | | | ||
|
||
## 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 | | ||
|-------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| ------ | ------- | | ||
| allowUnicodeIdentifiers | boolean, toggles whether unicode identifiers are allowed in names or not, default is false | |false| | ||
| packageName | main package for the generated classes, parent package for api package and model package | |null| | ||
| artifactId | project name / artifactId for for the generated project | |null| | ||
| excludeSbt | exclude sbt from generation | |null| | ||
| excludeApi | exclude apis from generation | |null| | ||
| prependFormOrBodyParameters | Add form or body parameters to the beginning of the parameter list. | |false| | ||
| disallowAdditionalPropertiesIfNotPresent | If false, the 'additionalProperties' implementation (set to true by default) is compliant with the OAS and JSON schema specifications. If true (default), keep the old (incorrect) behaviour that 'additionalProperties' is set to false by default. |<dl><dt>**false**</dt><dd>The 'additionalProperties' implementation is compliant with the OAS and JSON schema specifications.</dd><dt>**true**</dt><dd>Keep the old (incorrect) behaviour that 'additionalProperties' is set to false by default.</dd></dl>|true| | ||
| ensureUniqueParams | Whether to ensure parameter names are unique in an operation (rename parameters that are not). | |true| | ||
| legacyDiscriminatorBehavior | Set to false for generators with better support for discriminators. (Python, Java, Go, PowerShell, C# have this enabled by default). |<dl><dt>**true**</dt><dd>The mapping in the discriminator includes descendent schemas that allOf inherit from self and the discriminator mapping schemas in the OAS document.</dd><dt>**false**</dt><dd>The mapping in the discriminator includes any descendent schemas that allOf inherit from self, any oneOf schemas, any anyOf schemas, any x-discriminator-values, and the discriminator mapping schemas in the OAS document AND Codegen validates that oneOf and anyOf schemas contain the required discriminator and throws an error if the discriminator is missing.</dd></dl>|true| | ||
| sortModelPropertiesByRequiredFlag | Sort model properties to place required parameters before optional parameters. | |true| | ||
| sortParamsByRequiredFlag | Sort method arguments to place required parameters before optional parameters. | |true| | ||
| sourceFolder | source folder for generated code | |null| | ||
|
||
## IMPORT MAPPING | ||
|
||
| Type/Alias | Imports | | ||
| ---------- | ------- | | ||
|ArrayBuffer|scala.collection.mutable.ArrayBuffer| | ||
|Date|java.util.Date| | ||
|File|java.io.File| | ||
|HashMap|scala.collection.immutable.HashMap| | ||
|Instant|java.time.Instant| | ||
|Json|io.circe.Json| | ||
|LocalDate|java.time.LocalDate| | ||
|LocalDateTime|java.time.LocalDateTime| | ||
|LocalTime|java.time.LocalTime| | ||
|Map|scala.collection.immutable.Map| | ||
|OffsetDateTime|java.time.OffsetDateTime| | ||
|Seq|scala.collection.immutable.Seq| | ||
|Timestamp|java.sql.Timestamp| | ||
|URI|java.net.URI| | ||
|UUID|java.util.UUID| | ||
|ZonedDateTime|java.time.ZonedDateTime| | ||
|
||
|
||
## INSTANTIATION TYPES | ||
|
||
| Type/Alias | Instantiated By | | ||
| ---------- | --------------- | | ||
|array|Seq| | ||
|list|List| | ||
|map|Map| | ||
|seq|Seq| | ||
|set|Set| | ||
|
||
|
||
## LANGUAGE PRIMITIVES | ||
|
||
<ul class="column-ul"> | ||
<li>Any</li> | ||
<li>AnyRef</li> | ||
<li>AnyVal</li> | ||
<li>BigDecimal</li> | ||
<li>Boolean</li> | ||
<li>Double</li> | ||
<li>Float</li> | ||
<li>Int</li> | ||
<li>Integer</li> | ||
<li>Long</li> | ||
<li>Object</li> | ||
<li>String</li> | ||
</ul> | ||
|
||
## RESERVED WORDS | ||
|
||
<ul class="column-ul"> | ||
<li>abstract</li> | ||
<li>assert</li> | ||
<li>break</li> | ||
<li>byte</li> | ||
<li>case</li> | ||
<li>catch</li> | ||
<li>char</li> | ||
<li>class</li> | ||
<li>const</li> | ||
<li>continue</li> | ||
<li>def</li> | ||
<li>default</li> | ||
<li>do</li> | ||
<li>double</li> | ||
<li>else</li> | ||
<li>enum</li> | ||
<li>extends</li> | ||
<li>false</li> | ||
<li>final</li> | ||
<li>finally</li> | ||
<li>float</li> | ||
<li>for</li> | ||
<li>forsome</li> | ||
<li>goto</li> | ||
<li>if</li> | ||
<li>implements</li> | ||
<li>implicit</li> | ||
<li>import</li> | ||
<li>instanceof</li> | ||
<li>int</li> | ||
<li>interface</li> | ||
<li>lazy</li> | ||
<li>long</li> | ||
<li>match</li> | ||
<li>native</li> | ||
<li>new</li> | ||
<li>null</li> | ||
<li>object</li> | ||
<li>override</li> | ||
<li>package</li> | ||
<li>private</li> | ||
<li>protected</li> | ||
<li>public</li> | ||
<li>return</li> | ||
<li>sealed</li> | ||
<li>short</li> | ||
<li>static</li> | ||
<li>strictfp</li> | ||
<li>super</li> | ||
<li>switch</li> | ||
<li>synchronized</li> | ||
<li>this</li> | ||
<li>throw</li> | ||
<li>throws</li> | ||
<li>trait</li> | ||
<li>transient</li> | ||
<li>true</li> | ||
<li>try</li> | ||
<li>type</li> | ||
<li>val</li> | ||
<li>var</li> | ||
<li>void</li> | ||
<li>volatile</li> | ||
<li>while</li> | ||
<li>with</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 |
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
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
thanks for the PR
can you please also add the new folder to https://github.com/OpenAPITools/openapi-generator/blob/master/.github/workflows/samples-scala.yaml so that CI will test is moving forward?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@wing328 done. Thank you for the review.