diff --git a/extensions/transactions/create-replace-update-delete/standard/20-002.adoc b/extensions/transactions/create-replace-update-delete/standard/20-002.adoc index 989bc22a..4c28866f 100644 --- a/extensions/transactions/create-replace-update-delete/standard/20-002.adoc +++ b/extensions/transactions/create-replace-update-delete/standard/20-002.adoc @@ -107,11 +107,13 @@ include::clause_7_update.adoc[] include::clause_8_optimistic-locking.adoc[] -include::clause_9_features.adoc[] +include::clause_9_return-created-resource.adoc[] -include::clause_10_media_types.adoc[] +include::clause_10_features.adoc[] -include::clause_11_security_considerations.adoc[] +include::clause_11_media_types.adoc[] + +include::clause_12_security_considerations.adoc[] <<< include::annex_ats.adoc[] diff --git a/extensions/transactions/create-replace-update-delete/standard/clause_9_features.adoc b/extensions/transactions/create-replace-update-delete/standard/clause_10_features.adoc similarity index 98% rename from extensions/transactions/create-replace-update-delete/standard/clause_9_features.adoc rename to extensions/transactions/create-replace-update-delete/standard/clause_10_features.adoc index e3059e48..32ec4e28 100644 --- a/extensions/transactions/create-replace-update-delete/standard/clause_9_features.adoc +++ b/extensions/transactions/create-replace-update-delete/standard/clause_10_features.adoc @@ -27,6 +27,11 @@ include::requirements/features/REQ_collection-endpoint.adoc[] .A collection with `supportsNonAutogeneratedResourceIds` set to `true` include::../examples/json/ex07_supportsNonAutogeneratedResourceIds.adoc[] +[[return-created-feature]] +=== Support for returning a created feature + +T.B.D. + [[feature-crs]] === Coordinate reference systems (CRS) diff --git a/extensions/transactions/create-replace-update-delete/standard/clause_10_media_types.adoc b/extensions/transactions/create-replace-update-delete/standard/clause_11_media_types.adoc similarity index 100% rename from extensions/transactions/create-replace-update-delete/standard/clause_10_media_types.adoc rename to extensions/transactions/create-replace-update-delete/standard/clause_11_media_types.adoc diff --git a/extensions/transactions/create-replace-update-delete/standard/clause_11_security_considerations.adoc b/extensions/transactions/create-replace-update-delete/standard/clause_12_security_considerations.adoc similarity index 100% rename from extensions/transactions/create-replace-update-delete/standard/clause_11_security_considerations.adoc rename to extensions/transactions/create-replace-update-delete/standard/clause_12_security_considerations.adoc diff --git a/extensions/transactions/create-replace-update-delete/standard/clause_9_return-created-resource.adoc b/extensions/transactions/create-replace-update-delete/standard/clause_9_return-created-resource.adoc new file mode 100644 index 00000000..cfc4ac82 --- /dev/null +++ b/extensions/transactions/create-replace-update-delete/standard/clause_9_return-created-resource.adoc @@ -0,0 +1,54 @@ +[[return-created-resource_clause]] +== Requirements Class "Return Created Resource" + +[[return-create-resource-overview]] +=== Overview + +include::requirements/requirements_class_return_created-resource.adoc[] + +A server that implements this requirements class provides the ability to return +a representation of a newly created resource in the response body of a +<> operation. + + +[[return-created-resource-header]] +=== Return-Created-Resource header + +==== Definition + +include::requirements/return-created-resource/REQ_header.adoc[] + +==== Response + +include::requirements/return-created-resource/REQ_response.adoc[] + +include::requirements/return-created-resource/REQ_representation.adoc[] + +==== Exceptions + +See <>. + +==== Example + +The following example illustrates the use of the `Return-Creates-Resource` +HTTP header to request that a representation of the newly created resource be +returned in the response body of the <>. + +.... + Client Server + | | + | POST HTTP/1.1 | + | Content-Type: | + | Return-Created-Resource: true | + | Accept: | + | | + | ... Body contains representation of the resource ... | + |-------------------------------------------------------------->| + | | + | HTTP/1.1 201 Created | + | Location: | + | | + | ... Response body containing represenation of created | + | resource ... | + |<--------------------------------------------------------------| +.... diff --git a/extensions/transactions/create-replace-update-delete/standard/requirements/requirements_class_features.adoc b/extensions/transactions/create-replace-update-delete/standard/requirements/requirements_class_features.adoc index abf75aba..ccfece25 100644 --- a/extensions/transactions/create-replace-update-delete/standard/requirements/requirements_class_features.adoc +++ b/extensions/transactions/create-replace-update-delete/standard/requirements/requirements_class_features.adoc @@ -10,6 +10,7 @@ |Conditional Dependency |<> |Conditional Dependency |<> |Conditional Dependency |<> +|Conditional Dependency |<> |Conditional Dependency |<> |Conditional Dependency |<> |Conditional Dependency |<> diff --git a/extensions/transactions/create-replace-update-delete/standard/requirements/requirements_class_return_created-resource.adoc b/extensions/transactions/create-replace-update-delete/standard/requirements/requirements_class_return_created-resource.adoc new file mode 100644 index 00000000..4de607f9 --- /dev/null +++ b/extensions/transactions/create-replace-update-delete/standard/requirements/requirements_class_return_created-resource.adoc @@ -0,0 +1,8 @@ +[[rc_return-created-resource]] +[cols="1,4",width="90%"] +|=== +2+|*Requirements Class* +2+|http://www.opengis.net/spec/ogcapi-features-4/1.0/req/return-created-resource +|Target type |Web API +|Dependency |<> +|=== diff --git a/extensions/transactions/create-replace-update-delete/standard/requirements/return-created-resource/REQ_header.adoc b/extensions/transactions/create-replace-update-delete/standard/requirements/return-created-resource/REQ_header.adoc new file mode 100644 index 00000000..5d2bcf3f --- /dev/null +++ b/extensions/transactions/create-replace-update-delete/standard/requirements/return-created-resource/REQ_header.adoc @@ -0,0 +1,7 @@ +[[rec_return-created-resource_http-header]] +[width="90%",cols="2,6a"] +|=== +^|*Requirement {counter:req-id}* |*/req/return-created-resource/http-header* +^|A |Server implementations SHALL recognize the `Return-Created-Resource` HTTP header. +^|B |The `Return-Created-Resource` header SHALL be a boolean accepting the values of `true` or `false`. +|=== diff --git a/extensions/transactions/create-replace-update-delete/standard/requirements/return-created-resource/REQ_representation.adoc b/extensions/transactions/create-replace-update-delete/standard/requirements/return-created-resource/REQ_representation.adoc new file mode 100644 index 00000000..0059f1f4 --- /dev/null +++ b/extensions/transactions/create-replace-update-delete/standard/requirements/return-created-resource/REQ_representation.adoc @@ -0,0 +1,6 @@ +[[rec_return-created-resource_representation]] +[width="90%",cols="2,6a"] +|=== +^|*Requirement {counter:req-id}* |*/req/return-created-resource/response* +^|A |The representation of the resource returned in the response body of a <> SHALL be negotiated using https://www.rfc-editor.org/rfc/rfc9110.html#name-content-negotiation[HTTP content negotiation] mechanisms (e.g. use of the HTTP `Accept` header). +|=== diff --git a/extensions/transactions/create-replace-update-delete/standard/requirements/return-created-resource/REQ_response.adoc b/extensions/transactions/create-replace-update-delete/standard/requirements/return-created-resource/REQ_response.adoc new file mode 100644 index 00000000..d7f25686 --- /dev/null +++ b/extensions/transactions/create-replace-update-delete/standard/requirements/return-created-resource/REQ_response.adoc @@ -0,0 +1,7 @@ +[[rec_return-created-resource_response]] +[width="90%",cols="2,6a"] +|=== +^|*Requirement {counter:req-id}* |*/req/return-created-resource/response* +^|A |A value of `true` for the `Return-Created-Resource` SHALL indicate that the server SHALL return a representation of a newly created resource in the response body of a <>. +^|B |A value of `false` or the absence of the `Return-Created-Resource` header SHALL indiciate that a representation of a newly created resource SHALL NOT be returned in the response body of a <>. +|===