Geoserver - OGC API Features - API Definition

220 Views Asked by At

I use geoserver-2.16.x-2020-02-19-war in combination with the corresponding OGC API module.

I use Shape files as data basis and everything works fine.

Within the API Definition document i find the path definition:

/collections/{collectionId}:
get:
  tags:
  - Capabilities
  summary: describe the feature collection with id `collectionId`
  operationId: describeCollection
  parameters:
  - $ref: '#/components/parameters/collectionId'
  - $ref: '#/components/parameters/otherParameters'
  responses:
    "200":
      content:
        application/x-yaml:
          schema:
            type: string
            format: binary
        application/json:
          schema:
            type: string
            format: binary
        application/cbor:
          schema:
            type: string
            format: binary
        text/html:
          schema:
            type: string
      $ref: '#/components/responses/Collection' 

The $ref reference ('#/components/responses/Collection') contains the following information:

content:
    application/json:
      schema:
        $ref: '#/components/schemas/collection'
      example:
        id: buildings
        title: Buildings
        description: Buildings in the city of Bonn.
        extent:
          spatial:
            bbox:
            - - 7.01
              - 50.63
              - 7.22
              - 50.78
          temporal:
            interval:
            - - 2010-02-15T12:34:56Z
              - null
        links:
        - href: http://data.example.org/collections/buildings/items
          rel: items
          type: application/geo+json
          title: Buildings
        - href: http://data.example.org/collections/buildings/items.html
          rel: items
          type: text/html
          title: Buildings
        - href: https://creativecommons.org/publicdomain/zero/1.0/
          rel: license
          type: text/html
          title: CC0-1.0
        - href: https://creativecommons.org/publicdomain/zero/1.0/rdf
          rel: license
          type: application/rdf+xml
          title: CC0-1.0
    text/html:
      schema:
        type: string

Now my first question: why are there different response media types specified in '#/components/responses/Collection/content' and '#/paths/collections/{collectionId}/get/responses/200/content' and what is their relation?

My second question:

I'm able to request any corresponding /collections/{collectionId} document with the URLs:

.../collections/{collectionId}?f=text/html
.../collections/{collectionId}?f=application/json
.../collections/{collectionId}?f=application/cbor
.../collections/{collectionId}?f=application/x-yaml

Why is that possible altough no corresponding parameter 'f' is defined under /collections/{collectionId}/get/parameters?

Note: I read the Swagger OpenAPI Specification. But i was not able to find any answers to these questions.

Thank you very much for your help.

0

There are 0 best solutions below