@@ -1297,11 +1297,10 @@ for varname in templateData:
1297
1297
using protocols such as CoAP that are explicitly analogous to HTTP.
1298
1298
</t >
1299
1299
<t >
1300
- This section provides guidance on how to define links for use with each
1301
- common HTTP method, and how collection resources impose additional constraints
1302
- on the use of HTTP POST. Additionally, guidance is provided on hinting at
1303
- HTTP response header values and describing possible HTTP request headers
1304
- that are relevant to the given resource.
1300
+ This section provides guidance on how to use each common HTTP method with a link,
1301
+ and how colletion resources impose additional constraints on HTTP POST.
1302
+ Additionally, guidance is provided on hinting at HTTP response header values and
1303
+ describing possible HTTP request headers that are relevant to the given resource.
1305
1304
</t >
1306
1305
<section title =" One link per target and relation type" >
1307
1306
<t >
@@ -1352,6 +1351,8 @@ for varname in templateData:
1352
1351
that are suitable for PATCH-ing define a syntax for expressing changes
1353
1352
to a document, which can be applied to the representation described by
1354
1353
"targetSchema" to determine the set of syntactically valid request payloads.
1354
+ Often, the simplest way to validate a PATCH is to apply it and validate
1355
+ the result as a normal representation.
1355
1356
</t >
1356
1357
<t >
1357
1358
HTTP POST request payloads are described by the "submissionSchema" and
@@ -1429,6 +1430,31 @@ for varname in templateData:
1429
1430
<xref target =" collectionAndItem" />.
1430
1431
</t >
1431
1432
</section >
1433
+ <section title =" Content negotiation and schema evolution" >
1434
+ <t >
1435
+ JSON Hyper-Schema facilitates HTTP content negotiation, and allows for
1436
+ a hybrid of the proactive and reactive strategies. As mentioned
1437
+ above, a hyper-schema can include a schema for HTTP headers such as
1438
+ "Accept", "Accept-Charset", "Accept-Language", etc with the "headerSchema"
1439
+ keyword. A user agent or client application can use information in
1440
+ this schema, such as an enumerated list of supported laguages, in lieu of
1441
+ making an initial request to start the reactive negotiation process.
1442
+ </t >
1443
+ <t >
1444
+ In this way, the proactive content negotiation technique of setting these
1445
+ headers can be informed by server information about what values are
1446
+ possible, similar to examining a list of alternatives in reactive negotiation.
1447
+ </t >
1448
+ <t >
1449
+ For media types that allow specifying a schema as a media type parameter,
1450
+ the "Accept" values sent in a request or advertised in "headerSchema" can
1451
+ include the URI(s) of the schema(s) to which the negotiated representation
1452
+ is expected to conform. One possible use for schema parameters in
1453
+ content negotiation is if the resource has conformed to several different
1454
+ schema versions over time. The client can indicate what version(s) it
1455
+ understands in the "Accept" header in this way.
1456
+ </t >
1457
+ </section >
1432
1458
</section >
1433
1459
1434
1460
<section title =" Examples" anchor =" examples" >
0 commit comments