Привет, я использую генератор кода swagger (v3) для создания клиента службы в моем проекте Spring Boot, используя следующую конфигурацию в моем pom.xml
<configuration>
<language>java</language>
<inputSpec>specs.yaml</inputSpec>
<apiPackage>api</apiPackage>
<modelPackage>model</modelPackage>
<invokerPackage>invoker</invokerPackage>
<generateApis>true</generateApis>
<generateApiTests>false</generateApiTests>
<generateApiDocumentation>false</generateApiDocumentation>
<generateSupportingFiles>true</generateSupportingFiles>
<generateModelDocumentation>false</generateModelDocumentation>
<generateModelTests>false</generateModelTests>
<typeMappings>
<typeMapping>DateTime=LocalDateTime</typeMapping>
<typeMapping>Date=LocalDate</typeMapping>
</typeMappings>
<importMappings>
<importMapping>LocalDateTime=java.time.OffsetDateTime</importMapping>
<importMapping>LocalDate=java.time.LocalDate</importMapping>
</importMappings>
<configOptions>
<library>resttemplate</library>
<interfaceOnly>true</interfaceOnly>
<useTags>true</useTags>
<useBeanValidation>true</useBeanValidation>
<dateLibrary>java8</dateLibrary>
<java8>true</java8>
<sourceFolder>/<sourceFolder>
</configOptions>
</configuration>
Проблема, с которой я столкнулся, связана с выполнением запроса POST через клиент Api, сгенерированный с помощью вышеуказанной конфигурации. POST-запрос выглядит так
{
"name": "abc",
"type": "xyz",
"businessdata": {
"currency": "INR",
"startDate": [2020,5,28],
"endDate": [2021,12,25],
"code": "X123"
},
"seqnumber": "987"
}
Здесь startDate и endDate — это LocalDate в классе Java, и они также генерируются спецификациями Open Api. Здесь я не понимаю, почему он преобразуется в скобки [] и, следовательно, другая система, получающая этот запрос, выдает исключение с неверной датой.
Пожалуйста, дайте мне знать, как решить эту проблему, и объясните подробно, так как я новичок в генерировании кода swagger.
spring.jackson.serialization.write-dates-as-timestamps = false
в свойствах приложения. Обычно это заставляет spring (т.е. jackson) сериализовать дату как строку даты ISO. - person Martin Hauner   schedule 31.05.2020