forked from loafle/openapi-generator-original
* style(crystal): fix coding style * fix(crystal): object_id is so central in Crystal that it should not be overridden by user code See: https://crystal-lang.org/api/1.18.2/Reference.html#object_id%3AUInt64-instance-method * style(crystal): fix coding style * fix(crystal): fix partial_oneof_module by using a class instead of a module Fix https://github.com/OpenAPITools/openapi-generator/issues/22563 * fix(crystal): remove non-working code It's not working because it uses #send method which doesn't exist in Crystal See: https://crystal-lang.org/reference/1.18/crystal_for_rubyists/metaprogramming_help.html#differences-between-ruby-and-crystal * fix(crystal): update reserved words, separate reserved keywords from methods * fix(crystal): update samples * fix(crystal): set default values when options are not passed * fix(crystal): follow up https://github.com/OpenAPITools/openapi-generator/pull/22545 * fix(crystal): remove travis.yml file * style(crystal): fix coding style * style(crystal): use kwargs when calling @api_client * style(crystal): use kwargs when calling Crest::Request.new * fix(crystal): remove useless return_type argument * fix(crystal): map object type to JSON::Any type * fix(crystal): reduce use of require * fix(crystal): return early if value is nil * fix(crystal): update doc * fix(crystal): remove dead code * fix(crystal): kemal is not used in specs * fix(crystal): class name should be in PascalCase Fix: - class EnumAttributeValidatorFor_type < EnumAttributeValidator + class EnumAttributeValidatorForType < EnumAttributeValidator * fix(crystal): fix ameba warnings
8.2 KiB
8.2 KiB
title
| title |
|---|
| Documentation for the crystal Generator |
METADATA
| Property | Value | Notes |
|---|---|---|
| generator name | crystal | pass this to the generate command after -g |
| generator stability | BETA | |
| generator type | CLIENT | |
| generator language | Crystal | |
| generator default templating engine | mustache | |
| helpTxt | Generates a Crystal client library (beta). |
CONFIG OPTIONS
These options may be applied as additional-properties (cli) or configOptions (plugins). Refer to configuration docs for more details.
| Option | Description | Values | Default |
|---|---|---|---|
| allowUnicodeIdentifiers | boolean, toggles whether unicode identifiers are allowed in names or not, default is false | 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. |
|
true |
| ensureUniqueParams | Whether to ensure parameter names are unique in an operation (rename parameters that are not). | true | |
| enumUnknownDefaultCase | If the server adds new enum cases, that are unknown by an old spec/client, the client will fail to parse the network response.With this option enabled, each enum will have a new case, 'unknown_default_open_api', so that when the server sends an enum case that is not known by the client/spec, they can safely fallback to this case. |
|
false |
| hideGenerationTimestamp | Hides the generation timestamp when files are generated. | true | |
| legacyDiscriminatorBehavior | Set to false for generators with better support for discriminators. (Python, Java, Go, PowerShell, C# have this enabled by default). |
|
true |
| moduleName | module name (e.g. TwitterClient | OpenAPIClient | |
| paramsEncoder | params_encoder setting (e.g. Crest::NestedParamsEncoder, Crest::EnumeratedFlatParamsEncoder, Crest::ZeroEnumeratedFlatParamsEncoder | Crest::NestedParamsEncoder | |
| prependFormOrBodyParameters | Add form or body parameters to the beginning of the parameter list. | false | |
| shardAuthor | shard author (only one is supported). | null | |
| shardAuthorEmail | shard author email (only one is supported). | null | |
| shardDescription | shard description. | This shard maps to a REST API | |
| shardHomepage | shard homepage. | http://org.openapitools | |
| shardLicense | shard license. | unlicense | |
| shardName | shard name (e.g. twitter_client | openapi_client | |
| shardVersion | shard version. | 1.0.0 | |
| sortModelPropertiesByRequiredFlag | Sort model properties to place required parameters before optional parameters. | true | |
| sortParamsByRequiredFlag | Sort method arguments to place required parameters before optional parameters. | true |
IMPORT MAPPING
| Type/Alias | Imports |
|---|
INSTANTIATION TYPES
| Type/Alias | Instantiated By |
|---|---|
| array | Array |
| map | Hash |
| set | Set |
LANGUAGE PRIMITIVES
- ::File
- Array
- Boolean
- Date
- Float
- Hash
- Integer
- Object
- String
- Time
RESERVED WORDS
- abstract
- alias
- annotation
- as
- as?
- asm
- begin
- break
- case
- class
- def
- do
- else
- elsif
- end
- ensure
- enum
- extend
- false
- for
- fun
- if
- in
- include
- instance_sizeof
- is_a?
- lib
- macro
- module
- next
- nil
- nil?
- object_id
- of
- out
- pointerof
- previous_def
- private
- protected
- require
- rescue
- responds_to?
- return
- select
- self
- sizeof
- struct
- super
- then
- true
- type
- typeof
- uninitialized
- union
- unless
- until
- verbatim
- when
- while
- with
- yield
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 |