From ca0e1a8dee9482c0ee18e99b4e7cf194e4e4cfdd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ma=C3=ABl=20M=C3=A9liani?= <m.meliani@neogeo-online.net> Date: Fri, 4 Apr 2014 12:13:05 +0200 Subject: [PATCH] Updated docs... --- docs/mra-reference.md | 111 ++++++++++++++++ docs/pages/coveragestores.md | 1 + docs/pages/datastores.md | 229 ++++++++++++++++++++++++++++++++++ docs/pages/fonts.md | 1 + docs/pages/layergroups.md | 1 + docs/pages/layers.md | 1 + docs/pages/ogc-web-service.md | 1 + docs/pages/styles.md | 1 + docs/pages/workspaces.md | 109 ++++++++++++++++ 9 files changed, 455 insertions(+) create mode 100644 docs/mra-reference.md create mode 100644 docs/pages/coveragestores.md create mode 100644 docs/pages/datastores.md create mode 100644 docs/pages/fonts.md create mode 100644 docs/pages/layergroups.md create mode 100644 docs/pages/layers.md create mode 100644 docs/pages/ogc-web-service.md create mode 100644 docs/pages/styles.md create mode 100644 docs/pages/workspaces.md diff --git a/docs/mra-reference.md b/docs/mra-reference.md new file mode 100644 index 0000000..4c91b6c --- /dev/null +++ b/docs/mra-reference.md @@ -0,0 +1,111 @@ +# MapServer REST API Resources + +This section describes the REST configuration API. + +It is in process of writing... +Nevertheless, you could refer to the GeoServer Rest API documentation cause MRA was designed to offer compatibility with this model. +You will also find few _docstrings_ by reading the code, especially the module `server.py` which defines the URL mapping infrastructure and HTTP methods used by the REST API. + +### Workspaces + +A workspace is a grouping of data stores and coverage stores. + +A data store is a source of spatial data that is vector based. +It can be a file such as a _shapefile_ or a database such as _PostGIS_. +A data store contains one or more feature types which are vector based spatial resource. +In cases of a _shapefile_, the feature type is unique and corresponds to the data store. +In cases of a _PostGIS_ database, feature types corresponds to tables. + +A coverage store is a source of spatial data that is raster based. +In current version, it can only be a _GeoTIFF_ file. +For this format file, the coverage is unique and corresponds to the coverage store. + +Resource | Description +---------|------------ +[**GET workspaces**](pages/workspaces.md#get-workspaces) | Returns a list containing workspaces. +[**POST workspaces**](pages/workspaces.md#post-workspaces) | Creates a new workspace. +[**GET workspaces/_{ws}_**](pages/workspaces.md#get-workspaces-ws) | Returns the given workspace. +[**GET workspaces/_{ws}_/datastores**](pages/datastores.md#get-datastores) | Returns a list containing data stores in the given workspace. +[**POST workspaces/_{ws}_/datastores**](pages/datastores.md#post-datastores) | Creates a new data store. +[**GET workspaces/_{ws}_/datastores/_{ds}_**](pages/datastores.md#get-datastores-ds) | Returns data store _{ds}_. +[**PUT workspaces/_{ws}_/datastores/_{ds}_**](pages/datastores.md#put-datastores-ds) | Modifies data store _{ds}_. +[**DELETE workspaces/_{ws}_/datastores/_{ds}_**](pages/datastores.md#delete-datastores-ds) | Deletes data store _{ds}_. +[**PUT workspaces/_{ws}_/datastores/_{ds}_/file._{extension}_**](pages/datastores.md#put-datastores-ds-file-extension) | Uploads a vector data file from a local source. +**GET workspaces/_{ws}_/datastores/_{ds}_/featuretypes** | Returns a list containing all feature types in selected data store. +**POST workspaces/_{ws}_/datastores/_{ds}_/featuretypes** | Creates a new feature type. It creates the associated layer by default. +**GET workspaces/_{ws}_/datastores/_{ds}_/featuretypes/_{ft}_** | Returns feature type _{ft}_. +**PUT workspaces/_{ws}_/datastores/_{ds}_/featuretypes/_{ft}_** | Modifies feature type _{ft}_. +**DELETE workspaces/_{ws}_/datastores/_{ds}_/featuretypes/_{ft}_** | Delete feture type _{ft}_. +**GET workspaces/_{ws}_/coveragestores** | Returns a list containing coverage stores in the given workspace. +**POST workspaces/_{ws}_/coveragetores** | Creates a new coverage store. +**GET workspaces/_{ws}_/coveragestores/_{cs}_** | Returns coverage store _{cs}_. +**PUT workspaces/_{ws}_/coveragestores/_{cs}_** | Modifies coverage store _{ds}_. +**DELETE workspaces/_{ws}_/coveragestores/_{cs}_** | Deletes coverage store _{ds}_. +**PUT workspaces/_{ws}_/coveragestores/_{cs}_/file._{extension}_** | Uploads a raster data file from a local source. +**GET workspaces/_{ws}_/coveragestores/_{cs}_/coverages** | Returns a list containing all coverages in selected coverage store. +**POST workspaces/_{ws}_/coveragestores/_{cs}_/coverages** | Creates a new coverage. It creates the associated layer by default. +**GET workspaces/_{ws}_/coveragestores/_{cs}_/coverages/_{c}_** | Returns coverage _{c}_. +**PUT workspaces/_{ws}_/coveragestores/_{cs}_/coverages/_{c}_** | Modifies coverage _{c}_. +**DELETE workspaces/_{ws}_/coveragestores/_{cs}_/coverages/_{c}_** | Deletes coverage _{c}_. + +### Styles + +A style describes how a resource (a feature type or a coverage) should be symbolized or rendered by a Web Map Service. +Styles are specified with SLD. + +Resource | Description +---------|------------ +**GET styles** | Returns a list containing all SLD styles. +**POST styles** | Creates a new SLD style. +**GET styles/_{s}_** | Returns style _{s}_. +**PUT styles/_{s}_** | Modifies style _{s}_. +**DELETE styles/_{s}_** | Deletes style _{s}_. + + +### Layers + +A layer is a data resource that could be published by a OGC Web Service. +So a layer is the combination of data (feature type or coverage) plus styling (in case of OGC:WMS). + +Resource | Description +---------|------------ +**GET layers** | Returns a list containing all layers. +**POST layers** | Creates a new layer. +**GET layers/_{l}_** | Returns layer _{l}_. +**PUT layers/_{l}_** | Modifies layer _{l}_. +**DELETE layers/_{l}_** | Deletes layer _{l}_. +**GET layers/_{l}_/styles** | Returns a list containing all styles associated to layer _{l}_. +**DELETE layers/_{l}_/styles/_{s}_** | Removes style _{s}_ from layer _{l}_. +**GET layers/_{l}_/fields** | Returns a list containing all fields associated to layer _{l}_. + + +### Layer groups + +A layergroup is a grouping of layers and styles that can be accessed as a single layer in a OGC:WMS GetMap request. + +Resource | Description +---------|------------ +**GET layergroups** | Returns a list containing all existing layer groups. +**POST layergroups** | Creates a new layer group. +**GET layergroups/_{lg}_** | Returns layer group _{lg}_. +**PUT layergroups/_{lg}_** | Modifies layer group _{lg}_. +**DELETE layergroups/_{lg}_** | Delete layer group _{lg}_. + + +### OGC Web Services + +Controls the settings of OWS services (available for OGC:WMS, OGC:WFS and OGC:WCS). + +Resource | Description +---------|------------ +**GET service/[wms,wfs,wcs]/setting** | Returns the status of the main OGC service. +**PUT service/[wms,wfs,wcs]/setting** | Enables or disables the main OGC service. + +### Fonts + +Configures available fonts. + +Resource | Description +---------|------------ +**GET fonts** | Returns the list of available fonts. +**PUT fonts** | Uploads fonts from a local source. diff --git a/docs/pages/coveragestores.md b/docs/pages/coveragestores.md new file mode 100644 index 0000000..30404ce --- /dev/null +++ b/docs/pages/coveragestores.md @@ -0,0 +1 @@ +TODO \ No newline at end of file diff --git a/docs/pages/datastores.md b/docs/pages/datastores.md new file mode 100644 index 0000000..d6e921a --- /dev/null +++ b/docs/pages/datastores.md @@ -0,0 +1,229 @@ +## DataStores + +A data store is a source of spatial data that is vector based. + + +### GET workspaces/{ws}/datastores + +Returns a list containing data stores in workspace. + +#### Resource URL + +http://hostname/workspaces/{ws}/datastores.{extension} + +#### Available formats + +HTML (default value), JSON, XML. + +#### Parameters + +None + +#### Exemple request + +**GET http://hostname/workspaces/my_workspace/datastores.json** + +**Status code:** 200 OK + +**Response:** + +{ + + "dataStores": [ + { + "href": "http://hostname/workspaces/my_workspace/datastores/my_fisrt_datastore.json", + "name": "my_fisrt_datastore" + } + { + "href": "http://hostname/workspaces/my_workspace/datastores/my_second_datastore.json", + "name": "my_second_datastore" + } + ] + +} + + +### POST workspaces/{ws}/datastores + +Creates a new data store in workspace. + +#### Resource URL + +http://hostname/workspaces/{ws}/datastores/{ds}.{extension} + +#### Available formats + +JSON, XML. + +#### Parameters + +None. + +#### Example request + +**POST http://hostname/workspaces/my_workspace/datastores.json** + +**POST Content-type:** `application-json' + +**POST data:** + + { + "dataStore": { + "name": "pg_sample", + "enabled": true, + "connectionParameters": { + "host": "127.0.0.1", + "user": "postgres", + "database": "dbname", + "dbtype": "postgis", + "password": "postgres", + "port": "5432" + } + } + } + +**Status code:** 201 OK + +**Location:** http://hostname/workspaces/my_workspace/datastores/pg_sample.json + + +### GET workspaces/{ws}/datastores/{ds} + +Returns data store {ds}. + +#### Resource URL + +http://hostname/workspaces/{ws}/datastores/{ds}.{extension} + +#### Available formats + +HTML (default value), JSON, XML. + +#### Parameters + +None + +#### Example request + +**GET http://hostname/workspaces/my_workspace/datastores/pg_sample.json + +**Status code:** 200 OK + +**Response:** + + { + "dataStore": { + "name": "pg_sample", + "enabled": true, + "connectionParameters": { + "dbtype": "postgis", + "host": "127.0.0.1", + "port": "5432", + "database": "my_dbname", + "user": "postgres", + "password": "postgres" + }, + "featureTypes": { + "href": "http://hostname/workspaces/my_workspace/datastores/pg_sample/featuretypes.json" + }, + "workspace": { + "href": "http://hostname/workspaces/my_workspace.json", + "name": "my_workspace" + } + } + } + + +### PUT workspaces/{ws}/datastores/{ds} + +Modifies data store {ds}. + +#### Resource URL + +http://hostname/workspaces/{ws}/datastores/{ds}.{extension} + +#### Available formats + +JSON, XML. + +#### Parameters + +None + +#### Example request + +**PUT http://hostname/workspaces/my_workspace/datastores/pg_sample.json + +**PUT Content-type:** `application-json' + +**Response:** + + { + "dataStore": { + "name": "pg_sample", + "enabled": false, + "connectionParameters": { + "dbtype": "postgis", + "host": "127.0.0.1", + "port": "5432", + "database": "my_dbname", + "user": "mra", + "password": "foo" + }, + } + } + +**Status code:** 201 OK + +**Location:** http://hostname/workspaces/my_workspace/datastores/pg_sample.json + + +### DELETE workspaces/{ws}/datastores/{ds} + +Deletes data store {ds}. + +#### Resource URL + +http://hostname/workspaces/{ws}/datastores/{ds}.{extension} + +#### Available formats + +JSON, XML. + +#### Parameters + +None + +#### Example request + +**DELETE http://hostname/workspaces/my_workspace/datastores/pg_sample.json + +**Status code:** 200 OK + + +### PUT workspaces/{ws}/datastores/{ds}/files.{extension} + +Uploads a file from a local source and creates the data store. +File must be zipped. + +#### Resource URL + +http://hostname/workspaces/{ws}/datastores/{ds}/files.{extension} + +#### Available formats + +SHP (ShapeFile). + +#### Parameters + +None + +#### Example request + +**PUT http://hostname/workspaces/my_workspace/datastores/ne_110m_admin_0_countries/file.shp + +**PUT Content-type:** `application-zip' + +**PUT binary-data** + +**Status code:** 200 diff --git a/docs/pages/fonts.md b/docs/pages/fonts.md new file mode 100644 index 0000000..30404ce --- /dev/null +++ b/docs/pages/fonts.md @@ -0,0 +1 @@ +TODO \ No newline at end of file diff --git a/docs/pages/layergroups.md b/docs/pages/layergroups.md new file mode 100644 index 0000000..30404ce --- /dev/null +++ b/docs/pages/layergroups.md @@ -0,0 +1 @@ +TODO \ No newline at end of file diff --git a/docs/pages/layers.md b/docs/pages/layers.md new file mode 100644 index 0000000..30404ce --- /dev/null +++ b/docs/pages/layers.md @@ -0,0 +1 @@ +TODO \ No newline at end of file diff --git a/docs/pages/ogc-web-service.md b/docs/pages/ogc-web-service.md new file mode 100644 index 0000000..30404ce --- /dev/null +++ b/docs/pages/ogc-web-service.md @@ -0,0 +1 @@ +TODO \ No newline at end of file diff --git a/docs/pages/styles.md b/docs/pages/styles.md new file mode 100644 index 0000000..30404ce --- /dev/null +++ b/docs/pages/styles.md @@ -0,0 +1 @@ +TODO \ No newline at end of file diff --git a/docs/pages/workspaces.md b/docs/pages/workspaces.md new file mode 100644 index 0000000..0b9f706 --- /dev/null +++ b/docs/pages/workspaces.md @@ -0,0 +1,109 @@ +## Workspaces + +A workspace is a grouping of [data stores](datastores.md) and [coverages stores](coveragestores.md). + +### GET workspaces + +Returns a list containing all workspaces. + +#### Resource URL + +http://hostname/workspaces{.extension} + +#### Available formats + +HTML (default value), JSON, XML. + +#### Parameters + +None + +#### Example request + +**GET http://hostname/workspaces.json** + +##### Response + +**Status code:** 200 OK + + { + "workspaces": [ + { + "href": "http://hostname/workspaces/my_workspace.json", + "name": "sample" + } + ] + } + +### POST workspaces + +Creates a new workspace. + +#### Resource URL + +http://hostname/workspaces{.extension} + +#### Available formats + +JSON, XML. + +#### Parameters + +None. + +#### Example request + +**POST http://hostname/workspaces.json** + +**POST Content-type:** `application-json' + +**POST data:** + + { + "workspace": + { + "name": "another_workspace" + } + } + +##### Response + +**Status code:** 201 OK + +**Location:** http://hostname/workspaces/my_workspace.json + +### GET workspaces/{ws} + +Returns workspace {ws}. + +#### Resource URL + +http://hostname/workspaces/{ws}.{extension} + +#### Available formats + +HTML (default value), JSON, XML. + +#### Parameters + +None + +#### Example request + +**GET http://hostname/workspaces/my_workspace.json** + +##### Response + +**Status code:** 200 OK + + { + "workspace": { + "name": "my_workspace", + "dataStores": { + "href": "http://hostname/workspaces/my_workspace/datastores.json" + }, + "coverageStores": { + "href": "http://hostname/workspaces/my_workspace/coveragestores.json" + } + } + } -- GitLab