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.