Added [email protected] and remove engineering

On Fri, Oct 7, 2016 at 12:18 PM, Praminda Jayawardana <[email protected]>
wrote:

> Hi All,
>
> Madhawa is having following issue with his API Implementation.
>
> He has an API Model which contains another API Model (nested). In the
> swagger definition file generated for his web app implementation, annotated
> example values are available for outer API Model's properties. But
> annotated example values for nested API Model's  properties are not
> available.
>
> After an offline discussion with Madhawa we came into a conclusion that
> this might be an issue in swagger-core.
> Madhawa will raise an issue to swagger core team on this.
>
> Thanks,
> Praminda
>
> On Fri, Oct 7, 2016 at 10:46 AM, Madhawa Perera <[email protected]> wrote:
>
>> Hi,
>>
>> I'm trying to add example values to property object's in swagger
>> annotations.
>>
>> There I'm trying to create the following json schema with some example
>> values, on Swagger UI. In here, please note that "count" is an integer (I
>> was able to set an example value to that successfully) and "activities" is
>> an object. Both these are attributes inside the class "ListActivity".
>>
>> {
>> *"count": 1,*
>> "*activities*": [{
>> *"activityId": "string",*
>> "code": "string",
>> "createdTimeStamp": "string",
>> "activityStatus": [{
>> "deviceIdentifier": {
>> "id": "string",
>> "type": "string"
>> },
>> "responses": [{
>> "response": "string",
>> "receivedTimeStamp": "string"
>> }],
>> "updatedTimestamp": "string"
>> }]
>> }]
>> }
>>
>> In the above schema, what I wanted to do is instead of keeping "string"
>> as the values, I need to add example values. Like
>> *"activityId":"ACTIVITY_1"* instead of "activityId":"string" For that
>> I'm using following swagger annotations.
>>
>> "ListActivity" class is annotated with "@ApiModel" as below.
>>
>> @ApiModel(
>>             value = "List of activities",
>>             description = "This contains a set of activities that matches
>> a given criteria as a collection")
>> *public class ActivityList*
>>
>> Inside the "ListActivity" class I'm defining the model properties using
>> "@ApiModelProperty" annotation as below.
>>
>>  @ApiModelProperty(
>>             value = "Number of total resources.",
>>             *example = "1"*)
>>  @JsonProperty("count")
>>  private int *count*;
>>
>> @ApiModelProperty(
>>             value = "Returns the list of activities that match the offset
>> and limit parameter values that were specified.")
>> @JsonProperty("activities")
>> private List<Activity> *activities*;
>>
>> Since "Activity" is an object, I'm again creates a model inside the
>> "Activity" class. I'm annotating it as below.
>>
>> @ApiModel(
>>           value = "Activity",
>>          description = "An activity instance carries a unique identifier
>> that can be used to identify a particular operation instance uniquely")
>> *public class Activity*
>>
>> Inside "Activity" class, I'm again defining the model properties as
>> below.
>>
>> @ApiModelProperty(
>>             name = "*activityId*",
>>             value = "Activity identifier",
>>             required = true,
>>             *example = "ACTIVITY_1*")
>> @JsonProperty("activityId")
>> private String *activityId*;
>>
>> @ApiModelProperty(
>>             name = "code",
>>             value = "Activity code",
>>             required = true,
>>             example = "DEVICE_RING")
>> @JsonProperty("code")
>> private String code;
>>
>> After that I'm generating the swagger.json file. In the generated file,
>> example values were set to only to the attribute "count" as I gien in the
>> annotations. That means the "count" attribute's value is set to "1" as I
>> annotated. But the all the example values that I set inside the "Activity"
>> class does not come to the generated swagger.json file. Instead it only
>> shows "type": "string". Therefore in the swagger UI, i'm getting a json
>> schema as shown above (Please refer the json shown at the beginning of this
>> email) with only "count" is set to "1" and other keys are set with their
>> data types.
>>
>> The json generated has the following format.
>>
>>  "*List of activities*": {
>>          "type": "object",
>>          "properties": {
>>             "*count*": {
>>                "type": "integer",
>>                "format": "int32",
>>                "*example": 1*, *(example values are set here as given in
>> the annotations)*
>>                "description": "Number of total resources."
>>             },
>>
>>             "activities": {
>>                "type": "array",
>>                "description": "Returns the list of activities that match
>> the offset and limit parameter values that were specified.",
>>                "items": {
>>                   "$ref": "#/definitions/Activity"
>>                }
>>             }
>>          },
>>          "description": "This contains a set of activities that matches a
>> given criteria as a collection"
>> },
>>
>>
>> "*Activity*": {
>>          "type": "object",
>>          "properties": {
>>             "*activityId*": {
>>                "type": "string" *(example values are not set here though
>> I gave it in the annotations)*
>>             }
>>             "activityStatus": {
>>                "type": "array",
>>                "items": {
>>                   "$ref": "#/definitions/ActivityStatus"
>>                }
>>             }
>>          }
>>       },
>>
>> The example values I gave through the annotations are not set for the
>> property "*activityId*" inside the "Activity" class.
>>
>> Is there anyway that I can set these property (example) when I go inside
>> the beans. Appreciate your thoughts and suggestions on this.
>>
>> Thank you
>> Best Regards,
>> Madhawa
>>
>> --
>> Madhawa Perera
>> *Software Engineer*
>> Mobile : +94 (0) 773655496
>> <%2B94%20%280%29%20773%20451194>
>> [email protected]
>>
>>
>>
>
>
> --
> *Praminda Jayawardana*
> Software Engineer
> WSO2 Inc.; http://wso2.com
> Mobile : +94 (0) 716 590918
>



-- 
Madhawa Perera
*Software Engineer*
Mobile : +94 (0) 773655496
<%2B94%20%280%29%20773%20451194>
[email protected]
_______________________________________________
Dev mailing list
[email protected]
http://wso2.org/cgi-bin/mailman/listinfo/dev

Reply via email to