From 7939e9ba2aca9e23ea3e6ab9413d5fa6b4df7c8b Mon Sep 17 00:00:00 2001 From: Sebastian Bader Date: Tue, 9 Apr 2024 09:16:56 +0200 Subject: [PATCH 1/7] add the reworked API Versioning chapter + annotations in ChangeLog --- .../modules/ROOT/images/image88.png | Bin 0 -> 65127 bytes .../ROOT/pages/IDTA-01002_ChangeLog.adoc | 2 + .../ROOT/pages/IDTA-01002_HTTP-REST-API.adoc | 40 ++++++++++-------- 3 files changed, 24 insertions(+), 18 deletions(-) create mode 100644 documentation/IDTA-01002-3/modules/ROOT/images/image88.png diff --git a/documentation/IDTA-01002-3/modules/ROOT/images/image88.png b/documentation/IDTA-01002-3/modules/ROOT/images/image88.png new file mode 100644 index 0000000000000000000000000000000000000000..cae9fb7a48c602a557238d74afc0be9a65d242df GIT binary patch literal 65127 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... -There are different solutions regarding API versioning involving URL-based versioning, query parameter-based versioning, as well as HTTP header-oriented solutions using custom or standard headers. + -As different solutions also provide different advantages and disadvantages, *URL-based versioning* has been selected as the most suitable method for the AAS API. Among other advantages, implementation complexity on clients as well as servers is rather low and different versions can be easily accessed through browsers without the need for specific development tools or extensions. +The major version changes in case of breaking or incompatible changes that need to be addressed by clients. Minor versions add (new) functionality in a backwards compatible way and allow clients with lower minor versions to keep their existing functionality. Patch versions only include backwards compatible bug fixes. -.Example of an URL Scheme for AAS API Versioning -image::image23.png[Ein Bild, das Dunkel enthält. Automatisch generierte Beschreibung,width=481,height=110] +AAS API versioning uses the major and minor version as described above. A specific AAS API version uses specific related versions of the metamodel as defined in Clause 1.2. AAS API versions with the same major version must remain compatible, i.e. a client written for an older or a newer minor version must still work. This requires corresponding testing of clients and servers. -.Alternative URL example (TODO) -image::image23.png[Ein Bild, das Dunkel enthält. Automatisch generierte Beschreibung,width=481,height=110] +Additionally, "Release candidates" are variants of the implementation of the denoted major version. For example, "3.1.0 RC2" should be interpreted as the second (alternative) release candidate for version 3.1.0. -Upcoming implementations of AAS related servers may implement the version prefix “*api/v/*” to provide information of the specific major version regarding AAS Part 2 version, where denotes the implemented major version and denotes the minor version, e.g. “api/v3.0/” (see Figure 4). +As multiple versions will be supported in the future, an AAS ecosystem consisting of Registry / Discovery services as well as AAS Repository, Submodel (standalone), or AAS (standalone) services should share a consistent version. Therefore, a consistent interface description in the form of OpenAPI documents shall be provided with each major version. -==== -Note:* all URLs mentioned in this document regarding the REST mapping of the AAS APIs have to be understood with this prefix in mind. -==== +Upcoming compatibility constraints regarding newer versions will be elaborated in further iterations of this document and related technical descriptions (OpenAPI specification). +API versioning provides a way to deal with different versions of the same API at the same time. This way, older versions may still be accessible on the same server to provide services to legacy clients without breaking existing functionality. -The versioning scheme for AAS API related services follows semantic versioning footnote:[http://semver.org]. Very briefly, this defines version numbers as a format following: ... +There are different solutions regarding API versioning involving URL-based versioning, query parameter-based versioning, as well as HTTP header-oriented solutions using custom or standard headers. -The major version changes in case of breaking or incompatible changes that need to be addressed by clients. Minor versions add (new) functionality in a backwards compatible way and allow clients with lower minor versions to keep their existing functionality. Patch versions only include backwards compatible bug fixes. +.Example of an AAS endpoint with URL-based versioning +image::image23.png[Ein Bild, das Dunkel enthält. Automatisch generierte Beschreibung,width=481,height=110] -AAS API versioning uses the major and minor version as described above. A specific AAS API version uses specific related versions of the metamodel as defined in Clause 1.2. AAS API versions with the same major version must remain compatible, i.e. a client written for an older or a newer minor version must still work. This requires corresponding testing of clients and servers. +As different solutions also provide different advantages and disadvantages, URL-based versioning is recommended for the AAS API. Among other advantages, implementation complexity on clients as well as servers is rather low and different versions can be easily accessed through browsers without the need for specific development tools or extensions. -Additionally, “Release candidates” are variants of the implementation of the denoted major version. For example, “3.1.0 RC2” should be interpreted as the second (alternative) release candidate for version 3.1.0. This will still result in the version prefix “/api/v3.1/”. +Upcoming implementations of AAS related servers may implement the version prefix “api/v/” to provide information of the specific major version regarding AAS Part 2 version, where denotes the implemented major version, e.g. “api/v3/” (see Figure 4). As minor releases of one major version must not contain any breaking changes, the declaration of the minor version can be omitted. -As multiple versions will be supported in the future, an AAS ecosystem consisting of Registry / Discovery services as well as AAS Repository, Submodel (standalone), or AAS (standalone) services should share a consistent version. Therefore, a consistent interface description in the form of OpenAPI documents shall be provided with each major version. +Nevertheless, AAS servers may decide to use different paths depending on their context, see Figure 5. A client shall not assume that the pattern from Figure 4 is supported by all servers. -Upcoming compatibility constraints regarding newer versions will be elaborated in further iterations of this document and related technical descriptions (OpenAPI specification). +.Example of an AAS endpoint with an arbitrary path +image::image88.png[Ein Bild, das Dunkel enthält. Automatisch generierte Beschreibung,width=481,height=110] -Finally, it is recommended to include an additional "/description” endpoint into each service to further denote information about APIs / servers capabilities. This endpoint provides further information about the API and its supported profiles. The “/description” will be extended with additional information in later versions. +Upcoming implementations of AAS related servers may implement the version prefix “*api/v/*” to provide information of the specific major version regarding AAS Part 2 version, where denotes the implemented major version and denotes the minor version, e.g. “api/v3.0/” (see Figure 4). + +Finally, it is recommended to include an additional "/description” endpoint into each service to further denote information about APIs / servers capabilities. This endpoint provides further information about the API and its supported profiles, and in particular the version of the profiles. The “/description” will be extended with additional information in later versions. + +==== +Note: The profiles provided at the "/description" endpoint (see Clause 10.2.6) contain both the major and minor version declaration. +==== == Addressing Resources From 8e1df7e04c1fe1902a2640c525fa97f1a0037e79 Mon Sep 17 00:00:00 2001 From: sebbader-sap <107036549+sebbader-sap@users.noreply.github.com> Date: Mon, 15 Apr 2024 16:44:58 +0200 Subject: [PATCH 2/7] Update documentation/IDTA-01002-3/modules/ROOT/pages/IDTA-01002_HTTP-REST-API.adoc Co-authored-by: Birgit Boss <59824205+BirgitBoss@users.noreply.github.com> --- .../modules/ROOT/pages/IDTA-01002_HTTP-REST-API.adoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/documentation/IDTA-01002-3/modules/ROOT/pages/IDTA-01002_HTTP-REST-API.adoc b/documentation/IDTA-01002-3/modules/ROOT/pages/IDTA-01002_HTTP-REST-API.adoc index 7bf36c28..8794f80d 100644 --- a/documentation/IDTA-01002-3/modules/ROOT/pages/IDTA-01002_HTTP-REST-API.adoc +++ b/documentation/IDTA-01002-3/modules/ROOT/pages/IDTA-01002_HTTP-REST-API.adoc @@ -100,7 +100,7 @@ The major version changes in case of breaking or incompatible changes that need AAS API versioning uses the major and minor version as described above. A specific AAS API version uses specific related versions of the metamodel as defined in Clause 1.2. AAS API versions with the same major version must remain compatible, i.e. a client written for an older or a newer minor version must still work. This requires corresponding testing of clients and servers. -Additionally, "Release candidates" are variants of the implementation of the denoted major version. For example, "3.1.0 RC2" should be interpreted as the second (alternative) release candidate for version 3.1.0. +Additionally, "Release candidates" are variants of the implementation of the denoted major version. For example, "3.1.0RC2" should be interpreted as the second (alternative) release candidate for version 3.1.0. As multiple versions will be supported in the future, an AAS ecosystem consisting of Registry / Discovery services as well as AAS Repository, Submodel (standalone), or AAS (standalone) services should share a consistent version. Therefore, a consistent interface description in the form of OpenAPI documents shall be provided with each major version. From 17de93b2341f481b3a9a4986968edaa8d487a63d Mon Sep 17 00:00:00 2001 From: sebbader-sap <107036549+sebbader-sap@users.noreply.github.com> Date: Mon, 15 Apr 2024 16:47:55 +0200 Subject: [PATCH 3/7] Update documentation/IDTA-01002-3/modules/ROOT/pages/IDTA-01002_HTTP-REST-API.adoc Co-authored-by: Birgit Boss <59824205+BirgitBoss@users.noreply.github.com> --- .../modules/ROOT/pages/IDTA-01002_HTTP-REST-API.adoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/documentation/IDTA-01002-3/modules/ROOT/pages/IDTA-01002_HTTP-REST-API.adoc b/documentation/IDTA-01002-3/modules/ROOT/pages/IDTA-01002_HTTP-REST-API.adoc index 8794f80d..689bcd5a 100644 --- a/documentation/IDTA-01002-3/modules/ROOT/pages/IDTA-01002_HTTP-REST-API.adoc +++ b/documentation/IDTA-01002-3/modules/ROOT/pages/IDTA-01002_HTTP-REST-API.adoc @@ -111,7 +111,7 @@ API versioning provides a way to deal with different versions of the same API at There are different solutions regarding API versioning involving URL-based versioning, query parameter-based versioning, as well as HTTP header-oriented solutions using custom or standard headers. .Example of an AAS endpoint with URL-based versioning -image::image23.png[Ein Bild, das Dunkel enthält. Automatisch generierte Beschreibung,width=481,height=110] +image::image23.png[width=481,height=110] As different solutions also provide different advantages and disadvantages, URL-based versioning is recommended for the AAS API. Among other advantages, implementation complexity on clients as well as servers is rather low and different versions can be easily accessed through browsers without the need for specific development tools or extensions. From e2a502a2ffd915e394d5c140d43c5a4039ea88a1 Mon Sep 17 00:00:00 2001 From: sebbader-sap <107036549+sebbader-sap@users.noreply.github.com> Date: Mon, 15 Apr 2024 16:48:33 +0200 Subject: [PATCH 4/7] Update documentation/IDTA-01002-3/modules/ROOT/pages/IDTA-01002_HTTP-REST-API.adoc Co-authored-by: Birgit Boss <59824205+BirgitBoss@users.noreply.github.com> --- .../modules/ROOT/pages/IDTA-01002_HTTP-REST-API.adoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/documentation/IDTA-01002-3/modules/ROOT/pages/IDTA-01002_HTTP-REST-API.adoc b/documentation/IDTA-01002-3/modules/ROOT/pages/IDTA-01002_HTTP-REST-API.adoc index 689bcd5a..07b0fbd2 100644 --- a/documentation/IDTA-01002-3/modules/ROOT/pages/IDTA-01002_HTTP-REST-API.adoc +++ b/documentation/IDTA-01002-3/modules/ROOT/pages/IDTA-01002_HTTP-REST-API.adoc @@ -120,7 +120,7 @@ Upcoming implementations of AAS related servers may implement the version prefix Nevertheless, AAS servers may decide to use different paths depending on their context, see Figure 5. A client shall not assume that the pattern from Figure 4 is supported by all servers. .Example of an AAS endpoint with an arbitrary path -image::image88.png[Ein Bild, das Dunkel enthält. Automatisch generierte Beschreibung,width=481,height=110] +image::image88.png[width=481,height=110] Upcoming implementations of AAS related servers may implement the version prefix “*api/v/*” to provide information of the specific major version regarding AAS Part 2 version, where denotes the implemented major version and denotes the minor version, e.g. “api/v3.0/” (see Figure 4). From 7a4148a7e56d9d525f1b467a5fcff4f19a2b2df8 Mon Sep 17 00:00:00 2001 From: sebbader-sap <107036549+sebbader-sap@users.noreply.github.com> Date: Mon, 15 Apr 2024 16:51:12 +0200 Subject: [PATCH 5/7] Update documentation/IDTA-01002-3/modules/ROOT/pages/IDTA-01002_HTTP-REST-API.adoc Co-authored-by: Birgit Boss <59824205+BirgitBoss@users.noreply.github.com> --- .../modules/ROOT/pages/IDTA-01002_HTTP-REST-API.adoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/documentation/IDTA-01002-3/modules/ROOT/pages/IDTA-01002_HTTP-REST-API.adoc b/documentation/IDTA-01002-3/modules/ROOT/pages/IDTA-01002_HTTP-REST-API.adoc index 07b0fbd2..ed688d9a 100644 --- a/documentation/IDTA-01002-3/modules/ROOT/pages/IDTA-01002_HTTP-REST-API.adoc +++ b/documentation/IDTA-01002-3/modules/ROOT/pages/IDTA-01002_HTTP-REST-API.adoc @@ -127,7 +127,7 @@ Upcoming implementations of AAS related servers may implement the version prefix Finally, it is recommended to include an additional "/description” endpoint into each service to further denote information about APIs / servers capabilities. This endpoint provides further information about the API and its supported profiles, and in particular the version of the profiles. The “/description” will be extended with additional information in later versions. ==== -Note: The profiles provided at the "/description" endpoint (see Clause 10.2.6) contain both the major and minor version declaration. +Note: The profile identifiers provided at the "/description" endpoint (see Clause 10.2.6) contain both the major and minor version declaration. ==== == Addressing Resources From 1fa3f1a4dcd0b7b7c09f2c59c966ae0f875e169f Mon Sep 17 00:00:00 2001 From: Sebastian Bader Date: Mon, 15 Apr 2024 16:53:14 +0200 Subject: [PATCH 6/7] remove duplicated paragraph --- .../modules/ROOT/pages/IDTA-01002_HTTP-REST-API.adoc | 2 -- 1 file changed, 2 deletions(-) diff --git a/documentation/IDTA-01002-3/modules/ROOT/pages/IDTA-01002_HTTP-REST-API.adoc b/documentation/IDTA-01002-3/modules/ROOT/pages/IDTA-01002_HTTP-REST-API.adoc index ed688d9a..bb1ccd0f 100644 --- a/documentation/IDTA-01002-3/modules/ROOT/pages/IDTA-01002_HTTP-REST-API.adoc +++ b/documentation/IDTA-01002-3/modules/ROOT/pages/IDTA-01002_HTTP-REST-API.adoc @@ -122,8 +122,6 @@ Nevertheless, AAS servers may decide to use different paths depending on their c .Example of an AAS endpoint with an arbitrary path image::image88.png[width=481,height=110] -Upcoming implementations of AAS related servers may implement the version prefix “*api/v/*” to provide information of the specific major version regarding AAS Part 2 version, where denotes the implemented major version and denotes the minor version, e.g. “api/v3.0/” (see Figure 4). - Finally, it is recommended to include an additional "/description” endpoint into each service to further denote information about APIs / servers capabilities. This endpoint provides further information about the API and its supported profiles, and in particular the version of the profiles. The “/description” will be extended with additional information in later versions. ==== From ebfe8f1624b51ccd55fe5699535b09e4e6be19f3 Mon Sep 17 00:00:00 2001 From: Sebastian Bader Date: Mon, 15 Apr 2024 17:46:57 +0200 Subject: [PATCH 7/7] add change log for filevalue/value and blobvalue/value --- .../IDTA-01002-3/modules/ROOT/pages/IDTA-01002_ChangeLog.adoc | 2 ++ 1 file changed, 2 insertions(+) diff --git a/documentation/IDTA-01002-3/modules/ROOT/pages/IDTA-01002_ChangeLog.adoc b/documentation/IDTA-01002-3/modules/ROOT/pages/IDTA-01002_ChangeLog.adoc index 6b942470..8bd4732d 100644 --- a/documentation/IDTA-01002-3/modules/ROOT/pages/IDTA-01002_ChangeLog.adoc +++ b/documentation/IDTA-01002-3/modules/ROOT/pages/IDTA-01002_ChangeLog.adoc @@ -73,6 +73,8 @@ Major: * Remove the QueryParameter “level” from all requests ending with /$metadata in the OpenAPI files. * Change the values for the ServiceDescription class from enum to a list of strings in the OpenAPI definition for the Part 2 classes. * Clause 11.4.2 and 11.4.3: Change the ValueOnly attribute “annotation” to “annotations” for the AnnotatedRelationshipElementValue class in the examples and schema to match the “AnnotatedRelationshipElement/annotation” attribute. OpenAPI files had the right attribute already. +* Clause 11.4.2: Add serialisation rule for empty "FileValue/value" and "BlobValue/value". +* Clause 11.4.3: Adjust ValueOnly schema so that "FileValue/value" and "BlobValue/value" ar optional but non-empty attributes. * Clause 12.3: Relax the requirements for API paths and version declaration. * (Editorial) Clause 12.8: Added constraint on the return object for ValueOnly requests and that the Level modifier is undefined for Metadata requests