Re: /.well-known (RFC5785) vs versioned APIs [and EST/RFC7030]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Mark Nottingham <mnot@xxxxxxxx> wrote:
    > Agreed with Martin, to a large extent.

Good to know.

    > You could do /.well-known/foo/v1, but of course you could also just
    > call it something else, e.g., /.well-known/bar. The point being that if
    > there's backwards-incompatible change in the semantics, it really is
    > another thing.

Registering /.well-known/bar requires an IANA action, and pollutes that
namespace, so it seems like a bad idea.

    > And of course ../v1.0 doesn't make any kind of sense, because minor
    > versions are supposed to signify backwards-compatible changes, but by
    > changing the URL, they become incompatible. More about this at
    > <https://www.mnot.net/blog/2012/12/04/api-evolution>.

I agree that semantic versioning in the URL seems dumb, because only the
first digit should matter as far being compatible.

I suppose using /api/1.0.1 and getting a 404 is a pretty clear statement that a
minor change is not supported, but I don't really get it.  So we agree on /v1
vs /v2 makes more sense than 1.0.0 and 2.0.0

    > One of the things on my list is to write something explaining how to
    > use OpenAPI for standards; it's designed more for single-deployment
    > APIs (see
    > <https://www.mnot.net/blog/2012/06/25/http_api_complexity_model>), not
    > ones that have multiple, uncoordinated deployments, so there are some
    > foot guns there.

I would welcome a discussion about OpenAPI in IETF specifications.
Mechanically, how to do it (throw the YAML in as a an appendix? Inline?
Split up the YAML?  Which text is normative...), and pieces of OpenAPI to
avoid.

My EST extension protocol is a bit complex from an OpenAPI point of
view. First Alice talks to Bob, and get something, and gives it to Frank, and
Frank then speaks to Joe, and returns something to Alice, which returns to
Bob with it. OAUTH2 has a similar level of complexity.  I don't see an
obvious way in OpenAPI to express the coupling between API calls.

I found your blog posting made a good point.  My experience is that people
have the experience of starting "One Client, One Server", and then they are
suddendly in Many Client,Many Server, either because the company was
restructured, or because they went "public".  The Besos legend includes him
declaring that all APIs could be opened at any time, and people better be
ready.  (Many have lamented that Google doesn't have the same approach)

--
]               Never tell me the odds!                 | ipv6 mesh networks [
]   Michael Richardson, Sandelman Software Works        |    IoT architect   [
]     mcr@xxxxxxxxxxxx  http://www.sandelman.ca/        |   ruby on rails    [




--
Michael Richardson <mcr+IETF@xxxxxxxxxxxx>, Sandelman Software Works
 -= IPv6 IoT consulting =-



Attachment: signature.asc
Description: PGP signature


[Index of Archives]     [IETF Annoucements]     [IETF]     [IP Storage]     [Yosemite News]     [Linux SCTP]     [Linux Newbies]     [Mhonarc]     [Fedora Users]

  Powered by Linux