<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    <br>
    <br>
    <div class="moz-cite-prefix">On 04/10/2018 01:04 PM, Brian Bouterse
      wrote:<br>
    </div>
    <blockquote type="cite"
cite="mid:CAAcvrTHGZ8CW7FnLQu-9PmqkwqVu=ViVSzmxUTchRG9V61ZP1A@mail.gmail.com">
      <div dir="ltr">
        <div>These are good problem statements. I didn't understand all
          of the aspects of it, so I put some inline questions.<br>
          <br>
          My overall question is: are these related problems? To share
          my answer to this, I believe the first two problems are
          related and the third is separate. The classic divide and
          conquor approach we could use here is to confirm that the
          problems are unrelated and focus on resolving one of them
          first.<br>
        </div>
      </div>
    </blockquote>
    <br>
    Agreed.<br>
    <br>
    <blockquote type="cite"
cite="mid:CAAcvrTHGZ8CW7FnLQu-9PmqkwqVu=ViVSzmxUTchRG9V61ZP1A@mail.gmail.com">
      <div dir="ltr">
        <div><br>
        </div>
        <div>
          <div>
            <div>
              <div>
                <div class="gmail_extra"><br>
                  <div class="gmail_quote">On Mon, Apr 9, 2018 at 3:18
                    PM, Austin Macdonald <span dir="ltr"><<a
                        href="mailto:austin@redhat.com" target="_blank"
                        moz-do-not-send="true">austin@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">
                        <div>Folks,</div>
                        <div><br>
                        </div>
                        <div>Austin, Dennis, and Milan have identified
                          the following issues with current Pulp3 REST
                          API design:</div>
                        <div>
                          <ul>
                            <li>Action endpoints are problematic.<br>
                            </li>
                            <ul>
                              <li>Example
                                POST@/importers/<plugin>/sync/</li>
                              <li>They are non-RESTful and would make
                                client code tightly coupled with the
                                server code.</li>
                              <li>These endpoints are inconsistent with
                                the other parts of the REST API.</li>
                            </ul>
                          </ul>
                        </div>
                      </div>
                    </blockquote>
                    <div>Is self-consistency really a goal? I think it's
                      a placeholder for consistency for REST since the
                      "rest" of the API is RESTful. After reading parts
                      of Roy Fielding's writeup of the definition of
                      REST I believe "action endpoints are not RESTful"
                      to be a true statement. Maybe "Action endpoints
                      are problematic" should be replaced with "Action
                      endpoints are not RESTful" perhaps and have the
                      self-consistency bullet removed?<br>
                    </div>
                  </div>
                </div>
              </div>
            </div>
          </div>
        </div>
      </div>
    </blockquote>
    <br>
    Consistency in an API is always a valuable goal.<br>
    <br>
    <blockquote type="cite"
cite="mid:CAAcvrTHGZ8CW7FnLQu-9PmqkwqVu=ViVSzmxUTchRG9V61ZP1A@mail.gmail.com">
      <div dir="ltr">
        <div>
          <div>
            <div>
              <div>
                <div class="gmail_extra">
                  <div class="gmail_quote">
                    <blockquote class="gmail_quote" style="margin:0 0 0
                      .8ex;border-left:1px #ccc solid;padding-left:1ex">
                      <div dir="ltr">
                        <div>
                          <ul>
                            <ul>
                              <li>DRF is not being used as intended for
                                action endpoints so we have to implement
                                extra code. (against the grain)</li>
                            </ul>
                          </ul>
                        </div>
                      </div>
                    </blockquote>
                    <div>I don't know much about this. Where is the
                      extra code?<br>
                    </div>
                    <div> </div>
                    <blockquote class="gmail_quote" style="margin:0 0 0
                      .8ex;border-left:1px #ccc solid;padding-left:1ex">
                      <div dir="ltr">
                        <div>
                          <ul>
                            <li>We don't have a convention for where
                              plug-in-specific, custom repository
                              version creation endpoints.<br>
                            </li>
                            <ul>
                              <li>example
                                POST@/api/v3/<where?>/docker/a<wbr>dd/</li>
                              <li>needs to be discoverable through the
                                schema</li>
                            </ul>
                          </ul>
                        </div>
                      </div>
                    </blockquote>
                    <div>What does discoverable via the schema ^ mean?
                      Aren't all urls listed in the schema?<br>
                      <br>
                    </div>
                    <div>I think of ^ problem somewhat differently. Yes
                      all urls need to be discoverable (a REST
                      property), but isn't it more of an issue that the
                      urls which produce repo versions can't be
                      identified distinctly from any other
                      plugin-contributed url? To paraphrase this
                      perspective: making a repo version is strewn about
                      throughout the API in random places which is a bad
                      user experience. Is that what is motivation url
                      discovery?<br>
                    </div>
                  </div>
                </div>
              </div>
            </div>
          </div>
        </div>
      </div>
    </blockquote>
    <br>
    Let me suggest another wording to "discovery".  The entire API needs
    to be clearly & completely defined in the schema.<br>
    <br>
    <blockquote type="cite"
cite="mid:CAAcvrTHGZ8CW7FnLQu-9PmqkwqVu=ViVSzmxUTchRG9V61ZP1A@mail.gmail.com">
      <div dir="ltr">
        <div>
          <div>
            <div>
              <div>
                <div class="gmail_extra">
                  <div class="gmail_quote">
                    <div> </div>
                    <blockquote class="gmail_quote" style="margin:0 0 0
                      .8ex;border-left:1px #ccc solid;padding-left:1ex">
                      <div dir="ltr">
                        <div>
                          <ul>
                            <li>For direct repository version creation,
                              plugins are not involved.<br>
                            </li>
                            <ul>
                              <li>validation correctness problem: <a
                                  href="https://pulp.plan.io/issues/3541"
                                  target="_blank" moz-do-not-send="true">https://pulp.plan.io/issues/35<wbr>41</a></li>
                              <li>example:
                                POST@/api/v3/repositories/<rep<wbr>ository_id>/versions/</li>
                            </ul>
                          </ul>
                        </div>
                      </div>
                    </blockquote>
                    <div>I agree with this problem statement. In terms
                      of scope it affects some plugin writers but not
                      all.<br>
                       <br>
                    </div>
                    <blockquote class="gmail_quote" style="margin:0 0 0
                      .8ex;border-left:1px #ccc solid;padding-left:1ex">
                      <div dir="ltr">
                        <div>We would like to get feedback on these
                          issues being sound and worth resolving before
                          we resume particular solution discussion[1].</div>
                        <div><br>
                        </div>
                        <div>Thanks,</div>
                        <div>Austin, Dennis, and Milan</div>
                        <div><br>
                        </div>
                        <div>[1] <a
                            href="https://www.redhat.com/archives/pulp-dev/2018-March/msg00066.html"
                            target="_blank" moz-do-not-send="true">https://www.redhat.com/archive<wbr>s/pulp-dev/2018-March/msg00066<wbr>.html</a><br>
                        </div>
                        <div><br>
                        </div>
                      </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>
              </div>
            </div>
          </div>
        </div>
      </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>