GeoServerRESTApi接口使用

api相关的操作:官方api操作文档

前置操作

首先REST要求对客户端进行身份验证。默认情况下,使用的身份验证方法是基本身份验证,在请求中带上用户名和密码,就比如在postMan中可以这样操作:这样就可以通过相关的校验通过验证在java程序中也可以模仿postMan中的操作来通过校验

java geoserver 是个啥 geoserver api_java geoserver 是个啥

工作空间(workspace) 相关的Api操作

新建一个工作空间

请求方式:POST
url地址:ip:8080/geoserver/rest/workspaces

参数:

名称

注释

workspaceName

空间名

添加成功会返回你添加的名字,请求参数类型为xml的格式:

java geoserver 是个啥 geoserver api_工作空间_02

修改指定工作空间的名字

请求方式:PUT
url地址:ip:8080/geoserver/rest/workspaces/{workspaceName}

参数:

名称

注释

workspaceName

空间名

修改成功返回状态码200,请求参数类型为xml的格式:

java geoserver 是个啥 geoserver api_状态码_03

在服务器上查看也已经修改成功了:

java geoserver 是个啥 geoserver api_java geoserver 是个啥_04

删除指定工作空间

请求方式:DELETE
url地址:ip:8080/geoserver/rest/workspaces/{workspaceName}?recurse=false

说明:工作空间存在数据是无法进行删除的返回状态码为403;

参数:

名称

注释

workspaceName

空间名

recurse

是否删除工作空间中的数据(不必须默认为false)

删除成功返回状态码200:

java geoserver 是个啥 geoserver api_java geoserver 是个啥_05

获取所有的工作空间相关信息

请求方式:GET
请求uri:ip:8080/geoserver/rest/workspaces 执行请求操作会返回所有工作空间相关的信息:

java geoserver 是个啥 geoserver api_java geoserver 是个啥_06

数据储存(Date Stores)相关的Api操作

获取某个工作空间下的数据储存详情

请求方式:GET
请求uri:ip:8080/geoserver/rest/workspaces/{workspaceName}/datastores 这样可以获取到当前工作空间下的数据储存详情

java geoserver 是个啥 geoserver api_geoserver_07

为指定工作空间添加对应的数据储存详情

请求方式:POST

请求uri:ip:8080/geoserver/rest/workspaces/{workspaceName}/datastores

这里以shapefiles举例(这里出现的都是必填参数)
// 请求参数
{
  "dataStore": {
    "name": "nyc", // 数据储存的名称
    "connectionParameters": { // 连接参数
      "entry": [
        {"@key":"url","$":"file:D:/谷歌下载/nyc_roads/nyc_roads.shp"} // 数据储存位置
      ]
    }
  }
}

connectionParameter还有很多属性可以参考此链接下的shapfiles相关的例子:connectionParamete更多参数 这里返回数据储存的名字说明创建成功,返回状态码为201 created

java geoserver 是个啥 geoserver api_工作空间_08

这里以postgis为例子(这里出现的都是必填参数)
// 例如还有Connection timeout 连接超时时间 ,validate connections 是否校验连接等不必填参数
{
  "dataStore": {
    "name": "nyc",
    "connectionParameters": {
      "entry": [
        {"@key":"host","$":"localhost"}, // pg数据库的主机
        {"@key":"port","$":"5432"}, // 端口号
        {"@key":"database","$":"nyc"}, // 数据库名
        {"@key":"user","$":"bob"}, // 用户名
        {"@key":"passwd","$":"postgres"}, // 密码
        {"@key":"dbtype","$":"postgis"} // 数据类型
      ]
    }
  }
}

connectionParameter还有很多属性可以参考此链接下的postGis相关的例子

java geoserver 是个啥 geoserver api_工作空间_09

获取某个工作空间下指定的数据储存详情

请求方式:GET
请求uri:ip:8080/geoserver/rest/workspaces/{workspaceName}/datastores/{storeName}?quietOnNotFound=true,可以带上quietOnNotFound参数这样可以避免数据不存在时出现异常,但是还是会返回405状态码这样就可以成功获取到指定的信息

java geoserver 是个啥 geoserver api_工作空间_10

修改某个工作空间下的指定数据储存详情

请求方式:PUT
请求uri:
ip:8080/geoserver/rest/workspaces/{workspaceName}/datastores/{storeName}

这里以postgis为例子(这里出现的都是必填参数)
// 例如还有Connection timeout 连接超时时间 ,validate connections 是否校验连接等不必填参数
{
  "dataStore": {
    "name": "nyc",
    "connectionParameters": {
      "entry": [
        {"@key":"host","$":"localhost"}, // pg数据库的主机
        {"@key":"port","$":"5432"}, // 端口号
        {"@key":"database","$":"nyc"}, // 数据库名
        {"@key":"user","$":"bob"}, // 用户名
        {"@key":"passwd","$":"postgres"}, // 密码
        {"@key":"dbtype","$":"postgis"} // 数据类型
      ]
    }
  }
}

connectionParameter还有很多属性可以参考此链接下的postGis相关的例子 返回状态码为200就说明修改成功:

java geoserver 是个啥 geoserver api_状态码_11

删除某个工作空间下的指定数据储存

请求方式:PUT

请求uri:ip:8080/geoserver/rest/workspaces/{workspaceName}/datastores/{storeName}?recurse=false,参数recurse=false代表当前数据储存下保存有数据就不删除数据储存,反之就好比如强制删除(默认为false)
返回状态码为200说明删除成功

java geoserver 是个啥 geoserver api_工作空间_12