目录
RESTful
Apifox - API 文档、调试、Mock、测试一体化协作平台 - 接口文档工具,接口自动化测试工具,接口Mock工具,API文档工具,API Mock工具,API自动化测试工具
RESTful是一种网络应用程序的设计风格和开发方式 ,是一种接口的规范
返回结果:JSON格式
请求方式
- get 用于获取资源,查询数据
- post 用于新建资源,插入数据
- delete 用于删除资源,删除数据
- put 用于修改资源,修改数据
接口地址(请求的URL)
带着资源名称(前端),带有版本号
- /v1/emps/update
- /v1/emps/add
- /v1/news/list
传参方式
- 查找/删除 get传参/ params传参
- 修改/插入 post传参
APIPost
练习:在app.js下,创建web服务器,设置端口;
练习:在about.js下,创建路由器对象,添加路由(get /detail),响应'请求成功!';暴露路由器对象出去
练习:回到app.js下,引入关于汉唐路由器about.js,挂载路由器,添加前缀/v1/about
app.js
// 引入express模块
const express = require('express')
// 引入关于汉唐路由器
const about = require('./routes/about')
// 引入公司大事件路由器
const event = require('./routes/event')
// 引入旗下公司路由器
const member = require('./routes/member')
// 创建WEB服务器
const app = express()
// 设置端口
app.listen(3000, () => {
console.log('服务器启动成功')
})
// 挂载关于汉唐路由器,添加前缀/v1/about
app.use('/v1/about', about)
// 挂载公司大事件路由器,添加前缀/v1/event
app.use('/v1/event', event)
// 挂载公司大事件路由器,添加前缀/v1/member
app.use('/v1/member', member)
练习:在路由中获取传递的参数
练习:在pool.js中创建连接池对象,连接数据库hantang;暴露连接池对象出去
练习:在路由器about.js引入连接模块pool.js,执行SQL命令,查询编号对应的数据,如果数据不存在,响应{code: 400,msg:'数据不存在'} 否则响应{code: 200, msg:'查询成功', data: 查询的数据}
pool.js
// 引入mysql模块
const mysql = require('mysql')
// 创建连接池对象
const pool = mysql.createPool({
host: '127.0.0.1',
port: '3306',
user: 'root',
password: '',
database: 'hantang',
connectionLimit: '15',
multipleStatements: true
})
// 暴露连接池对象
module.exports = pool
about.js
// 引入express模块
const express = require('express')
// 引入连接池模块
const pool = require('../pool')
// 创建路由器对象
const router = express.Router()
// 添加路由
//1.关于汉唐接口(get /detail)
//接口地址:/v1/about/detail
//请求方式:get
router.get('/detail',(req,res)=>{
// 获取get传递的参数
var obj = req.query
console.log(obj)
// 执行SQL命令
pool.query('select * from ht_about where aid=?',[obj.aid],(err,r)=>{
if(err) {
throw err
}
// console.log(r)
// r 结果是数组,如果是空数组查询失败,否则成功
if(r.length === 0){
res.send({code: 400,msg: '数据不存在'})
}else{
res.send({code: 200,msg: '查询成功', data: r})
}
})
})
// 暴露路由器对象
module.exports = router
练习:添加公司大事件接口(get /event),到ht_event表中查询数据,最后响应{code: 200, msg:'查询成功', data: 数据}
练习:添加旗下公司接口(get /member),到ht_member表中查询数据,最后响应{code: 200, msg:'查询成功', data: 数据}
event.js
// 引入express模块
const express = require('express')
// 引入连接池模块
const pool = require('../pool')
// 创建路由器对象
const router = express.Router()
// 添加路由
//1.关于汉唐接口(get /detail)
//接口地址:/v1/event/detail
//请求方式:get
router.get('/detail', (req, res) => {
// 获取get传递的参数
var obj = req.query
console.log(obj)
// 执行SQL命令
pool.query('select * from ht_event where eid=?', [obj.eid], (err, r) => {
if (err) {
throw err
}
// console.log(r)
// r 结果是数组,如果是空数组查询失败,否则成功
if (r.length === 0) {
res.send({ code: 400, msg: '数据不存在' })
} else {
res.send({ code: 200, msg: '查询成功', data: r })
}
})
})
// 暴露路由器对象
module.exports = router
member.js
// 引入express模块
const express = require('express')
// 引入连接池模块
const pool = require('../pool')
// 创建路由器对象
const router = express.Router()
// 添加路由
//1.关于汉唐接口(get /detail)
//接口地址:/v1/event/detail
//请求方式:get
router.get('/detail', (req, res) => {
// 获取get传递的参数
var obj = req.query
console.log(obj)
// 执行SQL命令
pool.query('select * from ht_member where mid=?', [obj.mid], (err, r) => {
if (err) {
throw err
}
// console.log(r)
// r 结果是数组,如果是空数组查询失败,否则成功
if (r.length === 0) {
res.send({ code: 400, msg: '数据不存在' })
} else {
res.send({ code: 200, msg: '查询成功', data: r })
}
})
})
// 暴露路由器对象
module.exports = router