Skip to content
This repository was archived by the owner on Jul 7, 2025. It is now read-only.

Commit 2ced924

Browse files
committed
#35 @dret please review. thanks!
1 parent f6cc119 commit 2ced924

File tree

1 file changed

+14
-19
lines changed

1 file changed

+14
-19
lines changed

draft-ietf-httpapi-deprecation-header.md

Lines changed: 14 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ informative:
4343

4444
--- abstract
4545

46-
The Deprecation HTTP response header field is used to signal to consumers of a resource (in the sense of URI) that the resource will be or has been deprecated. Additionally, the deprecation link relation can be used to link to a resource that provides additional information about planned or existing deprecation, and possibly ways in which clients can best manage deprecation.
46+
The Deprecation HTTP response header field is used to signal to consumers of a resource (in the sense of URI) that the resource will be or has been deprecated. Additionally, the deprecation link relation can be used to link to a resource that provides additional information about planned or existing deprecation, and possibly ways in which client applications can best manage deprecation.
4747

4848

4949
--- middle
@@ -54,7 +54,7 @@ The Deprecation HTTP response header field is used to signal to consumers of a r
5454

5555
Deprecation of an HTTP resource ({{Section 3.1 of HTTP}}) communicates information about the lifecycle of a resource. It encourages applications to migrate away from the resource, discourages applications from forming new dependencies on the resource, and informs applications about the risk of continued dependence upon the resource.
5656

57-
The act of deprecation does not change any behavior of the resource. It informs clients of the fact that a resource will be or is deprecated. The Deprecation HTTP response header field can be used to convey this at runtime to clients and carries information indicating when the deprecation will be in effect.
57+
The act of deprecation does not change any behavior of the resource. It informs client applications of the fact that a resource will be or is deprecated. The Deprecation HTTP response header field can be used to convey this at runtime to client applications and carries information indicating when the deprecation will be in effect.
5858

5959
In addition to the Deprecation header field, the resource provider can use other header fields such as Link ([LINK]) to convey additional information related to deprecation. This can be information such as where to find documentation related to the deprecation, what can be used as a replacement, and when a deprecated resource becomes non-operational.
6060

@@ -69,7 +69,7 @@ The term "resource" is to be interpreted as defined in {{Section 3.1 of HTTP}}.
6969

7070
# The Deprecation HTTP Response Header Field
7171

72-
The `Deprecation` HTTP response header field allows a server to communicate to a client that the resource in context of the message is or will be deprecated.
72+
The `Deprecation` HTTP response header field allows a server to communicate to a client application that the resource in context of the message is or will be deprecated.
7373

7474
## Syntax
7575

@@ -94,21 +94,21 @@ The Deprecation header field applies to the resource identified with the respons
9494

9595
Resources are free to define such an increased scope, and usually this scope will be documented by the resource so that consumers of the resource know about the increased scope and can behave accordingly. When doing so, it is important to take into account that such increased scoping is invisible for consumers who are unaware of the increased scoping rules. This means that these consumers will not be aware of the increased scope, and they will not interpret deprecation information different from its standard meaning (i.e., it applies to the resource only).
9696

97-
Using such an increased scope still may make sense, as deprecation information is only a hint anyway. It is optional information that cannot be depended on, and clients should always be implemented in ways that allow them to function without Deprecation information. Increased scope information may help clients to glean additional hints from related resources and, thus, might allow them to implement behavior that allows them to make educated guesses about resources becoming deprecated.
97+
Using such an increased scope still may make sense, as deprecation information is only a hint anyway. It is optional information that cannot be depended on, and client applications should always be implemented in ways that allow them to function without Deprecation information. Increased scope information may help client applications to glean additional hints from related resources and, thus, might allow them to implement behavior that allows them to make educated guesses about resources becoming deprecated.
9898

99-
For example, an API might not use Deprecation header fields on all of its resources, but only on designated resources such as the API's home document. This means that deprecation information is available, but in order to get it, clients have to periodically inspect the home document. In this example, the extended context of the Deprecation header field would be all resources provided by the API, while the visibility of the information would only be on the home document.
99+
For example, an API might not use Deprecation header fields on all of its resources, but only on designated resources such as the API's home document. This means that deprecation information is available, but in order to get it, client applications have to periodically inspect the home document. In this example, the extended context of the Deprecation header field would be all resources provided by the API, while the visibility of the information would only be on the home document.
100100

101101

102102
# The Deprecation Link Relation Type
103103

104-
In addition to the Deprecation HTTP header field, the server can use links with the "deprecation" link relation type to communicate to the client where to find more information about deprecation of the context. This can happen before the actual deprecation, to make a deprecation policy discoverable, or after deprecation, when there may be documentation about the deprecation, and possibly documentation of how to manage it.
104+
In addition to the Deprecation HTTP header field, the server can use links with the "deprecation" link relation type to communicate to the client application where to find more information about deprecation of the context. This can happen before the actual deprecation, to make a deprecation policy discoverable, or after deprecation, when there may be documentation about the deprecation, and possibly documentation of how to manage it.
105105

106106
This specification places no restrictions on the representation of the linked deprecation policy. In particular, the deprecation policy may be available as human-readable documentation or as machine-readable description.
107107

108108

109109
## Documentation
110110

