GeoServerRESTApi接口使用
api相关的操作:官方api操作文档
前置操作
首先REST要求对客户端进行身份验证。默认情况下,使用的身份验证方法是基本身份验证,在请求中带上用户名和密码,就比如在postMan中可以这样操作:这样就可以通过相关的校验通过验证在java程序中也可以模仿postMan中的操作来通过校验
工作空间(workspace) 相关的Api操作
新建一个工作空间
请求方式:POST
url地址:ip:8080/geoserver/rest/workspaces
参数:
名称 | 注释 |
workspaceName | 空间名 |
添加成功会返回你添加的名字,请求参数类型为xml的格式:
修改指定工作空间的名字
请求方式:PUT
url地址:ip:8080/geoserver/rest/workspaces/{workspaceName}
参数:
名称 | 注释 |
workspaceName | 空间名 |
修改成功返回状态码200,请求参数类型为xml的格式:
在服务器上查看也已经修改成功了:
删除指定工作空间
请求方式:DELETE
url地址:ip:8080/geoserver/rest/workspaces/{workspaceName}?recurse=false
说明:工作空间存在数据是无法进行删除的返回状态码为403;
参数:
名称 | 注释 |
workspaceName | 空间名 |
recurse | 是否删除工作空间中的数据(不必须默认为false) |
删除成功返回状态码200:
获取所有的工作空间相关信息
请求方式:GET
请求uri:ip:8080/geoserver/rest/workspaces
执行请求操作会返回所有工作空间相关的信息:
数据储存(Date Stores)相关的Api操作
获取某个工作空间下的数据储存详情
请求方式:GET
请求uri:ip:8080/geoserver/rest/workspaces/{workspaceName}/datastores
这样可以获取到当前工作空间下的数据储存详情
为指定工作空间添加对应的数据储存详情
请求方式:POST
请求uri:
ip:8080/geoserver/rest/workspaces/{workspaceName}/datastores
这里以shapefiles举例(这里出现的都是必填参数)
// 请求参数
{
"dataStore": {
"name": "nyc", // 数据储存的名称
"connectionParameters": { // 连接参数
"entry": [
{"@key":"url","$":"file:D:/谷歌下载/nyc_roads/nyc_roads.shp"} // 数据储存位置
]
}
}
}
connectionParamete
r还有很多属性可以参考此链接下的shapfiles相关的例子:connectionParamete更多参数 这里返回数据储存的名字说明创建成功,返回状态码为201 created
这里以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"} // 数据类型
]
}
}
}
获取某个工作空间下指定的数据储存详情
请求方式:GET
请求uri:ip:8080/geoserver/rest/workspaces/{workspaceName}/datastores/{storeName}?quietOnNotFound=true
,可以带上quietOnNotFound参数这样可以避免数据不存在时出现异常,但是还是会返回405状态码这样就可以成功获取到指定的信息
修改某个工作空间下的指定数据储存详情
请求方式: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就说明修改成功:
删除某个工作空间下的指定数据储存
请求方式:PUT
请求uri:
ip:8080/geoserver/rest/workspaces/{workspaceName}/datastores/{storeName}?recurse=false
,参数recurse=false代表当前数据储存下保存有数据就不删除数据储存,反之就好比如强制删除(默认为false)
返回状态码为200说明删除成功