Created by: ackintosh
PR checklist
-
Read the contribution guidelines. -
Ran the shell script under ./bin/
to update Petstore sample so that CIs can verify the change. (For instance, only need to run./bin/{LANG}-petstore.sh
and./bin/security/{LANG}-petstore.sh
if updating the {LANG} (e.g. php, ruby, python, etc) code generator or {LANG} client's mustache templates). Windows batch files can be found in.\bin\windows\
. -
Filed the PR against the correct branch: master
,. Default:3.4.x
,4.0.x
master
. -
Copied the technical committee to review the pull request if your PR is targeting a particular programming language.
Description of the PR
This PR fixes #1733 (closed)
Sample spec
Sample spec
openapi: 3.0.0
info:
description: >-
This spec is mainly for testing Petstore server and contains fake endpoints,
models. Please do not use this for any other purpose. Special characters: "
\
version: 1.0.0
title: OpenAPI Petstore
license:
name: Apache-2.0
url: 'http://www.apache.org/licenses/LICENSE-2.0.html'
paths:
/foo:
get:
parameters:
- $ref: '#/components/parameters/TestQuery'
responses:
default:
description: response
content:
application/json:
schema:
$ref: '#/components/schemas/Foo'
servers:
- url: http://localhost:8080/
description: The local server
components:
parameters:
TestQuery:
name: testQuery
description: test query
in: query
schema:
$ref: '#/components/schemas/Bar'
schemas:
Foo:
type: object
properties:
bar:
$ref: '#/components/schemas/Bar'
Bar:
type: string
format: uuid
Sample code using a generated codes from the spec
fun main(args: Array<String>) {
val api = DefaultApi()
println(api.fooGet(UUID.randomUUID()))
}
Before
Exception in thread "main" java.lang.IllegalArgumentException: Platform class java.util.UUID annotated [] requires explicit JsonAdapter to be registered
at com.squareup.moshi.ClassJsonAdapter$1.create(ClassJsonAdapter.java:51)
at com.squareup.moshi.Moshi.adapter(Moshi.java:100)
at com.squareup.moshi.KotlinJsonAdapterFactory.create(KotlinJsonAdapter.kt:184)
at com.squareup.moshi.Moshi.adapter(Moshi.java:100)
at com.squareup.moshi.Moshi.adapter(Moshi.java:62)
at org.openapitools.client.apis.DefaultApi.fooGet(DefaultApi.kt:173)
at org.openapitools.client.MainKt.main(Main.kt:8)
After
Foo(bar=ce5b8513-fd5b-4b25-98e2-c40dc1b3c7c4)