--- swagger: '2.0' info: version: 1.0.0 title: GeoServer Parameter Extractor description: A parameter extractor rule allows specific request parameters as URL path fragments instead of using the query string. A echo parameter makes sure that certain URL paratemers are added to the capabilities documents backlinks. contact: name: GeoServer email: 'geoserver-users@osgeo.org' url: 'https://geoserver.org/comm/' host: localhost:8080 basePath: /geoserver/rest paths: /params-extractor/echoes: get: operationId: getEchoParameters tags: - "ParamsExtractor" summary: Get a list of echo parameters description: List all echo parameters currently configured. Use the "Accept:" header to specify format or append an extension to the endpoint (example "/datastores.xml" for XML) produces: - application/xml - application/json responses: 200: description: OK schema: $ref: "#/definitions/EchoParameters" examples: application/xml: | 0 application/json: | {"EchoParameters": {"EchoParameter": [ { "id": 0, "href": "http://localhost:8080/geoserver/rest/params-extractor/echoes/0.json" } ]}} post: operationId: postEchoParameter tags: - "ParamsExtractor" summary: Create a new echo parameter description: Adds a new echo parameter parameters: - $ref: '#/parameters/echoBodyParameter' consumes: - application/xml - application/json responses: 201: description: Created schema: type: string headers: Location: description: URL where the newly created echo parameter can be found type: string /params-extractor/echoes/{parameterId}: get: operationId: getEchoParameter tags: - "ParamsExtractor" summary: Retrieve a particular echo parameter definition description: Controls a particular echo parameter. Use the "Accept:" header to specify format or append an extension to the endpoint (example "/echos/{parameterId}.xml" for XML). produces: - application/xml - application/json parameters: - name: parameterId in: path required: true description: The identifier of the echo parameter to retrieve. type: string responses: 200: description: OK schema: $ref: "#/definitions/EchoParameter" examples: application/xml: | application/json: | {"EchoParameter": { "id": 0, "parameter": "CQL_FILTER", "activated": true }} put: operationId: putEchoParameter tags: - "ParamsExtractor" summary: Modify an echo parametr description: Modify an echo parameter parameters: - name: parameterId in: path required: true description: The identifier of the echo parameter to retrieve. type: string - $ref: '#/parameters/echoBodyParameter' consumes: - application/xml - application/json responses: 200: description: The echo parameter was successfully updated. delete: operationId: deleteEchoParameter tags: - "ParamsExtractor" summary: Delete an echo parameter description: Deletes an echo parameter from the configuration parameters: - name: parameterId in: path required: true description: The identifier of the echo parameter to retrieve. type: string responses: 200: description: OK /params-extractor/rules: get: operationId: getRules tags: - "ParamsExtractor" summary: Get a list of rules description: List all rules currently configured. Use the "Accept:" header to specify format or append an extension to the endpoint (example "/datastores.xml" for XML) produces: - application/xml - application/json responses: 200: description: OK schema: $ref: "#/definitions/Rules" examples: application/xml: | 0 application/json: | {"Rules": {"Rule": [ { "id": 0, "href": "http://localhost:8080/geoserver/rest/params-extractor/rules/0.json" } ]}} post: operationId: postRule tags: - "ParamsExtractor" summary: Create a new rule description: Adds a new rule parameters: - $ref: '#/parameters/ruleBodyParameter' consumes: - application/xml - application/json responses: 201: description: Created schema: type: string headers: Location: description: URL where the newly created rule can be found type: string /params-extractor/rules/{ruleId}: get: operationId: getRule tags: - "ParamsExtractor" summary: Retrieve a particular rule definition description: Controls a particular rule . Use the "Accept:" header to specify format or append an extension to the endpoint (example "/echos/{parameterId}.xml" for XML). produces: - application/xml - application/json parameters: - name: ruleId in: path required: true description: The identifier of the rule to retrieve. type: string responses: 200: description: OK schema: $ref: "#/definitions/Rule" examples: application/xml: | application/json: | {"Rule": { "id": 0, "activated": true, "position": 3, "parameter": "cql_filter", "transform": "seq='$2'", "remove": 1 }} put: operationId: putRule tags: - "ParamsExtractor" summary: Modify a rule description: Modify a rule parameters: - name: ruleId in: path required: true description: The identifier of the echo parameter to retrieve. type: string - $ref: '#/parameters/ruleBodyParameter' consumes: - application/xml - application/json responses: 200: description: The rule was successfully updated. delete: operationId: deleteRule tags: - "ParamsExtractor" summary: Delete a rule description: Deletes a rule from the configuration parameters: - name: ruleId in: path required: true description: The identifier of the rule to retrieve. type: string responses: 200: description: OK parameters: echoBodyParameter: name: body in: body schema: $ref: '#/definitions/EchoParameter' ruleBodyParameter: name: body in: body schema: $ref: '#/definitions/Rule' definitions: EchoParameters: title: Echo parameter links list type: array items: title: echoParameterListItem type: object properties: id: type: string description: Identifeir of the echo paameter link: type: string description: URL to the echo parameter definition EchoParameter: title: EchoParameter type: object properties: id: type: string description: identifier of the echo parameter parameter: type: string description: The parameter name activated: type: boolean description: Whether or not the parameter echoing is active Rules: title: Rule link list type: array items: title: ruleListItem type: object properties: id: type: string description: Identifeir of the rule link: type: string description: URL to the rule definition Rule: title: Rule type: object properties: id: type: string description: identifier of the rule activated: type: boolean description: Whether or not the parameter echoing is active position: type: integer description: The position of the URL base path element to be selected parameter: type: string description: The name of the parameter produced by this rule transform: type: string description: Expression that defines the value of the parameter, use {PARAMETER} as a placeholder for the selected path element match: type: string description: Regex match expression with groups, for example ^(?:/[^/]*){3}(/([^/]+)).*$ selects the URL base path third element activation: type: string description: If defined this rule will only be applied to URLs that match this regex expression remove: type: integer description: The match expression group to be removed from URL, by default 1 combine: type: string description: Defines how to combine parameter existing value ($1 existing value, $2 new value), by default the value is overridden