成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久

您的位置:首頁技術文章
文章詳情頁

vue 調用 RESTful風格接口操作

瀏覽:143日期:2022-12-10 08:27:54

首先是簡單的java接口代碼

寫了四個讓前端請求的接口,以下為代碼

@GetMapping('/v1/user/{username}/{password}') public Result login2(@PathVariable('username') String username, @PathVariable('password') String password){ return Result.succResult(200,username+'--'+password); } @PostMapping('/v1/user') public Result login3(@RequestBody User user){ return Result.succResult(200,'ok',user); } @PutMapping('/v1/user') public Result putUser(@RequestBody User user){ return Result.succResult(200,user); } @DeleteMapping('/v1/user/{id}') public Result delete(@PathVariable Integer id){ return Result.succResult(200,id); }

前端請求需要在main.js中配置

import Axios from ’axios’ Vue.prototype.$axios = Axios

前端請求方式如下

在調用的時候用以下方式進行請求

this.$axios.get(’/api/v1/user/’+this.username+’/’+this.password).then(data=> { alert(’get//’+data.data.code);}).catch(error=> { alert(error);}); this.$axios.get(’/api/v1/user’,{params: { username: this.username, password: this.password} }).then(data =>{alert(’get’+data.data.data) }).catch(error => {alert(error) }); this.$axios.put(’/api/v1/user’,{id: 1,username: this.username,password: this.password }).then(data => {alert(’數據password:’+data.data.data.password)alert(’數據username:’+data.data.data.username) }).catch(error => {alert(error) }); this.$axios.delete(’/api/v1/user/1’).then(data=> { alert(’delete//’+data.data.code);}).catch(error=> { alert(error);}); this.$axios.post(’/api/v1/user’,{username: this.username,password: this.password }).then(data => { alert(’post’+data.data.data.password) }).catch(error => {alert(error); });

補充知識:vue結合axios封裝form,restful,get,post四種風格請求

axios特點

1.從瀏覽器中創建 XMLHttpRequests

2.從 node.js 創建 http 請求

3.支持 Promise API

4.攔截請求和響應 (就是有interceptor)

5.轉換請求數據和響應數據

6.取消請求

7.自動轉換 JSON 數據

8.客戶端支持防御 XSRF

安裝

npm i axios?savenpm i qs --savenpm i element-ui --savenpm i lodash --save

引入

1.在入口文件中引入所需插件

main.js

import Vue from ’vue’import App from ’./App.vue’import router from ’./router’import store from ’./store’import ElementUI from ’element-ui’;import ’element-ui/lib/theme-chalk/index.css’;import url from ’./apiUrl’import api from ’./apiUtil’Vue.prototype.$axios = api.generateApiMap(url);Vue.config.productionTip = falseVue.use(ElementUI);new Vue({ router, store, render: h => h(App)}).$mount(’#app’)

2.新建一個util文件夾(只要存放工具類)

在util中建apiUtil.js , apiUrl.js兩個文件

apiUtil.js 封裝請求體

import axios from ’axios’import _ from ’lodash’import router from ’@/util/baseRouter.js’import { Message } from ’element-ui’import qs from ’qs’const generateApiMap = (map) => { let facade = {} _.forEach(map, function (value, key) { facade[key] = toMethod(value) }) return facade}//整合配置const toMethod = (options) => { options.method = options.method || ’post’ return (params, config = {}) => { return sendApiInstance(options.method, options.url, params, config) }}// 創建axios實例const createApiInstance = (config = {}) => { const _config = { withCredentials: false, // 跨域是否 baseURL: ’’, validateStatus: function (status) { if(status != 200){ Message(status+’:后臺服務異常’) } return status; } } config = _.merge(_config, config) return axios.create(config)}//入參前后去空格const trim = (param) =>{ for(let a in param){ if(typeof param[a] == 'string'){ param[a] = param[a].trim(); }else{ param = trim(param[a]) } } return param}//restful路徑參數替換const toRest = (url,params) => { let paramArr = url.match(/(?<={).*?(?=})/gi) paramArr.forEach(el=>{ url = url.replace(’{’+el+’}’,params[el]) }) return url}//封裝請求體const sendApiInstance = (method, url, params, config = {}) => { params = trim(params) if(!url){ return } let instance = createApiInstance(config) //響應攔截 instance.interceptors.response.use(response => { let data = response.data //服務端返回數據 let code = data.meta.respcode //返回信息狀態碼 let message = data.meta.respdesc //返回信息描述 if(data === undefined || typeof data != 'object'){ Message(’后臺對應服務異常’); return false; }else if(code != 0){ Message(message); return false; }else{ return data.data; } }, error => { return Promise.reject(error).catch(res => { console.log(res) }) } ) //請求方式判斷 let _method = ’’; let _params = {} let _url = ’’ if(method === ’form’){ _method = ’post’ config.headers = {’Content-Type’:’application/x-www-form-urlencoded’} _params = qs.stringify(params) _url = url }else if(method === ’resetful’){ _method = ’get’ _params = {} _url = toRest(url,params) }else if(method === ’get’){ _method = ’get’ _params = { params: params } _url = url }else if(method === ’post’){ _method = ’post’ _params = params _url = url }else{ Message(’請求方式不存在’) } return instance[_method](_url, _params, config)}export default { generateApiMap : generateApiMap}

apiUrl.js 配置所有請求路徑參數

其中resetful風格請求的路徑中的請求字段必須寫在 ‘{}’中

const host= ’/api’ //反向代理export default { userAdd:{ url: host + '/user/add', method:'post' }, userList:{ url: host + '/user/userList', method:'get' }, userInfo:{ url: host + '/user/userInfo/{id}/{name}', method:'resetful'}, userInsert:{ url: host + '/login', method:'form'},}

使用

四種請求方式的入參統一都以object形式傳入

APP.vue

<template> <div class='login'> <el-button type='primary' @click='submitForm' class='submit_btn'>登錄</el-button> </div></template><script>export default { data() { return { }; }, methods:{ submitForm(){ this.$axios.userAdd({ id:’123’, name:’liyang’ }).then(data=>{ console.log(data) }) } }};</script>

ps:入參也可以再請求interceptors.request中封裝

以上這篇vue 調用 RESTful風格接口操作就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持好吧啦網。

標簽: Vue
相關文章:
成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久
日韩欧美一二三四区| 99久久国产综合精品麻豆| 91免费观看国产| 日韩一区二区三区视频在线观看| 日韩 欧美一区二区三区| 中文亚洲免费| 国产精品私人影院| 欧美连裤袜在线视频| 欧美精品一区二区三区四区| 福利视频网站一区二区三区| 欧美成va人片在线观看| 成人的网站免费观看| 精品嫩草影院久久| 99久久综合精品| 久久精品亚洲精品国产欧美| 色综合色综合色综合色综合色综合 | 成人一二三区视频| 日韩欧美视频在线| 99久久99久久精品免费观看| 久久精品一区二区三区av| 99re热这里只有精品视频| 精品国产乱码久久久久久图片| 国产不卡视频在线播放| 欧美一级理论性理论a| 国产成人啪免费观看软件| 日韩一区二区免费电影| 国产白丝精品91爽爽久久| 日韩欧美视频在线| av色综合久久天堂av综合| 国产清纯白嫩初高生在线观看91| 欧美日一区二区三区在线观看国产免| 中文字幕日韩精品一区| 国产农村妇女精品一区二区| 日韩电影在线看| 欧美三区免费完整视频在线观看| 国产一二精品视频| 日韩欧美一区二区免费| 99久久精品费精品国产一区二区| 亚洲国产成人一区二区三区| 99精品国产在热久久婷婷| 日韩一区精品视频| 制服视频三区第一页精品| aaa亚洲精品| 亚洲视频精选在线| 久久亚洲午夜电影| 国产一区二区电影| 国产日韩欧美亚洲| 亚洲一区二区三区精品视频| 极品少妇一区二区| 国产亚洲欧美日韩日本| 成人午夜激情影院| 亚洲欧洲日本在线| 久久国产精品免费一区| 国内国产精品久久| 久久噜噜亚洲综合| 国产精品久久国产愉拍| 精品在线播放免费| 国产亚洲精品免费| 美女视频一区免费观看| 国产精品一区二区男女羞羞无遮挡| 国产一区二区三区四区老人| 首页国产丝袜综合| 日韩精品中文字幕一区| 狠狠88综合久久久久综合网| 视频一区二区三区入口| 欧美一区二区免费视频| 亚洲国内欧美| 奇米亚洲午夜久久精品| 久久综合99re88久久爱| 国产精品毛片一区二区三区| 国产九九视频一区二区三区| 一区在线观看免费| 欧美三级电影一区| 国产精品mm| 久久国产精品无码网站| 亚洲国产精品传媒在线观看| 久久婷婷亚洲| 欧美一区二区三区另类 | 亚洲精品一区二区三区影院| 亚洲欧洲日夜超级视频| 经典三级在线一区| 成人免费一区二区三区在线观看| 欧美午夜在线观看| 黄色国产精品| 韩国v欧美v亚洲v日本v| 亚洲欧洲成人自拍| 欧美精品一二三| 一本色道久久| 成人一区二区三区中文字幕| 亚洲激情一二三区| 欧美精品一区二区三区视频| 日本精品一级二级| 国产综合欧美在线看| 精品综合免费视频观看| 国产精品高潮呻吟| 欧美日韩一区二区三区四区| 国产精品www.| 国产精品99久久久久久宅男| 一区二区三区免费| 久久久久久久久久久电影| 日本韩国一区二区三区视频| 欧美日韩精品不卡| 国产美女主播视频一区| 亚洲国产欧美在线| 国产人成亚洲第一网站在线播放| 欧美伊人久久大香线蕉综合69| 黄色成人av网站| 国产成人免费在线| 婷婷久久综合九色国产成人| 久久精品人人做人人爽人人| 欧美亚日韩国产aⅴ精品中极品| 欧美视频不卡| 粉嫩嫩av羞羞动漫久久久 | 91精品欧美久久久久久动漫| 欧美中文字幕| 亚洲性人人天天夜夜摸| 粉嫩13p一区二区三区| 日韩黄色免费网站| 亚洲欧美激情一区二区| 久久精品一区二区三区av | 亚洲超丰满肉感bbw| 国产精品网站在线播放| 欧美一区二区免费视频| 色婷婷综合久色| 99re6热在线精品视频播放速度| 成人精品免费视频| 麻豆国产一区二区| 亚洲国产日韩在线一区模特| 中文字幕不卡在线| 久久综合丝袜日本网| 91精品欧美综合在线观看最新| 在线亚洲免费视频| 亚洲主播在线| 亚洲精品字幕| 欧美日韩在线大尺度| 成人av集中营| 国产馆精品极品| 久久精品国产精品亚洲红杏| 亚洲h在线观看| 亚洲精品高清视频在线观看| 国产精品久久久久9999吃药| 久久久久久日产精品| 欧美一级在线免费| 欧美三级电影在线观看| 色就色 综合激情| 香蕉久久夜色精品国产| 日韩午夜电影| 亚洲精品一区二区三区樱花| 伊人久久大香线蕉综合热线 | 欧美日韩一区二区在线观看| 一本色道久久综合狠狠躁的推荐| 国产精品一级久久久| 亚洲国产精品一区制服丝袜 | 91精品福利在线一区二区三区| 色噜噜狠狠成人中文综合| 亚洲影院一区| 亚洲深夜影院| 亚洲精品中文字幕在线| 1024日韩| 亚洲人人精品| 日韩香蕉视频| 99综合在线| 亚洲国产一区二区在线| 在线不卡欧美| 91久久黄色| 日韩视频精品| 一区二区精品| 免费看的黄色欧美网站| 亚洲一区尤物| 色一情一乱一乱一91av| 久久综合亚州| 色欧美片视频在线观看在线视频| 色综合久久88色综合天天| 91久久精品网| 欧美日韩免费观看一区二区三区 | 日韩精品一区二区三区四区| 欧美一区二区三区电影| 欧美一级一区二区| 日韩欧美激情四射| 精品国产麻豆免费人成网站| 欧美成人一区二区| 久久综合九色综合97婷婷女人 | 男女男精品视频| 精品一区二区久久| 国产精品123区| 成人免费毛片a| 色综合久久综合网97色综合| 91啦中文在线观看| 亚洲午夜av| 亚洲综合日本| 在线观看免费一区| 日韩亚洲欧美一区二区三区| 亚洲精品一区二区三区香蕉| 亚洲国产精品精华液2区45| 自拍av一区二区三区| 亚洲国产精品一区二区www| 日韩精品一级中文字幕精品视频免费观看| 美女性感视频久久| 国产suv精品一区二区6| 色综合亚洲欧洲|