forked from loafle/openapi-generator-original
* Add of a first working generator for FastEndpoints framework Generator that support the basics of a FastEndpoints project https://fast-endpoints.com/ * Add respose code documentation support * Add an option to enable use of problem details * Clean enum and model * Add an option to generate record for requests/models * Update sample * Add support of nullable types * Add option to enable authentication * Add option to generate validators * Clean readme.md file * Add option to enable response caching * update readme template * Add missing files references * Update generated sample * Add link to documentation * Add generator documentation * correctly support packageName supportingFiles additions moved to processOpts() * improve useAuthentication option handling Avoid to copy an empty file * processOpts, move call to parent at the end * Update generated sample * Refactor and fix super.processOpts(); call order * Handle the case of multi-line description * Rename field to match naming conventions * Add useApiVersioning option * Update generated sample * Add generator documentation * Fix record when model contains optional properties * Add configuration files for each option * Add sample project for each configuration * Add GitHub Action workflow for sample projects * Add FastEndpoints BindFrom attribute on path, query and form params * Update sample generated projects * Fix validator template * fix alphabetical order * Use fully qualified name for FastEndpoints * Add options to set GUID to be used in sln file * update sample projects * Update generators.md * Fix path in github workflow * Put readme, gitignore and solution file at the root of generated project * update sample projects * Remove the projectGuid option This Guid need to be constant, it is related to project type * update sample projects
9.9 KiB
9.9 KiB
title |
---|
Documentation for the aspnet-fastendpoints Generator |
METADATA
Property | Value | Notes |
---|---|---|
generator name | aspnet-fastendpoints | pass this to the generate command after -g |
generator stability | STABLE | |
generator type | SERVER | |
generator language | C# | |
generator default templating engine | mustache | |
helpTxt | Generates a server for FastEndpoints (https://fast-endpoints.com/). |
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 | |
apiVersion | The version of the API. Used only if useApiVersioning is true | 1 | |
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 |
legacyDiscriminatorBehavior | Set to false for generators with better support for discriminators. (Python, Java, Go, PowerShell, C# have this enabled by default). |
|
true |
prependFormOrBodyParameters | Add form or body parameters to the beginning of the parameter list. | false | |
projectConfigurationGuid | The project configuration GUID to be used in the solution file (auto generated if not provided) | null | |
routePrefix | The route prefix for the API. Used only if useApiVersioning is true | api | |
solutionGuid | The solution GUID to be used in the solution file (auto generated if not provided) | null | |
sortModelPropertiesByRequiredFlag | Sort model properties to place required parameters before optional parameters. | true | |
sortParamsByRequiredFlag | Sort method arguments to place required parameters before optional parameters. | true | |
useApiVersioning | Enable API versioning (https://fast-endpoints.com/docs/api-versioning). | false | |
useAuthentication | Enable authentication (https://fast-endpoints.com/docs/security). | false | |
useProblemDetails | Enable RFC compatible error responses (https://fast-endpoints.com/docs/configuration-settings#rfc7807-rfc9457-compatible-problem-details). | false | |
useRecords | Use record instead of class for the requests and response. | false | |
useResponseCaching | Enable response caching (https://fast-endpoints.com/docs/response-caching). | false | |
useValidators | Enable request validators (https://fast-endpoints.com/docs/validation). | false | |
versioningPrefix | The versioning prefix for the API. Used only if useApiVersioning is true | v |
IMPORT MAPPING
Type/Alias | Imports |
---|
INSTANTIATION TYPES
Type/Alias | Instantiated By |
---|---|
array | List |
list | List |
map | Dictionary |
LANGUAGE PRIMITIVES
- Boolean
- Collection
- DateOnly
- DateOnly?
- DateTime
- DateTime?
- DateTimeOffset
- DateTimeOffset?
- Decimal
- Dictionary
- Double
- Float
- Guid
- Guid?
- ICollection
- Int32
- Int64
- List
- Object
- String
- System.IO.Stream
- bool
- bool?
- byte[]
- decimal
- decimal?
- double
- double?
- float
- float?
- int
- int?
- long
- long?
- string
- uint
- uint?
- ulong
- ulong?
RESERVED WORDS
- Client
- Configuration
- Environment
- OperatingSystem
- TimeZone
- Version
- abstract
- as
- base
- bool
- break
- byte
- case
- catch
- char
- checked
- class
- client
- const
- continue
- decimal
- default
- delegate
- do
- double
- else
- enum
- event
- explicit
- extern
- false
- finally
- fixed
- float
- for
- foreach
- goto
- if
- implicit
- in
- int
- interface
- internal
- is
- localVarFileParams
- localVarFormParams
- localVarHeaderParams
- localVarHttpContentType
- localVarHttpContentTypes
- localVarHttpHeaderAccept
- localVarHttpHeaderAccepts
- localVarPath
- localVarPathParams
- localVarPostBody
- localVarQueryParams
- localVarResponse
- localVarStatusCode
- lock
- long
- namespace
- new
- null
- object
- operator
- out
- override
- parameter
- params
- private
- protected
- public
- readonly
- ref
- return
- sbyte
- sealed
- short
- sizeof
- stackalloc
- static
- string
- struct
- switch
- system
- this
- throw
- true
- try
- typeof
- uint
- ulong
- unchecked
- unsafe
- ushort
- using
- virtual
- void
- volatile
- while
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 |