[openstack-dev] [api] Open API 3.0 for OpenStack API

Gilles Dubreuil gdubreui at redhat.com
Fri Oct 5 06:15:26 UTC 2018

Hi Edison,

Sorry for the delay.

Please see inline...


On 07/09/18 12:03, Edison Xiang wrote:
> Hey gilles,
> Thanks your introduction for GraphQL and Relay.
> > GraphQL and OpenAPI have a different feature scope and both have pros and cons.
> I totally agree with you. They can work together.
> Right now, I think we have no more work to adapt OpenStack APIs for 
> Open API.
> Firstly we could sort out Open API schemas base on the current 
> OpenStack APIs.
> and then we can discuss how to use it.

I think a big question is going to be about the effort required to bring 
OpenStack API to be Open API v3.0 compliant.
This is challenging because the various projects involved and the need 
to validate a new solution across all the projects.
The best approach is likely to first demonstrate a new solution is 
viable and then eventually bring it to be accepted globally.
Also because we don't have unlimited resources, I doubt we're going to 
be able to bring both Open API and GraphQL to the table(s).

There no doubts how OpenStack APIs can benefit from features such as 
schema definitions, self documentation and better performance especially 
if they are built-in or derived from a standard.
Meanwhile a practical example shows those features in action (for the 
skeptical) but also demonstrate how to do it which clarify the effort 
involved along with pros and cons.I want to make clear that I'm not 
against OpenAPI, I was actually keen to get it on board because of the 

And it will also helps compare solutions (Open API, GraphQL).

So, what do you think about an Open API proof of concept with Neutron?

> About the micro version, we discuss with your team mate dmitry in 
> another email [1]

Obviously micro version is a point of contention.
My take on this is because consuming them has been proven harder than 
developing them.
The beauty of GraphQL is that there is no need to deal with version at all.
New fields appears when needed and old one are marked deprecated.

> [1] 
> http://lists.openstack.org/pipermail/openstack-dev/2018-September/134202.html
> Best Regards,
> Edison Xiang
> On Tue, Sep 4, 2018 at 8:37 AM Gilles Dubreuil <gdubreui at redhat.com 
> <mailto:gdubreui at redhat.com>> wrote:
>     On 30/08/18 13:56, Edison Xiang wrote:
>>     Hi Ed Leafe,
>>     Thanks your reply.
>>     Open API defines a standard interface description for REST APIs.
>>     Open API 3.0 can make a description(schema) for current OpenStack
>>     REST API.
>>     It will not change current OpenStack API.
>>     I am not a GraphQL expert. I look up something about GraphQL.
>>     In my understanding, GraphQL will get current OpenAPI together
>>     and provide another APIs based on Relay,
>     Not sure what you mean here, could you please develop?
>>     and Open API is used to describe REST APIs and GraphQL is used to
>>     describe Relay APIs.
>     There is no such thing as "Relay APIs".
>     GraphQL povides a de-facto API Schema and Relay provides
>     extensions on top to facilitate re-fetching, paging and more.
>     GraphQL and OpenAPI have a different feature scope and both have
>     pros and cons.
>     GraphQL is delivering API without using REST verbs as all requests
>     are undone using POST and its data.
>     Beyond that what would be great (and it will ultimately come) is
>     to have both of them working together.
>     The idea of the GraphQL Proof of Concept is see what it can bring
>     and at what cost such as effort and trade-offs.
>     And to compare this against the effort to adapt OpenStack APIs to
>     use Open API.
>     BTW what's the status of Open API 3.0 in regards of Microversion?
>     Regards,
>     Gilles
>>     Best Regards,
>>     Edison Xiang
>>     On Wed, Aug 29, 2018 at 9:33 PM Ed Leafe <ed at leafe.com
>>     <mailto:ed at leafe.com>> wrote:
>>         On Aug 29, 2018, at 1:36 AM, Edison Xiang
>>         <xiang.edison at gmail.com <mailto:xiang.edison at gmail.com>> wrote:
>>         >
>>         > As we know, Open API 3.0 was released on July, 2017, it is
>>         about one year ago.
>>         > Open API 3.0 support some new features like anyof, oneof
>>         and allof than Open API 2.0(Swagger 2.0).
>>         > Now OpenStack projects do not support Open API.
>>         > Also I found some old emails in the Mail List about
>>         supporting Open API 2.0 in OpenStack.
>>         There is currently an effort by some developers to
>>         investigate the possibility of using GraphQL with OpenStack
>>         APIs. What would Open API 3.0 provide that GraphQL would not?
>>         I’m asking because I don’t know enough about Open API to
>>         compare them.
>>         -- Ed Leafe
>>         __________________________________________________________________________
>>         OpenStack Development Mailing List (not for usage questions)
>>         Unsubscribe:
>>         OpenStack-dev-request at lists.openstack.org?subject:unsubscribe
>>         <http://OpenStack-dev-request@lists.openstack.org?subject:unsubscribe>
>>         http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
>>     __________________________________________________________________________
>>     OpenStack Development Mailing List (not for usage questions)
>>     Unsubscribe:OpenStack-dev-request at lists.openstack.org?subject:unsubscribe
>>     <mailto:OpenStack-dev-request at lists.openstack.org?subject:unsubscribe>
>>     http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
>     -- 
>     Gilles Dubreuil
>     Senior Software Engineer - Red Hat - Openstack DFG Integration
>     Email:gilles at redhat.com <mailto:gilles at redhat.com>
>     GitHub/IRC: gildub
>     Mobile: +61 400 894 219

Gilles Dubreuil
Senior Software Engineer - Red Hat - Openstack DFG Integration
Email: gilles at redhat.com
GitHub/IRC: gildub
Mobile: +61 400 894 219

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openstack.org/pipermail/openstack-dev/attachments/20181005/8c22ebf4/attachment.html>

More information about the OpenStack-dev mailing list