<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    <p>Hi all,</p>
    <p>I finally had some time to play with these and I do have some
      concerns.  First i'd say that Dennis' work to get the swagger
      generation working with href's seemed to work really well!  I did
      find one small bug(1) that may be isolated to the ruby bindings,
      but seems like a serialization issue potentially.<br>
    </p>
    <p>However I do have some concerns.  According to Dennis, upstream
      swagger does not seem open to accepting this change that utilizes
      href's in its api calls.  This leaves us all in a bit of a pickle
      as:</p>
    <p>1) pulp seems to suggest to use hrefs (and may remove ids in the
      future?) <br>
      2) swagger does not (and will never?) support referencing objects
      by href's in the future</p>
    <p>Thus for katello to use href's, we would need to use an altered
      version of swagger that someone maintains.  While the patch is
      small, I'm not sure either of our teams are super well positioned
      to maintain something like this long term.   <br>
    </p>
    <p>It might make sense for the pulp team to maintain this, as the
      requirements are being suggested by the pulp team, however it
      doesn't seem like ya'll will actually be using any generated
      bindings which doesn't seem like a good dependency.  <br>
    </p>
    <p>It might make sense for the Katello team but I would say we're
      only using hrefs because they seem to be what was recommended.  In
      both cases its a different technology (java) with a different
      built system.  I could see 3 years from now some issue coming up
      that requires us to update to a newer swagger version and untangle
      this when no one that was involved in this decision was around.  I
      don't really see either of our teams maintaining a fork of the
      swagger code generation as a good long term solution.<br>
    </p>
    <p>May I suggest that we either:</p>
    <p> a) Work harder to get the code change upstream</p>
    <p>or if that does not seem to be going well<br>
    </p>
    <p> b) commit to continue responding with ids (in addition to hrefs)
      in all object responses</p>
    <p>(1)  <a class="moz-txt-link-freetext" href="https://pulp.plan.io/issues/3843">https://pulp.plan.io/issues/3843</a><br>
    </p>
    <br>
    <div class="moz-cite-prefix">On 05/17/2018 06:26 PM, Dennis Kliban
      wrote:<br>
    </div>
    <blockquote type="cite"
cite="mid:CAPmNiupxW+cAmnTDEkbiXoFZciyUJRAZKUW3gryjCkms41bwHg@mail.gmail.com">
      <div dir="ltr">I have been able modify the default behavior of
        swagger-codegen to produce bindings that use relative URLs to
        identify resources. The required changes can be seen here[0].
        The compiled jar is available for download here[1]. <br>
        <br>
        The following command can be used to generate python bindings.
        Replace 'python' with 'ruby' and you'll get ruby bindings. The
        json file is the API schema returned by the Pulp server at <a
          class="external"
          href="http://localhost:8000/api/v3/docs/api.json"
          moz-do-not-send="true">http://localhost:8000/api/v3/docs/api.json</a>.
        <br>
        <br>
        java -jar ./swagger-codegen-cli.jar generate -i
        ~/Downloads/pulp3-api.json -l python -o some_directory_name<br>
        <br>
        [0] <a
href="https://github.com/dkliban/swagger-codegen/commit/e31e96769864b73b06bd99f5e20e4720562539b9"
          moz-do-not-send="true">https://github.com/dkliban/swagger-codegen/commit/e31e96769864b73b06bd99f5e20e4720562539b9</a><br>
        [1] <a
