Forum Discussion

lualover's avatar
lualover
Frequent Visitor
3 years ago

How to get generate ZonedDateTime from OpenApi?

I am trying get `ZonedDateTime` in my generated code from OpenApi.


There is a `If-Modified-Since` header that OpenApi generates on my endpoint but it's in the type of `LocalDateTime`. This is causing issues on my integration tests.

 

task buildEndpointsFromYAML(type:
org.openapitools.generator.gradle.plugin.tasks.GenerateTask) {
generatorName = "spring"
inputSpec = acquirerYML
outputDir = "$buildDir/generated".toString()

groupId = "$project.group"
id = "$project.name-java-client"
version = "$project.version"
apiPackage = "com.abc.xyz.apiEndpoints"
modelPackage = "com.abc.xyz.apiModels"
enablePostProcessFile = true
skipOverwrite = false
typeMappings = [
OffsetDateTime: "ZonedDateTime"
]
importMappings = [
"java.time.OffsetDateTime" : "java.time.ZonedDateTime"
]
configOptions = [
configPackage : "com.abc.xyz.apiEndpoints.config",
java11 : "true",
dateLibrary : "java8-localdatetime",
serializationLibrary: "jackson",
library : "spring-boot",
useBeanValidation : "true",
interfaceOnly : "true",
serializableModel : "true",
useTags : "true"
]
}


I've tried to some of the suggestions here too: https://stackoverflow.com/questions/56237650/use-java-time-instant-to-represent-datetime-instead-of-offsetdatetime

but either it resulted in compilation errors or the type would go from `LocalDateTime` to `Object` as opposed to `ZonedDAteTime`.

 

This is part of the swagger.yaml:

parameters:
- name: If-Modified-Since
in: header
description: If-Modified-Since
required: false
type: string
format: date-time

 

Thanks for any guidance!

No RepliesBe the first to reply