<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    <p>Hi Edison,</p>
    <p>Sorry for the delay.</p>
    Please see inline...<br>
    <br>
    Cheers,<br>
    Gilles<br>
    <br>
    <div class="moz-cite-prefix">On 07/09/18 12:03, Edison Xiang wrote:<br>
    </div>
    <blockquote type="cite"
cite="mid:CAHNwXvM9V=-p9fCa12rq9p0jbG27dzu8-6a1aZbqX6xiXcRGtA@mail.gmail.com">
      <div dir="ltr">Hey gilles,
        <div><br>
        </div>
        <div>Thanks your introduction for GraphQL and Relay.</div>
        <span class="gmail-im" style="color:rgb(80,0,80)">
          <div><br>
          </div>
          <div>> GraphQL and OpenAPI have a different feature scope
            and both have pros and cons.   </div>
          <div><br>
          </div>
        </span>
        <div>I totally agree with you. They can work together.</div>
        <div>Right now, I think we have no more work to adapt OpenStack
          APIs for Open API.</div>
        <div>Firstly we could sort out Open API schemas base on the
          current OpenStack APIs.</div>
        <div>and then we can discuss how to use it.</div>
      </div>
    </blockquote>
    <br>
    I think a big question is going to be about the effort required to
    bring OpenStack API to be Open API v3.0 compliant.<br>
    This is challenging because the various projects involved and the
    need to validate a new solution across all the projects.<br>
    The best approach is likely to first demonstrate a new solution is
    viable and then eventually bring it to be accepted globally. <br>
    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).<br>
     <br>
    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.<br>
    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 benefits<br>
    <br>
    And it will also helps compare solutions (Open API, GraphQL). <br>
    <br>
    So, what do you think about an Open API proof of concept with
    Neutron?<br>
    <br>
    <br>
    <blockquote type="cite"
cite="mid:CAHNwXvM9V=-p9fCa12rq9p0jbG27dzu8-6a1aZbqX6xiXcRGtA@mail.gmail.com">
      <div dir="ltr">
        <div>About the micro version, we discuss with your team mate
          dmitry in another email [1]</div>
      </div>
    </blockquote>
    <br>
    Obviously micro version is a point of contention.<br>
    My take on this is because consuming them has been proven harder
    than developing them.<br>
    The beauty of GraphQL is that there is no need to deal with version
    at all.<br>
    New fields appears when needed and old one are marked deprecated. <br>
    <br>
    <br>
    <blockquote type="cite"
cite="mid:CAHNwXvM9V=-p9fCa12rq9p0jbG27dzu8-6a1aZbqX6xiXcRGtA@mail.gmail.com">
      <div dir="ltr">
        <div><br>
        </div>
        <div>[1] <a
