Skip to content
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

Include a list of conformance classes somewhere? #9

Closed
cportele opened this issue Nov 8, 2017 · 4 comments · Fixed by #42
Closed

Include a list of conformance classes somewhere? #9

cportele opened this issue Nov 8, 2017 · 4 comments · Fixed by #42

Comments

@cportele
Copy link
Member

cportele commented Nov 8, 2017

The goal is to support both types of developers:

  • those that have never heard about WFS - it should be possible to create a client using the OpenAPI definition (they may need to learn a little bit about geometry, etc., but it should not be required to read the WFS spec, for example);
  • those that want to write a "generic" client that can access WFSs (and maybe WMSs, etc), i.e. are not specific for an specific API/server.

To make it simpler for the second group, should we include somewhere an array of requirements classes met by the server?

This could either be in the root resource or in some extension element in the OpenAPI document.
Here an example how this could be added to the root resource:

{
   "collections" : [ ... ],
   "conformsTo" : [ 
       "http://www.opengis.net/spec/wfs-1/3.0/req/core", 
       "http://www.opengis.net/spec/wfs-1/3.0/req/geojson" 
    ]
}

Those that do not care about WFS etc. could simply ignore that information.

@cportele
Copy link
Member Author

Discussed during the meeting on 2017-11-28: Add this in a separate access path. This pattern could also be used for other information from the current capabilities that we want to expose. Ties in to the idea to use a hypermedia-based approach. Specify the link-relations to the additional resources.

@cmheazel
Copy link
Contributor

cmheazel commented Feb 1, 2018

I hate to stir things up, but have you considered the Tag object? These are OpenAPI objects which "can be used for logical grouping of operations by resources or any other qualifier." The OpenAPI object maintains a list of all tags used by that API and each Operation object (part of the Path) maintains a list of those tags applicable to that operation. Using tags would allow us to identify compliance classes at both the API and operation level.

@cportele
Copy link
Member Author

cportele commented Feb 1, 2018

@cmheazel The "problem" with using Tags for this purpose is that they group operations, but conformance/requirements classes do not fit. For example, a requirements class may just add an additional query parameter to an existing operation. And this is just one example. If every operation would belong to exactly one of those, then Tags would work.

Another (probably unwanted) side effect would be that operations are grouped by conformance class in HTML representations (at least in Swagger UI), but a publisher might prefer a different presentation. For example, in the sample OpenAPI/Swagger definition we have two tags: "Capabilities" for operations that describe "essential characteristics of this API including information about the data" and "Features" for operations that provide "access to data (features)".

@cportele
Copy link
Member Author

cportele commented Feb 1, 2018

Agreement on 2018-02-01: Keep the decision from 2017-11-28.

Use /api/conformance.

cportele added a commit that referenced this issue Feb 13, 2018
@cportele cportele mentioned this issue Feb 13, 2018
cportele pushed a commit that referenced this issue Jan 18, 2021
Update descriptions of the components of the schema.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants