Skip to content

OpenAPI template

Heim currently supports generating a http-api-application based on a OpenAPI v3.0.3 specification for Rust and C#.

We currently support only a small subset of the specification.



Supported does not mean functionality.
A property can be allowed to be used in a specification by Heim but the property might be ignored. Supported means its allowed in a specification.


Field nameTypeOpenapi requiredHeim requiredSupportedNote
openapistring
infoInfo Object
servers[Server Object]
pathsPaths ObjectNot required by OpenAPI but specification is useless without it.
componentsComponents Object
security[Security Requirement Object]
tags[Tag Object]
externalDocsExternal Documentation Object
Field nameTypeOpenapi requiredHeim requiredSupportedNote
titlestring
descriptionstring
termsOfServicestring
contactContact Object
licenseLicense Object
versionstring
Field nameTypeOpenapi requiredHeim requiredSupportedNote
namestring
urlstring
emailstring
Field nameTypeOpenapi requiredHeim requiredSupportedNote
namestring
urlstring
Field nameTypeOpenapi requiredHeim requiredSupportedNote
urlstring
descriptionstring
variablesMap[string, Server Variable Object]
Field nameTypeOpenapi requiredHeim requiredSupportedNote
enum[string]
defaultstring
descriptionstring
Field nameTypeOpenapi requiredHeim requiredSupportedNote
schemasMap[string, Schema Object | Reference Object]
responsesMap[string, Response Object | Reference Object]
parametersMap[string, Parameter Object | Reference Object]
examplesMap[string, Example Object | Reference Object]
requestBodiesMap[string, Request Body Object | Reference Object]
headersMap[string, Header Object | Reference Object]
securitySchemesMap[string, Security Scheme Object | Reference Object]Currently not implemented
linksMap[string, Link Object | Reference Object]
callbacksMap[string, Callback Object | Reference Object]
Field nameTypeOpenapi requiredHeim requiredSupportedNote
/{path}Path Item ObjectA specification used in Heim without a path serves no purpose
Field nameTypeOpenapi requiredHeim requiredSupportedNote
$refstring
summarystring
descriptionstring
getOperation Object
putOperation Object
postOperation Object
deleteOperation Object
optionsOperation Object
headOperation Object
patchOperation Object
traceOperation Object
servers[Server Object]
parameters[Parameter Object | Reference Object]
Field nameTypeOpenapi requiredHeim requiredSupportedNote
tags[string]
summarystring
descriptionstring
externalDocsExternal Documentation Object
operationIdstringThis property is used to identify your routes
parameters[Parameter Object | Reference Object]
requestBodyRequest Body Object | Reference Object✅|❌Not supported as $ref
responsesResponses Object
callbacksMap[string, Callback Object | Reference Object]
deprecatedboolean
security[Security Requirement Object]
servers[Server Object]
Field nameTypeOpenapi requiredHeim requiredSupportedNote
descriptionstring
urlstring
Field nameTypeOpenapi requiredHeim requiredSupportedNote
namestring
instring✅|❌path is not supported as value
descriptionstring
requiredboolean✅|❌
deprecatedboolean
allowEmptyValueboolean
stylestring
explodeboolean
allowReservedboolean
schemaSchema Object | Reference Object✅|❌✅|❌Does not support types object and array
exampleAny
examplesMap[string, Example Object | Reference Object]
contentMap[string, Media Type Object]✅|❌
FieldTypeOpenapi requiredHeim requiredSupportedNote
descriptionstring
contentMap[string, Media Type Object]Must be present but allowed to be empty
requiredboolean
FieldTypeOpenapi requiredHeim requiredSupportedNote
schemaSchema Object | Reference Object
exampleAny
examplesMap[string, Example Object | Reference Object]
encodingMap[string, Encoding Object]
FieldTypeOpenapi requiredHeim requiredSupportedNote
contentTypestring
headersMap[string, Header Object | Reference Object]
stylestring
explodeboolean
allowReservedboolean
Field nameTypeOpenapi requiredHeim requiredSupportedNote
defaultResponse Object | Reference Object
HTTP Status CodeResponse Object | Reference Object✅|❌
Field nameTypeOpenapi requiredHeim requiredSupportedNote
descriptionstring
headersMap[string, Header Object | Reference Object]
contentMap[string, Media Type Object]
linksMap[string, Link Object | Reference Object]
Field nameTypeOpenapi requiredHeim requiredSupportedNote
{expression}Path Item Object✅|❌Dynamic keys evaluated at runtime are not supported
Field nameTypeOpenapi requiredHeim requiredSupportedNote
summarystring
descriptionstring
valueAny
externalValuestring
FieldTypeRequiredHeim requiredSupportedNote
operationRefstring
operationIdstring
parametersMap[string, Any | {expressions}]
requestBodyAny | {expressions}
descriptionstring
serverServer Object
Field nameTypeOpenapi requiredHeim requiredSupportedNote
descriptionstring
requiredboolean
deprecatedboolean
allowEmptyValueboolean
stylestring
explodeboolean
allowReservedboolean
schemaSchema Object | Reference Object
exampleAny
examplesMap[string, Example Object | Reference Object]
contentMap[string, Media Type Object]✅|❌
FieldTypeOpenapi requiredHeim requiredSupportedNote
namestring
descriptionstring
externalDocsExternal Documentation Object
FieldTypeOpenapi requiredHeim requiredSupportedNote
$refstring✅|❌
Field nameTypeOpenapi requiredHeim requiredSupportedNote
nullableboolean
discriminatorDiscriminator Object
readOnlyboolean
writeOnlyboolean
xmlXML Object
externalDocsExternal Documenation Object
exampleAny
deprecatedboolean
FieldTypeOpenapi requiredHeim requiredSupportedNote
propertyNamestring
mappingMap[string, string]
FieldTypeOpenapi requiredHeim requiredSupportedNote
namestring
namespacestring
prefixstring
attributeboolean
wrappedboolean
FieldTypeOpenapi requiredHeim requiredSupportedNote
typestring
descriptionstring
namestring✅|❌✅|❌
instring✅|❌✅|❌
schemestring✅|❌✅|❌
bearerFormatstring
flowsOAuth Flows Object✅|❌✅|❌
openIdConnectUrlstring✅|❌✅|❌
FieldTypeOpenapi requiredHeim requiredSupportedNote
implicitOAuth Flow Object
passwordOAuth Flow Object
clientCredentialsOAuth Flow Object
authorizationCodeOAuth Flow Object
FieldTypeOpenapi requiredHeim requiredSupportedNote
authorizationUrlstring
tokenUrlstring
refreshUrlstring
scopesMap[string, string]
FieldTypeOpenapi requiredHeim requiredSupportedNote
{name}[string]
Field nameTypeOpenapi requiredHeim requiredsupportednote
titlestring
multipleOfnumber
maximumnumber
exclusiveMaximumboolean
minimumnumber
exclusiveMinimumboolean
maxLengthinteger
minLengthinteger
patternstring
maxItemsinteger
minItemsinteger
uniqueItemsboolean
maxPropertiesinteger
minPropertiesinteger
required[string]
enum[]
typestring
allOf[Schema Object]
oneOf[Schema Object]
anyOf[Schema Object]
notSchema Object
itemsAny
propertiesSchema Object
additionalPropertiesboolean | Schema Object✅|❌
descriptionstring
formatAny
defaultAny