diff --git a/api/server-server/keys_query.yaml b/api/server-server/keys_query.yaml index e616915b..4989f7fa 100644 --- a/api/server-server/keys_query.yaml +++ b/api/server-server/keys_query.yaml @@ -44,8 +44,10 @@ paths: type: string description: |- **Deprecated**. Servers should not use this parameter and instead - opt to return all keys, not just the requested one. The key ID to + opt to return all keys, not just the requested one. The key ID to look up. + + When excluded, the trailing slash on this endpoint is optional. required: false x-example: "ed25519:abc123" - in: query @@ -53,7 +55,7 @@ paths: type: integer format: int64 description: |- - A millisecond POSIX timestamp in milliseconds indicating when the returned + A millisecond POSIX timestamp in milliseconds indicating when the returned certificates will need to be valid until to be useful to the requesting server. If not supplied, the current time as determined by the notary server is used. @@ -114,7 +116,7 @@ paths: format: int64 description: |- A millisecond POSIX timestamp in milliseconds indicating when - the returned certificates will need to be valid until to be + the returned certificates will need to be valid until to be useful to the requesting server. If not supplied, the current time as determined by the notary diff --git a/api/server-server/keys_server.yaml b/api/server-server/keys_server.yaml index 69985ab7..465bb294 100644 --- a/api/server-server/keys_server.yaml +++ b/api/server-server/keys_server.yaml @@ -51,6 +51,8 @@ paths: **Deprecated**. Servers should not use this parameter and instead opt to return all keys, not just the requested one. The key ID to look up. + + When excluded, the trailing slash on this endpoint is optional. required: false x-example: "ed25519:abc123" deprecated: true diff --git a/changelogs/server_server/newsfragments/2097.clarification b/changelogs/server_server/newsfragments/2097.clarification new file mode 100644 index 00000000..10dcecb6 --- /dev/null +++ b/changelogs/server_server/newsfragments/2097.clarification @@ -0,0 +1 @@ +Clarify that the trailing slash is optional on ``/keys/*`` endpoints when no key ID is requested. diff --git a/specification/index.rst b/specification/index.rst index 33dff5a3..375e19c0 100644 --- a/specification/index.rst +++ b/specification/index.rst @@ -425,6 +425,42 @@ dedicated API. The API is symmetrical to managing Profile data. Would it really be overengineered to use the same API for both profile & private user data, but with different ACLs? + +Common concepts +--------------- + +Various things are common throughout all of the Matrix APIs. They are +documented here. + +Trailing slashes on API endpoints +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Unless the endpoint is explicltly specified to have a trailing slash, the +slash is optional. For example, an endpoint specified as ``/_matrix/example/`` +would require a trailing slash, however an endpoint specified as ``/_matrix/example`` +has an optional slash (can be excluded when making requests). + +Namespacing +~~~~~~~~~~~ + +Namespacing helps prevent conflicts between multiple applications and the specification +itself. Where namespacing is used, ``m.`` prefixes are used by the specification to +indicate that the field is controlled by the specification. Custom or non-specified +namespaces used in the wild SHOULD use the Java package naming convention to prevent +conflicts. + +As an example, event types are namespaced under ``m.`` in the specification however +any client can send a custom event type, such as ``com.example.game.score`` without +needing to put the event into the ``m.`` namespace. + +Timestamps +~~~~~~~~~~ + +Unless otherwise stated, timestamps are measured as milliseconds since the Unix epoch. +Throughout the specification this may be referred to as POSIX, Unix, or just "time in +milliseconds". + + .. _`room versions`: Room Versions