边学习边记录,欢迎指正
使用的是geoserver react axios js antd
geoserver使用rest会有跨域问题,安装时需要注意
目录
1.axios封装
因为每次请求都要传token,所以简单的封装了一个axios
//文件geoserverAxios.js
import axios from "axios";
import { message } from 'antd'
let { getGeoserverRust } = window.config//baseUrl
// 创建新的实例,以免影响其他axios
const geoserverAxios = axios.create({
timeout: 5000,
baseURL: getGeoserverRust,//你geoserver部署到的服务器的ip
auth: {//权限
username: '',//你的用户名
password: ''//你的密码
},
})
// 响应拦截器
geoserverAxios.interceptors.response.use(function (response) {
// 对响应数据做点什么
return response;
}, function (error) {
// 请求失败
console.log('封装error', error)
console.log('封装error.response', error.response)
if (error && error.response) {
switch (error.response.status) {
case 400:
message.error(error.response.data.error.details);
break;
case 401:
message.error("401-未授权,请登录");
break;
case 403:
message.error("403-无权限,拒绝访问");
break;
case 404:
message.error("404-请求地址出错");
break;
case 405:
message.error("405-请求方法错误");
break;
case 408:
message.error("408-请求超时");
break;
case 409:
message.error("409");
break;
case 500:
message.error("500-服务器内部错误");
break;
case 501:
message.error("501-服务未实现");
break;
case 502:
message.error("502-网关错误");
break;
case 503:
message.error("503-服务不可用");
break;
case 504:
message.error("504-网关超时");
break;
case 505:
message.error("505-HTTP版本不受支持");
break;
default:
}
}
// 对响应错误做点什么
return Promise.reject(error);
});
export default geoserverAxios;
使用时
import geoserverAxios from '../../common/geoserverAxios'//引入
geoserverAxios({
method: 'get',
url: '/workspaces',
}).then(function (response) {
}).catch(error => {
console.log(error)
})
2.添加删除修改工作组
2.1添加工作区
// 创建工作组
function addWorkspaces(values) {
geoserverAxios({
method: 'post',
url: '/workspaces',
// 试过用json的方式传,总是报500,不晓得哪做错了
data: `<?xml version="1.0" encoding="UTF-8"?> <workspace> <name>${values.name}</name> </workspace>`,
headers: {
'content-type': 'application/xml'
},
}).then(function (response) {
console.log('添加工作区', response)
if (response.status === 201) {
}
}).catch(error => {
console.log(error)
})
}
2.2 删除工作区
/workspaces/工作区名
// 删除工作区,直接在url后添加工作区名称
function deleteWorkspaces(values) {
geoserverAxios({
method: 'delete',
url: `/workspaces/${values.name}`,
}).then(function (response) {
console.log('添加工作区', response)
if (response.status === 200) {
message.success('删除成功')
}
}).catch(error => {
console.log(error)
})
}
2.3 修改工作区
修改工作区名
geoserverAxios({
method: 'put',
url: `/workspaces/${values.oldname}`,//values.oldname:以前工作区的名字
data: `<?xml version="