Git Product home page Git Product logo

deprecation-header's People

Contributors

dret avatar ioggstream avatar sdatgit avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

deprecation-header's Issues

repo access

in most cases, people have their draft repos as public so that anybody can look at the current draft and the history. limiting push access makes sense, but my vote is to make this repo public.

Convey multiple API deprecations happening at a different time

There are cases when there are multiple API deprecations happening at a different time. Business policies could change at any point of time requesting certain API elements to be deprecated. So, there should be a way to indicate this in the header. Otherwise, developers are not going to be alerted to read API documentation to understand new deprecations and to plan their integration changes accordingly.

deprecation "since" design

having the <date or version> model for the since part seems to be problematic, in particular since a version identifier may be a date?
it seems simpler to make sure that the deprecation always has to be announced by a date, so that clients know what to count on. and since the date can be in the past or in the future (at least that's my mental model so far), what about instead of saying since, just using the date in the same way as it is done for the Sunset header field? that would also make both fields nicely parallel in their design.

add section about deprecation of individual features

we have decided to leave deprecation of individual features of an API's payload as out of scope, which i still think is a good decision.
but what about adding a section that says that while we're not supporting deprecation at a finer granularity, the deprecation link relation could still be used to link to documentation? we could say that while defining a mechanism to identify deprecated parts of a message is out of scope, for anybody doing this it would be ok and potentially helpful to use the deprecation link relation to make it easier to find information about the deprecation policy and state.

author part of draft filename

i may be wrong, but i am pretty sure that the convention is to name individual drafts with one author name, following the draft-... pattern.
brief check at https://www.ietf.org/standards/ids/guidelines/ and indeed: "A string related to the name of one of the authors in some way. There are no mechanical rules for this string but objectionable or misleading strings are subject to change or removal at the discretion of the Secretariat."

multiple deprecation header fields

i am wondering about this paragraph:

Servers SHOULD NOT include more than one Deprecation header field in the same response. If a server sends multiple responses containing Deprecation headers concurrently to the user agent (e.g., when communicating with the user agent over multiple sockets), these responses create a "race condition" that can lead to unpredictable behavior.

the first sentence seems to talk about sending more than one header field in the same HTTP message. the second sentence seems to talk about multiple HTTP messages? i am not sure we want to go to this level of detail. if we do, we'd have to describe the race condition, and i am not even sure that we have one here. anyway, i'd probably drop that one completely.

adding/combining sunset information with deprecation

should we have some kind of sunset parameter for the Deprecation header field, or instead refer to the Sunset HTTP header field and recommend to use that one when deprecation information is augmented with sunset information? my vote is for reusing the Sunset header field.

scope in the deprecation header

I was speaking to an API developer regarding the deprecation header. He suggested having scope would help. Scope could be request, response or endpoint. Documenting the ask in this issue.

recommend HTTP status codes

if Deprecation is used, what HTTP status code should be used? i think it would be good to say something about this. i guess that continuing to use the same ones is ok, since the resources are still operational. but some people might want to use 301 or similar status codes.

ABNF for version/date parameters

given the current ABNF, it seems like a version parameter must occur before a date parameter, if both are used. that's probably not intentional, and should be changed to allow either sequence (and probably extensions should be allowed to be mixed in as well).

security considerations focus on Link header field

currently, the security considerations talk about the Link header field. is that because of a copy/paste from that spec, or because they are supposed to talk the link relation and how that is going to be used in a Link header field? either way, this section needs some clarification.

how does the version identifier work?

getting back to the draft i am still not quite sure about the way the version mechanism works. it seems to assume that there is a well-known (but opaque) version identifier that clients know and can use? how would they know it, and what would they use it for? would it be possible that various versions can show up as deprecated at the same URI?
if you could try to write a little more about how the version identifier is assigned, how clients learn about it, what kind of actions they are supposed to take when it shows up in a deprecation header field, that would be great. it might also help others to better understand the mechanism.

Brief message as part of the header

I'd include a brief message about the deprecation in this header. This anyways is intended to be logged or presented to a human user. Deprecation is some sort of a warning that deserves to have first-class citizen treatment and that's why there is a proposal to introduce a new header.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.