@@ -8,41 +8,50 @@ does not require authorization.
8
8
9
9
## Schemas & Contexts
10
10
11
- All protocol [ =Messages=] are normatively defined by a [[ json-schema]] . This specification also uses JSON-LD 1.1 and provides
12
- a JSON-LD context to serialize data structures and [ =Message=] types as it facilitates extensibility. The JSON-LD context is
13
- designed to produce [ =Message=] serializations using compaction that validate against the Json Schema for the given [ =Message= ]
14
- type. This allows implementations to choose whether to process [ =Messages=] as plain JSON or as JSON-LD and maintain
15
- interoperability between those approaches. Extensions that use JSON-LD are encouraged to provide similar contexts that
16
- facilitate this approach to interoperability.
11
+ All protocol [ =Messages=] are normatively defined by a [[ json-schema]] . This specification also uses JSON-LD 1.1 and
12
+ provides a JSON-LD context to serialize data structures and [ =Message=] types as it facilitates extensibility. The
13
+ JSON-LD context is designed to produce [ =Message=] serializations using compaction that validate against the Json Schema
14
+ for the given [ =Message= ] type. This allows implementations to choose whether to process [ =Messages=] as plain JSON or
15
+ as JSON-LD and maintain interoperability between those approaches. Extensions that use JSON-LD are encouraged to provide
16
+ similar contexts that facilitate this approach to interoperability.
17
17
18
18
## Exposure of Versions {#exposure-of-dataspace-protocol-versions}
19
19
20
20
### Generic Definition
21
21
22
- [ =Connectors=] implementing the [ =Dataspace Protocol=] may operate on different versions. Therefore, it is necessary that
23
- they can discover the supported versions of each other reliably and unambiguously. Each [ =Connector=] must expose
24
- information of at least one Dataspace Protocol Version it supports. The specifics of how this information is obtained
22
+ [ =Connectors=] implementing the [ =Dataspace Protocol=] may operate on different versions. Therefore, it is necessary
23
+ that they can discover the supported versions of each other reliably and unambiguously. Each [ =Connector=] must expose
24
+ information of at least one Dataspace Protocol version it supports. The specifics of how this information is obtained
25
25
its defined by specific protocol bindings.
26
26
27
27
A [ =Connector=] must respond to a respective request by providing a JSON object containing an array of supported
28
28
versions with at least one item. The item connects the version tag (` version ` attribute) with the absolute URL path
29
- segment of the root path for all endpoints of this version. The following example specifies that this [ =Connector=]
30
- offers version ` 1.0 ` endpoints at ` <host>/some/path/v1 ` .
29
+ segment of the domain-only path for all endpoints of this version. The following example specifies that
30
+ this [ =Connector=] offers version ` 2024-1 ` endpoints at ` <host>/some/path/2024-1 ` , the ` 2025-1 ` endpoints at
31
+ ` <host>/some/path/2025-1 ` and another [ =Connector=] on the same host under ` <host>/different/path/2025-1 ` .
31
32
32
33
``` json
33
34
{
34
35
"protocolVersions" : [
35
36
{
36
- "version" : " 1.0" ,
37
- "path" : " /some/path/v1"
37
+ "version" : " 2024-1" ,
38
+ "path" : " /some/path/2024-1"
39
+ },
40
+ {
41
+ "version" : " 2025-1" ,
42
+ "path" : " /some/path/2025-1"
43
+ },
44
+ {
45
+ "version" : " 2025-1" ,
46
+ "path" : " /different/path/2025-1"
38
47
}
39
48
]
40
49
}
41
50
```
42
51
43
- This data object must comply to the [ JSON Schema] ( message/schema/protocol-version-schema.json ) . The requesting [ =Connector= ] may select
44
- from the endpoints in the response. If the [ =Connector=] can't identify a matching Dataspace Protocol Version, it must
45
- terminate the communication.
52
+ This data object must comply to the [ JSON Schema] ( message/schema/protocol-version-schema.json ) . The requesting
53
+ [ =Connector= ] may select from the endpoints in the response. If the [ =Connector=] can't identify a matching Dataspace
54
+ Protocol Version, it must terminate the communication.
46
55
47
56
### HTTPS Binding
48
57
@@ -55,9 +64,5 @@ Resource Identifier [[rfc8615]] at the top of the path hierarchy:
55
64
/.well-known/dspace-version
56
65
```
57
66
58
- The contents of the response is a JSON object defined in section [[[ #exposure-of-dataspace-protocol-versions]]] .
59
-
60
- Note that if multiple [ =Connectors=] are hosted under the same base URL, a path segment appended to the base well-known
61
- URL can be used, for example, ` https://example.com/.well-known/dspace-version/connector1. `
62
-
63
- The version endpoint MUST be unprotected and unversioned.
67
+ The contents of the response is a JSON object defined in section [[[ #exposure-of-dataspace-protocol-versions]]] . The
68
+ version endpoint MUST be unversioned and unauthenticated.
0 commit comments