通过axios讲解接口参数传递方式

您所在的位置:网站首页 紫阳银针茶有什么功效 通过axios讲解接口参数传递方式

通过axios讲解接口参数传递方式

2024-07-15 15:17:37| 来源: 网络整理| 查看: 265

小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。

介绍

我们每天要和接口打交道,接口传递参数的方式有很多种,搞得我们眼花缭乱,今天简单介绍下 常见的 query、body、path、FormData格式的参数前端如何传递,后端如何接收。 此次讲解通过 Postman 测试请求,前端使用流行的 axios 请求库来模拟参数传入,后端使用node-koa2 来接收传递的参数。 注: 底部有源码链接

Query String Parameters -- query参数 Query String Parameters 俗称: query 参数

这种类型的参数,常见于 Get 请求,参数会以 url string 的形式进行传递。

通过 postman 请求

image.png 接口中返回的 ctxQuery 就是我们传入的参数

通过 axios 请求 axios({ method: 'get', url: '/query', params: { name: '张三' } }); 浏览器中查看接口详情

image.png image.png

通过 koa 接收参数 router.get('/query', (ctx, next) => { console.log(ctx.query); // 接收 query 参数 ctx.body = new SuccessRes({ method: ctx.request.method, url: ctx.request.url, ctxQuery: ctx.query }) }) Request Payload - body 参数 Request Payload 俗称:body 参数

这种类型参数,常用于 post 请求,参数会以 json 格式传递

通过 postman 请求

image.png 接口中返回的 ctxBody 就是我们传入的参数

通过 axios 请求 axios({ method: 'post', url: '/body', data: { "phoneNumber": "18131239692", "veriCode": "0422" } }) 浏览器中查看接口详情

image.png image.png

通过 koa 接收参数 router.post('/body', async (ctx, next) => { console.log(ctx.request.body); ctx.body = new SuccessRes({ method: ctx.request.method, url: ctx.request.url, ctxBody: ctx.request.body }) }) Path - path 参数

path 参数 也称为 路由参数,写过 vue 路由的可能见过这种形式的路由

const router = new VueRouter({ routes: [ // 动态路径参数 以冒号开头 { path: '/user/:id', component: User } ] })

接口中的路由也是动态路由的意思

通过 postman 请求

image.png 接口中返回的 ctxParams 就是我们传入的参数

通过 axios 请求 axios({ method: 'get', url: '/path/12', }) 浏览器中查看接口详情

image.png image.png

通过 koa 接收参数 router.get('/path/:id', async (ctx, next) => { console.log(ctx.params); ctx.body = new SuccessRes({ method: ctx.request.method, url: ctx.request.url, ctxParams: ctx.params }) }) Form Data - formData 参数 Form Data 俗称:表单参数

这种类型的参数是由早期网页表单通过 action 传递的参数,现在通常用于上传文件的接口。

通过 postman 请求

选择上传图片,和其他参数 image.png

接口中返回的 fileList 是我们传入的文件,处理后的信息 接口中返回的 fields 是我们传入的其他表单信息 通过 axios 请求 let formData = new FormData() formData.append('file', this.file) // 通过append向form对象添加数据 formData.append('name', '表单名字') // 添加form表单中其他数据 const res = await axios({ method: 'post', url: '/formData', headers: { 'Content-Type': 'multipart/form-data' }, data: formData }); console.log(res.data); 浏览器中查看接口详情

image.pngimage.png image.png

通过 koa 接收参数 const formidable = require('formidable') router.post('/formData', async (ctx, next) => { // console.log(ctx.req); const res = await uploadFilesByFormidable(ctx.req) console.log(res); ctx.body = new SuccessRes({ method: ctx.request.method, url: ctx.request.url, ...res }) }) function uploadFilesByFormidable(req) { return new Promise((resolve, reject) => { form.parse(req, (err, fields, files) => { // console.log({ fields, files }); const filesKeys = Object.keys(files) const fileList = filesKeys.map(name => { const file = files[name] return { fileName: file.name || name, filePath: file.path } }) resolve({ fields, fileList }) }); }) } 多种类型参数混合请求

上面的接口请求类型可以组合使用,下面来看示例吧

通过 postman 请求

image.png

ctxQuery 是我们传递的 query 参数 ctxParams 是我们传递的 path 参数 ctxBody 是我们传递的 body 参数

为什么没有混合使用 form data 参数呢,formData 和 json(body参数)同属于 body 请求参数,所以只能出现一个。

通过 axios 请求 axios({ method: 'post', url: '/mixTheRequest/12', params: { name: '张三', age: 23 }, data: { "phoneNumber": "18131239692", "veriCode": "0422" } }) 浏览器中查看接口详情

image.png image.png

总结

以上就是 query、body、path、FormData格式的参数传递和接收的介绍,当然还有其他参数传递方式,这几种属于常见方式,其他方式大家可以继续探索。 ​

github源码:github.com/ynzy/node-a…



【本文地址】

公司简介

联系我们

今日新闻


点击排行

实验室常用的仪器、试剂和
说到实验室常用到的东西,主要就分为仪器、试剂和耗
不用再找了,全球10大实验
01、赛默飞世尔科技(热电)Thermo Fisher Scientif
三代水柜的量产巅峰T-72坦
作者:寞寒最近,西边闹腾挺大,本来小寞以为忙完这
通风柜跟实验室通风系统有
说到通风柜跟实验室通风,不少人都纠结二者到底是不
集消毒杀菌、烘干收纳为一
厨房是家里细菌较多的地方,潮湿的环境、没有完全密
实验室设备之全钢实验台如
全钢实验台是实验室家具中较为重要的家具之一,很多

推荐新闻


图片新闻

实验室药品柜的特性有哪些
实验室药品柜是实验室家具的重要组成部分之一,主要
小学科学实验中有哪些教学
计算机 计算器 一般 打孔器 打气筒 仪器车 显微镜
实验室各种仪器原理动图讲
1.紫外分光光谱UV分析原理:吸收紫外光能量,引起分
高中化学常见仪器及实验装
1、可加热仪器:2、计量仪器:(1)仪器A的名称:量
微生物操作主要设备和器具
今天盘点一下微生物操作主要设备和器具,别嫌我啰嗦
浅谈通风柜使用基本常识
 众所周知,通风柜功能中最主要的就是排气功能。在

专题文章

    CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