---
swagger: '2.0'
info:
version: 1.0.0
title: GeoServer Layers
description: A layer is a published resource (feature type or coverage).
contact:
name: GeoServer
email: 'geoserver-users@osgeo.org'
url: 'https://geoserver.org/comm/'
host: localhost:8080
basePath: /geoserver/rest
paths:
/layers:
get:
operationId: layersGet
tags:
- "Layers"
summary: Get a list of layers
description: Displays a list of all layers on the server. You must use the "Accept:" header to specify format or append an extension to the endpoint (example "/layers.xml" for XML)
produces:
- text/html
- application/xml
- application/json
responses:
200:
description: OK
schema:
$ref: "#/definitions/Layers"
examples:
application/xml: |
tiger:giant_polygon
sf:bugsites
application/json: |
{
"layers": {
"layer": [
{
"name": "tiger:giant_polygon",
"href": "http:\/\/localhost:8080\/geoserver\/rest\/layers\/tiger%3Agiant_polygon.json"
},
{
"name": "sf:bugsites",
"href": "http:\/\/localhost:8080\/geoserver\/rest\/layers\/sf%3Abugsites.json"
},
]
}
}
post:
operationId: layersPost
tags:
- "Layers"
description: Invalid. To create a new layer, instead POST to one of `/workspaces/{workspaceName}/coveragestores/{coveragestoreName}/coverages`, `/workspaces/{workspaceName}/datastores/{datastoreName}/featuretypes`, `/workspaces/{workspaceName}/wmsstores/{wmsstoreName}/wmslayers`, or `/workspaces/{workspaceName}/wmtsstores/{wmststoreName}/wmtslayers`
responses:
405:
description: Method not allowed.
put:
operationId: layersPut
tags:
- "Layers"
description: Invalid. To edit a layer, use PUT on an individual layer instead.
responses:
405:
description: Method not allowed.
delete:
operationId: layersDelete
tags:
- "Layers"
description: Invalid.
responses:
405:
description: Method not allowed.
/layers/{layerName}:
get:
operationId: layersNameGet
tags:
- "Layers"
summary: Retrieve a layer
description: Retrieves a single layer definition. Use the "Accept:" header to specify format or append an extension to the endpoint (example "/layers/{layer}.xml" for XML).
produces:
- application/xml
- application/json
- text/html
parameters:
- name: layerName
in: path
required: true
description: The name of the layer to retrieve.
type: string
responses:
200:
description: OK
schema:
$ref: "#/definitions/Layer"
examples:
application/xml: |
poi
/
VECTOR
poi
poi
0
0
application/json: |
{
"layer": {
"name": "poi",
"path": "/",
"type": "VECTOR",
"defaultStyle": {
"name": "poi",
"href": "http://localhost:8080/geoserver/rest/styles/poi.json"
},
"styles": {
"@class": "linked-hash-set",
"style": [
{
"name": "burg",
"href": "http://localhost:8080/geoserver/rest/styles/burg.json"
},
{
"name": "point",
"href": "http://localhost:8080/geoserver/rest/styles/point.json"
}
]
},
"resource": {
"@class": "featureType",
"name": "poi",
"href": "http://localhost:8080/geoserver/rest/workspaces/tiger/datastores/nyc/featuretypes/poi.json"
},
"attribution": {
"logoWidth": 0,
"logoHeight": 0
}
}
}
post:
operationId: layersNamePost
tags:
- "Layers"
description: Invalid. To create a new layer, instead POST to one of `/workspaces/{workspaceName}/coveragestores/{coveragestoreName}/coverages`, `/workspaces/{workspaceName}/datastores/{datastoreName}/featuretypes`, `/workspaces/{workspaceName}/wmsstores/{wmsstoreName}/wmslayers`, or `/workspaces/{workspaceName}/wmtsstores/{wmststoreName}/wmtslayers`
responses:
405:
description: Method not allowed.
put:
operationId: layersNamePut
tags:
- "Layers"
summary: Modify a layer.
description: Modifies an existing layer on the server. Use the "Accept:" header to specify format or append an extension to the endpoint (example "/layers/{layer}.xml" for XML).
parameters:
- name: layerName
in: path
required: true
description: The name of the layer to modify.
type: string
- name: layerBody
in: body
description: The updated layer definition.
required: true
schema:
$ref: "#/definitions/Layer"
consumes:
- application/xml
- application/json
responses:
200:
description: The layer was successfully updated.
delete:
operationId: layersNameDelete
tags:
- "Layers"
summary: Delete layer
description: Deletes a layer from the server.
parameters:
- name: layerName
in: path
required: true
description: The name of the layer to delete.
type: string
- name: recurse
in: query
description: Recursively removes the layer from all layer groups which reference it. If this results in an empty layer group, also delete the layer group. Allowed values for this parameter are true or false. The default value is false. A request with 'recurse=false' will fail if any layer groups reference the layer.
required: false
type: boolean
default: false
responses:
200:
description: OK
/workspaces/{workspaceName}/layers:
get:
operationId: layersWorkspaceGet
tags:
- "Layers"
summary: Get a list of layers in a workspace.
description: Displays a list of all layers in the provided workspace. You must use the "Accept:" header to specify format or append an extension to the endpoint (example "/layers.xml" for XML)
parameters:
- name: workspaceName
in: path
required: true
description: The name of the workspace to list layers in
type: string
produces:
- text/html
- application/xml
- application/json
responses:
200:
description: OK
schema:
$ref: "#/definitions/Layers"
examples:
application/xml: |
bugsites
application/json: |
{
"layers": {
"layer": [
{
"name": "bugsites",
"href": "http:\/\/localhost:8080\/geoserver\/rest\/workspaces\/sf\/layers\/bugsites.json"
},
]
}
}
post:
operationId: layersWorkspacePost
tags:
- "Layers"
description: Invalid. To create a new layer, instead POST to one of `/workspaces/{workspaceName}/coveragestores/{coveragestoreName}/coverages`, `/workspaces/{workspaceName}/datastores/{datastoreName}/featuretypes`, `/workspaces/{workspaceName}/wmsstores/{wmsstoreName}/wmslayers`, or `/workspaces/{workspaceName}/wmtsstores/{wmststoreName}/wmtslayers`
responses:
405:
description: Method not allowed.
put:
operationId: layersWorkspacePut
tags:
- "Layers"
description: Invalid. To edit a layer, use PUT on an individual layer instead.
responses:
405:
description: Method not allowed.
delete:
operationId: layersWorkspaceDelete
tags:
- "Layers"
description: Invalid.
responses:
405:
description: Method not allowed.
/workspaces/{workspaceName}/layers/{layerName}:
get:
operationId: layersNameWorkspaceGet
tags:
- "Layers"
summary: Retrieve a layer
description: Retrieves a single layer definition. Use the "Accept:" header to specify format or append an extension to the endpoint (example "/layers/{layer}.xml" for XML).
produces:
- application/xml
- application/json
- text/html
parameters:
- name: workspaceName
in: path
required: true
description: The name of the workspace the layer is in.
type: string
- name: layerName
in: path
required: true
description: The name of the layer to retrieve.
type: string
responses:
200:
description: OK
schema:
$ref: "#/definitions/Layer"
examples:
application/xml: |
poi
/
VECTOR
poi
poi
0
0
application/json: |
{
"layer": {
"name": "poi",
"path": "/",
"type": "VECTOR",
"defaultStyle": {
"name": "poi",
"href": "http://localhost:8080/geoserver/rest/styles/poi.json"
},
"styles": {
"@class": "linked-hash-set",
"style": [
{
"name": "burg",
"href": "http://localhost:8080/geoserver/rest/styles/burg.json"
},
{
"name": "point",
"href": "http://localhost:8080/geoserver/rest/styles/point.json"
}
]
},
"resource": {
"@class": "featureType",
"name": "poi",
"href": "http://localhost:8080/geoserver/rest/workspaces/tiger/datastores/nyc/featuretypes/poi.json"
},
"attribution": {
"logoWidth": 0,
"logoHeight": 0
}
}
}
post:
operationId: layersNameWorkspacePost
tags:
- "Layers"
description: Invalid. To create a new layer, instead POST to one of `/workspaces/{workspaceName}/coveragestores/{coveragestoreName}/coverages`, `/workspaces/{workspaceName}/datastores/{datastoreName}/featuretypes`, `/workspaces/{workspaceName}/wmsstores/{wmsstoreName}/wmslayers`, or `/workspaces/{workspaceName}/wmtsstores/{wmststoreName}/wmtslayers`
responses:
405:
description: Method not allowed.
put:
operationId: layersNameWorkspacePut
tags:
- "Layers"
summary: Modify a layer.
description: Modifies an existing layer on the server. Use the "Accept:" header to specify format or append an extension to the endpoint (example "/layers/{layer}.xml" for XML).
parameters:
- name: workspaceName
in: path
required: true
description: The name of the workspace the layer is in.
- name: layerName
in: path
required: true
description: The name of the layer to modify.
type: string
- name: layerBody
in: body
description: The updated layer definition.
required: true
schema:
$ref: "#/definitions/Layer"
consumes:
- application/xml
- application/json
responses:
200:
description: The layer was successfully updated.
delete:
operationId: layersNameWorkspaceDelete
tags:
- "Layers"
summary: Delete layer
description: Deletes a layer from the server.
parameters:
- name: workspaceName
in: path
required: true
description: The name of the workspace the layer is in.
- name: layerName
in: path
required: true
description: The name of the layer to delete.
type: string
- name: recurse
in: query
description: Recursively removes the layer from all layer groups which reference it. If this results in an empty layer group, also delete the layer group. Allowed values for this parameter are true or false. The default value is false. A request with 'recurse=false' will fail if any layer groups reference the layer.
required: false
type: boolean
default: false
responses:
200:
description: OK
definitions:
Layers:
title: layers
type: object
properties:
layers:
$ref: "#/definitions/LayerReference"
LayerReference:
title: layers
type: object
properties:
name:
type: string
description: Name of layer
link:
type: string
description: URL to layer definition
Layer:
title: layer
xml:
name: layer
type: object
properties:
name:
type: string
description: Name of the layer
path:
type: string
description: Location of the layer in the WMS capabilities layer tree
type:
type: string
enum:
- VECTOR
- RASTER
- REMOTE
- WMS
- GROUP
description: Type of published layer. Can be VECTOR, RASTER, REMOTE, WMS or GROUP. Must be consistent with resource definition.
defaultStyle:
$ref: "#/definitions/StyleReference"
styles:
type: object
description: Avaialble styles for layer publication
properties:
'@class':
type: string
enum:
- linked-hash-set
description: required value linked-hash-set.
style:
type: array
items:
$ref: "#/definitions/StyleReference"
resource:
type: object
description: Resource supplying information for layer publication
properties:
'@class':
type: string
enum:
- featureType
default: featureType
description: required value featureType
name:
type: string
description: Name of resource
link:
type: string
readOnly: true
description: URL to the resource definition
opaque:
type: boolean
description: Controls layer transparency (whether the layer is opaque or transparent).
metadata:
type: array
items:
$ref: "#/definitions/MetadataEntry"
attribution:
type: object
description: WMS attribution information to be drawn on each map
properties:
title:
type: string
description: Human-readable text describing the data provider
href:
type: string
description: URL to data provider
logoURL:
type: string
description: Data provider logo
logoWidth:
type: integer
description: Data provider logo width
logoHeight:
type: integer
description: Data provider logo height
logoType:
type: string
description: Format of data provider logo, example "image/png"
authorityURLs:
type: array
items:
type: object
title: AuthorityURL
properties:
name:
type: string
description: Authory name, describing the industry, national or international origanization responsible for data product standard.
href:
type: string
description: URL to authority organization
identifiers:
type: array
items:
type: object
title: Identifier
properties:
authority:
type: string
description: Authority cited, for details see authorityURLs
identifier:
type: string
description: Work citied, often a data standard provided by
StyleReference:
type: object
title: style
description: Reference to style definition
properties:
name:
type: string
description: Name of style
link:
type: string
readOnly: true
description: URL to the style definition
MetadataEntry:
type: object
title: entry
properties:
'@key':
title: key
type: string
enum:
- buffer
description: Key used for metadata entry, additional keys are added over time
'$':
title: text
type: string
description: Text value for provided key Valid text depends on key used. Example {'@key'='buffer','$'='5'}") or 5