href="http://lists.openstack.org/pipermail/openstack-dev/2018-September/134202.html"
            target="_blank" moz-do-not-send="true">http://lists.openstack.org/pipermail/openstack-dev/2018-September/134202.html</a></div>
        <div>
          <div><br>
          </div>
          <div>Best Regards,</div>
          <div>Edison Xiang </div>
        </div>
      </div>
      <br>
      <div class="gmail_quote">
        <div dir="ltr">On Tue, Sep 4, 2018 at 8:37 AM Gilles Dubreuil
          <<a href="mailto:gdubreui@redhat.com"
            moz-do-not-send="true">gdubreui@redhat.com</a>> wrote:<br>
        </div>
        <blockquote class="gmail_quote" style="margin:0 0 0
          .8ex;border-left:1px #ccc solid;padding-left:1ex">
          <div text="#000000" bgcolor="#FFFFFF">
            <p><br>
            </p>
            <br>
            <div class="m_-201561441577430154moz-cite-prefix">On
              30/08/18 13:56, Edison Xiang wrote:<br>
            </div>
            <blockquote type="cite">
              <div dir="ltr">
                <div dir="ltr">Hi Ed Leafe,</div>
                <div dir="ltr"><br>
                </div>
                <div>Thanks your reply.</div>
                <div>Open API defines a standard interface description
                  for REST APIs.</div>
                <div>Open API 3.0 can make a description(schema) for
                  current OpenStack REST API.</div>
                <div>It will not change current OpenStack API.</div>
                <div>I am not a GraphQL expert. I look up something
                  about GraphQL.</div>
                <div>In my understanding, GraphQL will get current
                  OpenAPI together and provide another APIs based on
                  Relay,</div>
              </div>
            </blockquote>
            <br>
            Not sure what you mean here, could you please develop?<br>
            <br>
            <br>
            <blockquote type="cite">
              <div dir="ltr">
                <div>and Open API is used to describe REST APIs and
                  GraphQL is used to describe Relay APIs.</div>
              </div>
            </blockquote>
            <br>
            There is no such thing as "Relay APIs".<br>
            GraphQL povides a de-facto API Schema and Relay provides
            extensions on top to facilitate re-fetching, paging and
            more. <br>
            GraphQL and OpenAPI have a different feature scope and both
            have pros and cons.  <br>
            GraphQL is delivering API without using REST verbs as all
            requests are undone using POST and its data.<br>
            Beyond that what would be great (and it will ultimately
            come) is to have both of them working together.<br>
            <br>
            The idea of the GraphQL Proof of Concept is see what it can
            bring and at what cost such as effort and trade-offs.<br>
            And to compare this against the effort to adapt OpenStack
            APIs to use Open API.<br>
            <br>
            BTW what's the status of Open API 3.0 in regards of
            Microversion?<br>
            <br>
            Regards,<br>
            Gilles<br>
            <br>
            <blockquote type="cite">
              <div dir="ltr">
                <div><br>
                </div>
                <div>Best Regards,</div>
                <div>Edison Xiang</div>
              </div>
              <br>
              <div class="gmail_quote">
                <div dir="ltr">On Wed, Aug 29, 2018 at 9:33 PM Ed Leafe
                  <<a href="mailto:ed@leafe.com" target="_blank"
                    moz-do-not-send="true">ed@leafe.com</a>> wrote:<br>
                </div>
                <blockquote class="gmail_quote" style="margin:0 0 0
                  .8ex;border-left:1px #ccc solid;padding-left:1ex">On
                  Aug 29, 2018, at 1:36 AM, Edison Xiang <<a
                    href="mailto:xiang.edison@gmail.com" target="_blank"
                    moz-do-not-send="true">xiang.edison@gmail.com</a>>
                  wrote:<br>
                  > <br>
                  > As we know, Open API 3.0 was released on July,
                  2017, it is about one year ago.<br>
                  > Open API 3.0 support some new features like
                  anyof, oneof and allof than Open API 2.0(Swagger 2.0).<br>
                  > Now OpenStack projects do not support Open API.<br>
                  > Also I found some old emails in the Mail List
                  about supporting Open API 2.0 in OpenStack.<br>
                  <br>
                  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.<br>
                  <br>
                  <br>
                  -- Ed Leafe<br>
                  <br>
                  <br>
                  <br>
                  <br>
                  <br>
                  <br>
__________________________________________________________________________<br>
                  OpenStack Development Mailing List (not for usage
                  questions)<br>
                  Unsubscribe: <a
href="http://OpenStack-dev-request@lists.openstack.org?subject:unsubscribe"
                    rel="noreferrer" target="_blank"
                    moz-do-not-send="true">OpenStack-dev-request@lists.openstack.org?subject:unsubscribe</a><br>
                  <a
                    href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev"
                    rel="noreferrer" target="_blank"
                    moz-do-not-send="true">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev</a><br>
                </blockquote>
              </div>
              <br>
              <fieldset
                class="m_-201561441577430154mimeAttachmentHeader"></fieldset>
              <br>
              <pre>__________________________________________________________________________
OpenStack Development Mailing List (not for usage questions)
Unsubscribe: <a class="m_-201561441577430154moz-txt-link-abbreviated" href="mailto:OpenStack-dev-request@lists.openstack.org?subject:unsubscribe" target="_blank" moz-do-not-send="true">OpenStack-dev-request@lists.openstack.org?subject:unsubscribe</a>
<a class="m_-201561441577430154moz-txt-link-freetext" href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev" target="_blank" moz-do-not-send="true">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev</a>
</pre>
            </blockquote>
            <br>
            <pre class="m_-201561441577430154moz-signature" cols="72">-- 
Gilles Dubreuil
Senior Software Engineer - Red Hat - Openstack DFG Integration
Email: <a class="m_-201561441577430154moz-txt-link-abbreviated" href="mailto:gilles@redhat.com" target="_blank" moz-do-not-send="true">gilles@redhat.com</a>
GitHub/IRC: gildub
Mobile: +61 400 894 219 

</pre>
          </div>
        </blockquote>
      </div>
    </blockquote>
    <br>
    <pre class="moz-signature" cols="72">-- 
Gilles Dubreuil
Senior Software Engineer - Red Hat - Openstack DFG Integration
Email: <a class="moz-txt-link-abbreviated" href="mailto:gilles@redhat.com">gilles@redhat.com</a>
GitHub/IRC: gildub
Mobile: +61 400 894 219 

</pre>
  </body>
</html>