href="https://repos.fedorapeople.org/pulp/pulp/swagger/swagger-codegen-cli.jar"
          moz-do-not-send="true">https://repos.fedorapeople.org/pulp/pulp/swagger/swagger-codegen-cli.jar</a><br>
      </div>
      <div class="gmail_extra"><br>
        <div class="gmail_quote">On Tue, May 1, 2018 at 11:18 AM, David
          Davis <span dir="ltr"><<a
              href="mailto:daviddavis@redhat.com" target="_blank"
              moz-do-not-send="true">daviddavis@redhat.com</a>></span>
          wrote:<br>
          <blockquote class="gmail_quote" style="margin:0 0 0
            .8ex;border-left:1px #ccc solid;padding-left:1ex">
            <div dir="ltr">We’ve exposed IDs and I think the next goal
              will be to somehow let Katello use these IDs. I’ve opened
              a new story to solicit feedback on how this’ll work:
              <div><br>
              </div>
              <div><a href="https://pulp.plan.io/issues/3636"
                  target="_blank" moz-do-not-send="true">https://pulp.plan.io/issues/<wbr>3636</a><span
                  class="HOEnZb"><font color="#888888"><br>
                  </font></span></div>
            </div>
            <div class="gmail_extra"><span class="HOEnZb"><font
                  color="#888888"><br clear="all">
                  <div>
                    <div class="m_-4971748094304000821gmail_signature"
                      data-smartmail="gmail_signature">
                      <div dir="ltr">
                        <div>
                          <div dir="ltr">
                            <div>
                              <div dir="ltr">
                                <div><br>
                                </div>
                                <div>David<br>
                                </div>
                              </div>
                            </div>
                          </div>
                        </div>
                      </div>
                    </div>
                  </div>
                  <br>
                </font></span>
              <div class="gmail_quote">
                <div>
                  <div class="h5">On Tue, May 1, 2018 at 9:14 AM, Brian
                    Bouterse <span dir="ltr"><<a
                        href="mailto:bbouters@redhat.com"
                        target="_blank" moz-do-not-send="true">bbouters@redhat.com</a>></span>
                    wrote:<br>
                  </div>
                </div>
                <blockquote class="gmail_quote" style="margin:0 0 0
                  .8ex;border-left:1px #ccc solid;padding-left:1ex">
                  <div>
                    <div class="h5">
                      <div dir="ltr">
                        <div class="gmail_extra"><br>
                          <div class="gmail_quote"><span>On Tue, May 1,
                              2018 at 7:59 AM, Bryan Kearney <span
                                dir="ltr"><<a
                                  href="mailto:bkearney@redhat.com"
                                  target="_blank" moz-do-not-send="true">bkearney@redhat.com</a>></span>
                              wrote:<br>
                              <blockquote class="gmail_quote"
                                style="margin:0 0 0 .8ex;border-left:1px
                                #ccc solid;padding-left:1ex"><span>On
                                  04/30/2018 04:08 PM, Brian Bouterse
                                  wrote:<br>
                                  > @asmacdo, checking in on the why
                                  is great. I want to try to articulate<br>
                                  > the benefits as I see them. Other
                                  perspectives and discussion are
                                  welcome.<br>
                                  > <br>
                                  > The design of using URLs for
                                  referring things is a design whose
                                  goal is<br>
                                  > to minimize complexity as the #
                                  of resources grows. The Internet is a<br>
                                  > useful analogy here. When someone
                                  wants to tell me how to find something<br>
                                  > on Instagram, if the article's
                                  name is 'cat_pic432642' and that's all
                                  I<br>
                                  > know, I'm going to have a hard
                                  time figuring out the actual URL to
                                  ask<br>
                                  > Instagram's servers for, e.g.
                                  /thepostsarehere/cat_pic432642<wbr>.
                                  Even if I<br>
                                  > did know how Instram's url space
                                  was laid out, I have to think about it<br>
                                  > different from all other web
                                  services I interact with; now they're
                                  all<br>
                                  > different. This is the power of
                                  the URL itself. All clients and all<br>
                                  > servers can use the uniform
                                  resource locator to refer to things. I
                                  think<br>
                                  > this was the main contribution
                                  from Tim Berners-Lee that allowed him
                                  to<br>
                                  > implement HTTP which has URIs at
                                  its heart.<br>
                                  <br>
                                </span>But, to Austins Point, if folks
                                are going to interact with Pulp either<br>
                                from the cli or from Go|rust|python
                                libraries, they will not see the<br>
                                urls. In your analogy, you would most
                                likely google cat_pic432642  and<br>
                                never know the url you are going to.<br>
                              </blockquote>
                            </span>
                            <div><br>
                              I agree there will be much binding-based
                              usage, and CLI usage, but there will
                              always be users who will use httpie with
                              some bash scripting calls instead. So from
                              that perspective, the goals remain the
                              same they have for years; we need to put
                              forth the best, lowest-complexity REST
                              API.<br>
                               </div>
                            <blockquote class="gmail_quote"
                              style="margin:0 0 0 .8ex;border-left:1px
                              #ccc solid;padding-left:1ex">
                              <span
                                class="m_-4971748094304000821m_4138795520150130818HOEnZb"><font
                                  color="#888888"><br>
                                  -- bk<br>
                                  <br>
                                </font></span></blockquote>
                          </div>
                          <br>
                        </div>
                      </div>
                      <br>
                    </div>
                  </div>
                  <span class="">______________________________<wbr>_________________<br>
                    Pulp-dev mailing list<br>
                    <a href="mailto:Pulp-dev@redhat.com" target="_blank"
                      moz-do-not-send="true">Pulp-dev@redhat.com</a><br>
                    <a
                      href="https://www.redhat.com/mailman/listinfo/pulp-dev"
                      rel="noreferrer" target="_blank"
                      moz-do-not-send="true">https://www.redhat.com/mailman<wbr>/listinfo/pulp-dev</a><br>
                    <br>
                  </span></blockquote>
              </div>
              <br>
            </div>
            <br>
            ______________________________<wbr>_________________<br>
            Pulp-dev mailing list<br>
            <a href="mailto:Pulp-dev@redhat.com" moz-do-not-send="true">Pulp-dev@redhat.com</a><br>
            <a href="https://www.redhat.com/mailman/listinfo/pulp-dev"
              rel="noreferrer" target="_blank" moz-do-not-send="true">https://www.redhat.com/<wbr>mailman/listinfo/pulp-dev</a><br>
            <br>
          </blockquote>
        </div>
        <br>
      </div>
      <br>
      <fieldset class="mimeAttachmentHeader"></fieldset>
      <br>
      <pre wrap="">_______________________________________________
Pulp-dev mailing list
<a class="moz-txt-link-abbreviated" href="mailto:Pulp-dev@redhat.com">Pulp-dev@redhat.com</a>
<a class="moz-txt-link-freetext" href="https://www.redhat.com/mailman/listinfo/pulp-dev">https://www.redhat.com/mailman/listinfo/pulp-dev</a>
</pre>
    </blockquote>
    <br>
  </body>
</html>