111-
The purpose of the `Deprecation` header field is to provide a hint about deprecation to the resource consumer. Upon reception of the `Deprecation` header field, the client developer can look up the resource's documentation in order to find deprecation related information. The documentation MAY provide a guide and timeline to migrate away from the deprecated resource to a new resource(s) replacing the deprecated resource, if applicable. The resource provider can provide a link to the resource documentation using a `Link` header field with relation type `deprecation` as shown below:
111+
The purpose of the `Deprecation` header field is to provide a hint about deprecation to the resource consumer. Upon reception of the `Deprecation` header field, the client application developer can look up the resource's documentation in order to find deprecation related information. The documentation MAY provide a guide and timeline to migrate away from the deprecated resource to a new resource(s) replacing the deprecated resource, if applicable. The resource provider can provide a link to the resource documentation using a `Link` header field with relation type `deprecation` as shown below:
112112

113113
Link: <https://developer.example.com/deprecation>;
114114
rel="deprecation"; type="text/html"
@@ -137,7 +137,7 @@ The following example shows that the resource in context has been deprecated sin
137137

138138
# Resource Behavior
139139

140-
The act of deprecation does not change any behavior of the resource. Deprecated resources SHOULD keep functioning as before, allowing consumers to still use the resources in the same way as they did before the resources were declared deprecated.
140+
The act of deprecation does not change any behavior of the resource. The presence of a Deprecation header field in response is not meant to signal a change in the meaning or function of a resource in the context, allowing consumers to still use the resource in the same way as they did before the resource was declared deprecated.
141141

142142
# IANA Considerations
143143

@@ -170,7 +170,7 @@ The `deprecation` link relation type should be added to the permanent registry o
170170

171171
# Security Considerations
172172

173-
The Deprecation header field should be treated as a hint, meaning that the resource is indicating (and not guaranteeing with certainty) that it will be or is deprecated. Deprecated resources MUST function (almost) as before, even though one might consider non-functional details such as making them progressively less efficient with longer response time for example.
173+
The Deprecation header field should be treated as a hint, meaning that the resource is indicating (and not guaranteeing with certainty) that it will be or is deprecated. Deprecated resources function as they would have without sending the deprecation header field, even though one might consider non-functional details such as making them progressively less efficient with longer response time for example.
174174

175175
Resource documentation SHOULD provide additional information about the deprecation, such as including recommendation(s) for replacement. Applications consuming the resource SHOULD check the referred resource documentation to verify authenticity and accuracy. In cases where a `Link` header field is used to provide documentation, one should assume (unless served over HTTPS) that the content of the `Link` header field may not be secure, private or integrity-guaranteed, and due caution should be exercised when using it. Also, in cases where the Deprecation header field value is a date in the future, it can lead to information that otherwise might not be available. Therefore, applications consuming the resource SHOULD, if possible, consult the resource developer to discuss potential impact due to deprecation and plan for possible transition to a recommended resource(s).
176176

@@ -191,6 +191,8 @@ According to RFC 7942, "this will allow reviewers and working groups to assign d
191191

192192
This is a list of implementations that implement the deprecation header field:
193193

194+
The Deprecation link relation is returned in the Registration Data Access Protocol (RDAP) notices to indicate deprecation of jCard in favor of JSContact. RDAP is specified in the IETF Internet Draft for Using JSContact in Registration Data Access Protocol (RDAP) JSON Responses https://datatracker.ietf.org/doc/draft-ietf-regext-rdap-jscontact/.
195+
194196
Organization: Apollo
195197

196198
- Description: Deprecation header field is returned when deprecated functionality (as declared in the GraphQL schema) is accessed
@@ -206,11 +208,6 @@ Organization: Palantir Technologies
206208
- Description: Deprecation header field is incorporated in code generated by conjure-java, a CLI to generate Java POJOs and interfaces from Conjure API definitions
207209
- Reference: https://github.com/palantir/conjure-java
208210

209-
Organization: IETF Internet Draft, Registration Protocols Extensions
210-
211-
- Description: Deprecation link relation is returned in Registration Data Access Protocol (RDAP) notices to indicate deprecation of jCard in favor of JSContact.
212-
- Reference: https://tools.ietf.org/html/draft-loffredo-regext-rdap-jcard-deprecation
213-
214211
Organization: E-Voyageurs Technologies
215212

216213
* Description: Deprecation header field is incorporated in Hesperides, a configuration management tool providing universal text file templating and properties editing through a REST API or a webapp.
@@ -226,8 +223,6 @@ Organization: MediaWiki
226223
* Description: Core REST API of MediaWiki would use Deprecation header field for endpoints that have been deprecated because a new endpoint provides the same or better functionality.
227224
* Reference: https://phabricator.wikimedia.org/T232485
228225

229-
230-
231226
## Implementing the Concept
232227

233228
This is a list of implementations that implement the general concept, but do so using different mechanisms:
@@ -258,12 +253,12 @@ Organization: PayPal
258253
- Reference: https://github.com/paypal/api-standards/blob/master/api-style-guide.md#runtime
259254

260255

261-
# Changes from Draft-06 {#changes}
256+
# Changes from Draft-07 {#changes}
262257

263258
This revision has made the following changes:
264259

265-
* Fixed Header Field Template
266-
* Fixed Link Relation Template
260+
* Addresses Gen-ART's comments
261+
* Addresses ARTART's comments
267262

268263

269264
# Acknowledgments

0 commit comments

Comments
 (0)