# Documentation for the cpp-pistache-server Generator

## #METADATA

Property | Value | Notes
--- | --- | ---
generator name | cpp-pistache-server | 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 C++ API server (based on Pistache) |

## #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
--- | --- | --- | ---
addExternalLibs | Add the Possibility to fetch and compile external Libraries needed by this Framework. |  | true
helpersPackage | Specify the package name to be used for the helpers (e.g. org.openapitools.server.helpers). |  | org.openapitools.server.helpers
reservedWordPrefix | Prefix to prepend to reserved words in order to avoid conflicts |  | r_
useStructModel | Use struct-based model template instead of get/set-based model template |  | false
variableNameFirstCharacterUppercase | Make first character of variable name uppercase (eg. value -> Value) |  | true

## #IMPORT MAPPING

Type/Alias | Imports
--- | ---
Object | #include "Object.h"
nlohmann::json | #include <nlohmann/json.hpp>
std::map | #include <map>
std::string | #include <string>
std::vector | #include <vector>

## #INSTANTIATION TYPES

Type/Alias | Instantiated By
--- | ---

## #LANGUAGE PRIMITIVES

- bool
- char
- double
- float
- int
- int32_t
- int64_t
- long

## #RESERVED WORDS

- alignas
- alignof
- and
- and_eq
- asm
- auto
- bitand
- bitor
- bool
- break
- case
- catch
- char
- char16_t
- char32_t
- class
- compl
- concept
- const
- const_cast
- constexpr
- continue
- decltype
- default
- delete
- do
- double
- dynamic_cast
- else
- enum
- explicit
- export
- extern
- false
- float
- for
- friend
- goto
- if
- inline
- int
- linux
- long
- mutable
- namespace
- new
- noexcept
- not
- not_eq
- nullptr
- operator
- or
- or_eq
- private
- protected
- public
- register
- reinterpret_cast
- requires
- return
- short
- signed
- sizeof
- static
- static_assert
- static_cast
- struct
- switch
- template
- this
- thread_local
- throw
- true
- try
- typedef
- typeid
- typename
- union
- unsigned
- using
- virtual
- void
- volatile
- wchar_t
- while
- xor
- xor_eq

## #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

### #Wire Format Feature

Name | Supported | Defined By
--- | --- | ---
JSON | ✓ | OAS2,OAS3
XML | ✓ | OAS2,OAS3
PROTOBUF | ✗ | ToolingExtension
Custom | ✗ | OAS2,OAS3

Edit this page
Last updated on 2022-11-1 by William Cheng

- METADATA
- CONFIG OPTIONS
- IMPORT MAPPING
- INSTANTIATION TYPES
- LANGUAGE PRIMITIVES
- RESERVED WORDS
- FEATURE SET
  - Client Modification Feature
  - Data Type Feature
  - Documentation Feature
  - Global Feature
  - Parameter Feature
  - Schema Support Feature
  - Security Feature
  - Wire Format Feature