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