Hi Thilini, Understood. Thanks for the detailed explanation.
And +1 for supporting requestBody definitions in APIM 2.2.0 UI as you suggested. Thank you! On Tue, Jan 16, 2018 at 11:36 AM, Thilini Shanika <[email protected]> wrote: > Hi Malintha, > > From what I understood from above, OpenAPI 3.0.0 is supporting specifying > different response/request schemas based on the media type. In swagger 2.0 > we could define only one schema for request/response which is common for > the specified produces and consumes elements under resources section. Is my > understanding correct? > > Yes, we can define different schemas of responses and requests based on > the content type. > > eg: Responses > > responses: > '200': > description: OK > content: > application/xml: > schema: > type: array > items: > type: string > application/json: > schema: > type: array > items: > type: string > > > > eg: RequestBody > > requestBody: > content: > application/json: > schema: > type: object > properties: > payload: > type: string > application/xml: > schema: > type: object > properties: > payload: > type: string > description: Request Body > > > If that so, if we are changing the UI based on swagger version, do we also > support specifying different response/request schemas based on the media > type? > > Since we have been providing the functionality of defining body and > formData parameters in APIM 2.1.0, we have to at least support requestBody > definitions in APIM 2.2.0 UI. Since we haven't supported responses > definitions for Swagger 2.0, we can omit this functionality for OpenAPI > 3.0.0 also, but if we are planning to add this as a new improvement, we > have to implement this for both versions. Or else, we can allow the users > to continue with complex definitions via embedded Swagger editor. > > > > > > On Tue, Jan 16, 2018 at 11:06 AM, Malintha Amarasinghe <[email protected] > > wrote: > >> Hi Thilini, >> >> From what I understood from above, OpenAPI 3.0.0 is supporting >> specifying different response/request schemas based on the media type. In >> swagger 2.0 we could define only one schema for request/response which is >> common for the specified produces and consumes elements under resources >> section. Is my understanding correct? >> >> If that so, if we are changing the UI based on swagger version, do we >> also support specifying different response/request schemas based on the >> media type? >> >> Thanks! >> Malintha >> >> On Tue, Jan 16, 2018 at 10:54 AM, Thilini Shanika <[email protected]> >> wrote: >> >>> Hi All, >>> >>> We are currently in the process of implementing Open API 3.0 support in >>> API Manager and as per the design discussions, APIM 2.2.0 will be >>> supporting both OpenAPI 3.0.0 and Swagger 2.0 specs. A resource definition >>> of Open API 3.0.0 has some significant differences compared to a resource >>> definition in Swagger 2.0. Following are some of the major differences of >>> Swagger 2.0 and OpenAPI 3.0.0 spec based API resource definition. >>> >>> - '*body*' and '*formData*' parameter types are not available in >>> OpenAPI 3.0.0. Instead, the *requestBody* element has been >>> introduced. >>> - According to Swagger 2.0 spec, one can define a list of MIME types >>> which the API resource can produce and consume. These configs are >>> defines under *consumes *and *produces *elements of the API >>> resource. But this config is no longer available in OpenAPI 3.0.0. >>> Instead, >>> MIME types are defined under *requestBody *and *response *elements. >>> >>> OpenAPI 3.0.0 based resource definition is given below >>> >>> paths: >>> /testpath: >>> get: >>> responses: >>> '200': >>> description: OK >>> parameters: >>> - name: id >>> in: query >>> required: false >>> schema: >>> type: string >>> post: >>> responses: >>> '200': >>> description: OK >>> content: >>> *application/xml*: >>> schema: >>> type: array >>> items: >>> type: string >>> *requestBody*: >>> content: >>> *application/json:* >>> schema: >>> type: object >>> properties: >>> payload: >>> type: string >>> description: Request Body >>> >>> If we are implementing support for OpenAPI 3.0.0, we have to do some >>> changes to resource definition UI. (Has to remove consumes: and produces: >>> fields, has to remove body and formData from parameter types. Instead, >>> requestBody configuration functionality should be added). Since we have to >>> support both versions, we have to change the resource definition UI >>> rendering based on the swagger version. Shall we render a different UI with >>> above changes for OpenAPI 3.0.0 based API definitions? WDYT? >>> >>> >>> >>> -- >>> Thilini Shanika >>> Senior Software Engineer >>> WSO2, Inc.; http://wso2.com >>> 20, Palmgrove Avenue, Colombo 3 >>> >>> E-mail: [email protected] >>> o >>> >> >> >> >> -- >> Malintha Amarasinghe >> *WSO2, Inc. - lean | enterprise | middleware* >> http://wso2.com/ >> >> Mobile : +94 712383306 <+94%2071%20238%203306> >> > > > > -- > Thilini Shanika > Senior Software Engineer > WSO2, Inc.; http://wso2.com > 20, Palmgrove Avenue, Colombo 3 > > E-mail: [email protected] > > -- Malintha Amarasinghe *WSO2, Inc. - lean | enterprise | middleware* http://wso2.com/ Mobile : +94 712383306
_______________________________________________ Dev mailing list [email protected] http://wso2.org/cgi-bin/mailman/listinfo/dev
