-
Notifications
You must be signed in to change notification settings - Fork 26
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add capability to advertise the EDR profile supported by a service #404
Comments
This would be an optional link. It could for example point to a community agreed best practice documentation. |
Two good examples of useing this mechanism are: |
@ShaneMill1 @solson-nws Having discussed this with @iandruska-ibl , are you happy to put this into V1.1? |
@m-burgoyne I am beginning to attempt to prototype how this would work. Do you have any examples of what the profile payload would look like? |
As a the profile URI should resolve to a template that the service MUST match to be compliant with the named profile an OpenAPI document would be ideal response. The response from the services OpenAPI provides a standard way to define the collection names, queries, response schemas and formats that must be provided. |
How do profiles relate to conformance? For example, the WMO Core Metadata Profile 2 is a set of conformance classes (with requirements, recommendations and permissions) which articulate convention/specialization atop OGC API - Records. In this case, we use conformance (an API I suppose one can also use the link |
@m-burgoyne @tomkralidis I think we should be explicitly stating Supporting the ISO definition of a profile that may be an extension may be too ambitious. |
Users will be asked to clarify their requirements. |
@tomkralidis @ShaneMill1 @chris-little @solson-nws @iandruska-ibl @pnovotny-ibl Suggested approach to allow organisations to define an Add a conformance class to indicate that the EDR server is an implementation of an EDR profile If the conformance class is defined the service root response must include a link to the profile definition that link would be to an OpenAPI definition of the EDR profile for example:
The profile OpenAPI document in the link would exclude the servers field but would be defined at the level of detail required for the profile usecase. If required an OpenAPI document could define the collections, instances and location identifiers; codify the parameter-name, format and crs values as enumerated lists and provide a definition of the data output schemas (as needed). The tests to support the conformance class could be written to use the server name from service OpenAPI endpoint but construct test queries based on the details provided in the profile OpenAPI document. This would remove the need to create custom conformance classes for each Having both OpenAPI documents would allow an EDR service to offer a superset of the profile specification and ensure that a server did not have a dependancy on access to the profile document (as it access would only be needed when a service was being validated against the profile). This approach could also be used (with another conformance class) for pub/sub profiles using AsyncAPI documents. |
@m-burgoyne This may be a dumb question, but you mention the "profile" being a conformance class and show a dictionary containing href, hreflang, rel, title, and type. However, when you go to /conformance in EDR, you get this:
Basically a dictionary with the conformsTo key, and the values being a list of schemas that EDR conformsTo. How does your example fit with the /conformance endpoint? Could you provide an example of the full response? |
@ShaneMill1 It's not a dumb question as I only included examples of the new link entries to the
The corresponding tests for this conformance class, would be to check that a link definition exists at the EDR root for an OpenAPI document that describes the functionality required to be compliant and interoperable and to run tests driven by the contents of that OpenAPI document.
|
@m-burgoyne Thanks a lot for the examples, this really brought it together for me and I agree with the approach |
A need has been identified to define profiles for EDR services, e.g. to allow services to advertise that they are using agreed conventions for Parameter ids or Instance representations. Adding link to the links section of a collection with an IANA link-relation of
profile
would allow clients to easily detect which (if any) profile a collection supports. The link could be used as both a link to documentation for the profile and as a unique identifier.e.g.
{
"href": "https://reference.server.org/profile/monitoring-station-data
"hreflang": "en",
"rel": "profile",
"title": "monitoring-station-data",
"type": "text/html"
}
The text was updated successfully, but these errors were encountered: