opengeospatial / ets-ogcapi-features10

Public Repository for the OGC API - Features Compliance Test Suite
Other
16 stars 6 forks source link

Geonovum OGC-API validator finds more errors than the Cite-validator #244

Open PB-GNM opened 2 months ago

PB-GNM commented 2 months ago

Describe the bug Geonovum has build an online OGC-API validator: https://geonovum-labs.github.io/ogc-checker/?#/ogc-api It seems to find more errors than the cite-validator does.

Is the Geonovum validator to strict, or is the Cite-validator not strict enough?

To Reproduce Steps to reproduce the behaviour: Test https://geonovum-labs.github.io/ogc-checker/?#/ogc-api with: • https://apitestbed.geonovum.nl/adr_pygeoapi/v1/openapi.jsonhttps://geonovum.geosolutionsgroup.com/geoserver/inspire/ogc/features/v1/openapi.jsonhttps://test.haleconnect.de/ogcapi/datasets/simplified-addresses/v1/openapi.json

Expected behavior No errors were expected, since the 3 API's had no error in the cite-validator

Screenshots image

Additional context Geonovum was asked to report this problem here as an issue and to show the found errors in relation to the requirements. See below:

On https://apitestbed.geonovum.nl/adr_pygeoapi/v1/openapi.json :

[/req/oas30/oas-definition-2] The JSON representation SHALL conform to the OpenAPI Specification, version 3.0. "enum" property must not have fewer than 1 items. [22 times on several requirement] A successful execution of the operation SHALL be reported as a response with a HTTP status code 200. Response schema is not compatible. Property "rel" must be required. (schema path: "links") [/req/core/conformance-success] A successful execution of the operation SHALL be reported as a response with a HTTP status code 200. Response schema is not compatible. Property "conformsTo" must be required. Required property "conformsTo" is missing.

on https://geonovum.geosolutionsgroup.com/geoserver/inspire/ogc/features/v1/openapi.json : [/req/oas30/oas-definition-2] The JSON representation SHALL conform to the OpenAPI Specification, version 3.0. Operation must define parameter "{collectionId}" as expected by path "/collections/{collectionId}/search". [5 times on several requirement] A successful execution of the operation SHALL be reported as a response with a HTTP status code 200. Response schema is not compatible. Property "rel" must be required. (schema path: "links")

on https://test.haleconnect.de/ogcapi/datasets/simplified-addresses/v1/openapi.json : [/req/core/f-response] A successful execution of the operation SHALL be reported as a response with a HTTP status code 200. [/req/core/sfc-md-success] A successful execution of the operation SHALL be reported as a response with a HTTP status code 200. [/req/core/conformance-success] A successful execution of the operation SHALL be reported as a response with a HTTP status code 200. [/req/core/fc-md-success] A successful execution of the operation SHALL be reported as a response with a HTTP status code 200. [/req/core/fc-bbox-definition] The operation SHALL support a parameter bbox. Parameter object is not compatible with: {"name":"bbox","in":"query","explode":false,"schema":{"type":"array","oneOf":[{"minItems":4,"maxItems":4},{"minItems":6,"maxItems":6}],"items":{"type":"number"}}}. [/req/core/fc-response] A successful execution of the operation SHALL be reported as a response with a HTTP status code 200. [/req/core/root-success] A successful execution of the operation SHALL be reported as a response with a HTTP status code 200.

Regards, Pieter Bresters

dstenger commented 2 months ago

Thanks for reporting. We will do further investigation and come back to you as soon as we have results.

dstenger commented 2 months ago

This test suite covers following conformance classes:

Also see https://cite.ogc.org/te2/about/ogcapi-features-1.0/1.0/site/.

The Geonovum validator only lists other conformance classes (oas30 and geojson) for • https://apitestbed.geonovum.nl/adr_pygeoapi/v1/openapi.jsonhttps://geonovum.geosolutionsgroup.com/geoserver/inspire/ogc/features/v1/openapi.json

https://test.haleconnect.de/ogcapi/datasets/simplified-addresses/v1/openapi.json also contains Core failures.

Checking https://test.haleconnect.de/ogcapi/datasets/simplified-addresses/v1/openapi.json more in detail

For most requests there is no HTTP status code 200 returned. I guess that following entry of the tested API is not correct:

...
  "servers": [
    {
      "url": "/ogcapi/datasets/simplified-addresses/v1"
    }
  ],
...

The CITE test suite has a fallback for this case just appending the path to the URL of the landing page if the server url does not contain the path of the landing page.

Is there a way to retrieve the exact requests the Geonovum validator is sending? Otherwise, it is hard to reproduce the reported errors.