Thanks a lot ron. you are right it works out of the box by setting the responsecontainer to array. Thanks again.
On Tuesday, August 16, 2016 at 2:56:00 PM UTC-7, Ron wrote: > > I have no knowledge of jsonschema2pojo. > > > > Your Example.java is a pojo, not an array. > > Your API method signature in the java code is incomplete (there’s no > return type) so I can’t tell whether you return the array of the object, or > whether you use the Response class. > > If you just return the array of the object, it should work OOTB. > > If you return a Response, you can use the @ApiOperation to set the > responseContainer to be a List and that should describe it as an array. > > > > > > > > > > *From: *<[email protected] <javascript:>> on behalf of sdav < > [email protected] <javascript:>> > *Reply-To: *"[email protected] <javascript:>" < > [email protected] <javascript:>> > *Date: *Tuesday, 16 August 2016 at 14:49 > *To: *Swagger <[email protected] <javascript:>> > *Subject: *Re: issue with the model schema > > > > Hi Ron, > > > > Thanks for the reply . I am extremely sorry for posting the wrong schema. > This is the schema i have defined for the api. which than i converted in > to Jackson annotated pojo class using plugin provided by > http://www.jsonschema2pojo.org/ > > > > { > > "$schema": "http://json-schema.org/draft-04/schema#", > > "type": "array", > > "items": { > > "type": "object", > > "properties": { > > "id": { > > "type": "string" > > }, > > "storeitem": { > > "type": "string" > > }, > > "description": { > > "type": "string" > > } > > }, > > "required": [ > > "id", > > "storeitem", > > "description" > > ] > > } > > } > > > > I checked my swagger.json file and it shows > > "storeitem":{ > > "type":"object", > > "properties": > > { > > "id":{ > > "type":"string" > > }, > > "caption":{ > > "type":"string"}, > > "storeitem":{ > > "type":"string"} > > }} > > > > so its clear that swagger UI is seeing it as an object but i want that it > to be an array type. The pojo class generated by > http://www.jsonschema2pojo.org/ is below, could it be that the parsing of > array-type to jackson annotated pojo class is not correct?. In that case is > there any better way i could present my model to the UI instead of > converting from json schema to pojo and than pointing it. > > > > -----------------------------------com.example.Example.java > ----------------------------------- > > *package* com.example; > > *import* java.util.HashMap; > *import* java.util.Map; > *import* javax.annotation.Generated; > *import* com.fasterxml.jackson.annotation.JsonAnyGetter; > *import* com.fasterxml.jackson.annotation.JsonAnySetter; > *import* com.fasterxml.jackson.annotation.JsonIgnore; > *import* com.fasterxml.jackson.annotation.JsonInclude; > *import* com.fasterxml.jackson.annotation.JsonProperty; > *import* com.fasterxml.jackson.annotation.JsonPropertyOrder; > > @JsonInclude(JsonInclude.Include.NON_NULL) > @Generated("org.jsonschema2pojo") > @JsonPropertyOrder({ > "id", > "storeitem", > "description" > }) > *public* *class* Example { > > /** > * > * (Required) > * > */ > @JsonProperty("id") > *private* String id; > /** > * > * (Required) > * > */ > @JsonProperty("storeitem") > *private* String storeitem; > /** > * > * (Required) > * > */ > @JsonProperty("description") > *private* String description; > @JsonIgnore > *private* Map<String, Object> additionalProperties = *new* HashMap<String > , Object>(); > > /** > * > * (Required) > * > * @return > * The id > */ > @JsonProperty("id") > *public* String getId() { > *return* id; > } > > /** > * > * (Required) > * > * @param id > * The id > */ > @JsonProperty("id") > *public* *void* setId(String id) { > *this*.id = id; > } > > /** > * > * (Required) > * > * @return > * The storeitem > */ > @JsonProperty("storeitem") > *public* String getStoreitem() { > *return* storeitem; > } > > /** > * > * (Required) > * > * @param storeitem > * The storeitem > */ > @JsonProperty("storeitem") > *public* *void* setStoreitem(String storeitem) { > *this*.storeitem = storeitem; > } > > /** > * > * (Required) > * > * @return > * The description > */ > @JsonProperty("description") > *public* String getDescription() { > *return* description; > } > > /** > * > * (Required) > * > * @param description > * The description > */ > @JsonProperty("description") > *public* *void* setDescription(String description) { > *this*.description = description; > } > > @JsonAnyGetter > *public* Map<String, Object> getAdditionalProperties() { > *return* *this*.additionalProperties; > } > > @JsonAnySetter > *public* *void* setAdditionalProperty(String name, Object value) { > *this*.additionalProperties.put(name, value); > } > > } > > > > > On Tuesday, August 16, 2016 at 1:16:21 PM UTC-7, Ron wrote: > > Why would you expect to see an array of the model when you describe only > the model? > > > > > > > > *From: *<[email protected]> on behalf of sdav < > [email protected]> > *Reply-To: *"[email protected]" < > [email protected]> > *Date: *Tuesday, 16 August 2016 at 12:05 > *To: *Swagger <[email protected]> > *Subject: *issue with the model schema > > > > Hi > > > > I have up running project and decided to integrate swagger. > > > > I am using jersey 2 . > > > > so, i got an api response that i converted in to jsonschema and generated > a pojo class. using something like below i am able to show the model schema > of the response > > > > > > @GET > > @ApiOperation(value="Retrives all items" , response = > /path/to/.class/in/the jar.class ) > > @Produces({MediaType.APPLICATION_JSON}) > > public getStoreitems(......) > > Below is the schema of my response from api and along with the generated > POJO that i am using to point in the > @Apioperation(@ApiOperation(value="Retrives all items" , response = > /path/to/.class/in/the jar.class ) > > { > > "$schema": "http://json-schema.org/draft-04/schema# > <http://json-schema.org/draft-04/schema>", > > "type": "object", > > "properties": { > > "id": { > > "type": "string" > > }, > > "storeitem": { > > "type": "string" > > }, > > "description": { > > "type": "string" > > } > > }, > > "required": [ > > "id", > > "storeitem", > > "description" > > ] > > } > > > > pojo class > > > *import* java.util.HashMap; > *import* java.util.Map; > *import* javax.annotation.Generated; > *import* com.fasterxml.jackson.annotation.JsonAnyGetter; > *import* com.fasterxml.jackson.annotation.JsonAnySetter; > *import* com.fasterxml.jackson.annotation.JsonIgnore; > *import* com.fasterxml.jackson.annotation.JsonInclude; > *import* com.fasterxml.jackson.annotation.JsonProperty; > *import* com.fasterxml.jackson.annotation.JsonPropertyOrder; > > @JsonInclude(JsonInclude.Include.NON_NULL) > @Generated("org.jsonschema2pojo") > @JsonPropertyOrder({ > "id", > "storeitem", > "description" > }) > *public* *class* Example { > > /** > * > * (Required) > * > */ > @JsonProperty("id") > *private* String id; > /** > * > * (Required) > * > */ > @JsonProperty("storeitem") > *private* String storeitem; > /** > * > * (Required) > * > */ > @JsonProperty("description") > *private* String description; > @JsonIgnore > *private* Map<String, Object> additionalProperties = *new* HashMap<String, > Object>(); > > /** > * > * (Required) > * > * @return > * The id > */ > @JsonProperty("id") > *public* String getId() { > *return* id; > } > > /** > * > * (Required) > * > * @param id > * The id > */ > @JsonProperty("id") > *public* *void* setId(String id) { > *this*.id = id; > } > > /** > * > * (Required) > * > * @return > * The storeitem > */ > @JsonProperty("storeitem") > *public* String getStoreitem() { > *return* storeitem; > } > > /** > * > * (Required) > * > * @param storeitem > * The storeitem > */ > @JsonProperty("storeitem") > *public* *void* setStoreitem(String storeitem) { > *this*.storeitem = storeitem; > } > > /** > * > * (Required) > * > * @return > * The description > */ > @JsonProperty("description") > *public* String getDescription() { > *return* description; > } > > /** > * > * (Required) > * > * @param description > * The description > */ > @JsonProperty("description") > *public* *void* setDescription(String description) { > *this*.description = description; > } > > @JsonAnyGetter > *public* Map<String, Object> getAdditionalProperties() { > *return* *this*.additionalProperties; > } > > @JsonAnySetter > *public* *void* setAdditionalProperty(String name, Object value) { > *this*.additionalProperties.put(name, value); > } > > } > > > > on the UI Model scheam, i am expecting something like this. > > [ > > { > > "id": "string", > > "storeitem": "string", > > "description": "string" > > } > > ] > > but what i get > { > > "id": > > "string", > > "storeitem": > > "string", > > "description": > > "string" > > } > > > > Thanks > > devin > > -- > You received this message because you are subscribed to the Google Groups > "Swagger" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > For more options, visit https://groups.google.com/d/optout. > > -- > You received this message because you are subscribed to the Google Groups > "Swagger" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected] <javascript:>. > For more options, visit https://groups.google.com/d/optout. > -- You received this message because you are subscribed to the Google Groups "Swagger" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/d/optout.
