使用 Golang 实现的硅谷甄选项目的后端 API,已实现老师上课使用的所有 API,欢迎大家提提建议。
需要本地电脑已经安装好 docker 和 docker-compose,如何安装和使用docker请参考尚硅谷的docker课程。
git clone https://github.com/WangJian3306/vue3_admin_backend.gitdocker-compose一键启动
cd vue3_admin_backend
docker-compose up --build -d运行成功后就可以浏览器器访问 swagger地址进行测试,swagger地址:http://127.0.0.1:10086/swagger/index.html#/

swagger地址能够访问,说明程序启动没问题,可以使用本地地址(127.0.0.1:10086)给前端调用了。
env
// .evn.development
# 变量必须以 VITE_ 为前缀才能暴露给外部读取
NODE_ENV = 'development'
VITE_APP_TITLE = '硅谷甄选运营平台'
VITE_APP_BASE_API = '/api'
# VITE_SERVE = 'http://sph-api.atguigu.cn'
VITE_SERVE = 'http://127.0.0.1:10086'
admin/111111bash
curl -X 'POST' \
'http://127.0.0.1:10086/admin/acl/index/login' \
-H 'accept: application/json' \
-H 'Content-Type: application/json' \
-d '{
"password": "111111",
"username": "admin"
}'
预期输出:
json
{
"code": 200,
"data": "This is Token...",
"message": "success",
"ok": true
}
已知的和老师前端实现不同地方如下,其它地方同学如果发现和老师的不同,请参考我实现的前端代码进行调整。
Token验证的。老师上课实现的路由守卫已经自动全部都带了Token,不用担心。
但是在使用swagger时需要先登录获取token,稍微麻烦些。
/admin/product/fileUpload本项目实现的文件上传接口需要验证Token,<el-upload> 组件上传时,需使用headers属性携带Token请求头。
```vue
```
SaleAttr interface中的baseSaleAttrId字段数据类型为number,页面使用不兼容时,需要使用Number()进行数据类型转换。```typescript // 销售属性对象 export interface SaleAttr { id?: number spuId?: number baseSaleAttrId: number // 这里是 number,没有 string saleAttrName: string spuSaleAttrValueList: SpuSaleAttrValueList flag?: boolean saleAttrValue?: string }
// 准备一个新的销售属性对象:将来带给服务器即可
let newSaleAtrr: SaleAttr = {
baseSaleAttrId: Number(baseSaleAttrId), // 这里是使用 Number() 进行数据类型转换
saleAttrName,
spuSaleAttrValueList: [],
}
``
4. 服务接口返回状态码与老师的不一样,除网络问题外,本项目不管接口是否成功,都返回200`状态码。
所有服务接口返回数据格式如下:
json
{
"code": 200,
"data": {},
"message": "success",
"ok": true
}
前端在调用服务接口时,需要根据code字段判断接口是否成功。
```typescript // src/utils/request.ts // 第三步:request实例添加响应拦截器 request.interceptors.response.use( (response) => { // 成功回调 / 判断服务返回的 code 200 -> 请求成功 201 -> 请求参数错误 202 -> 用户名已存在,用于创建用户 203 -> 用户名不存在,用于登录 204 -> 用户名或密码错误,用于登录 205 -> 服务繁忙,服务内部错误 206 -> 无效的Token 207 -> 无权访问,需要登录 208 -> 该节点下有子节点,不可以删除 / const code = response.data.code if (code !== 200) { // 提示错误信息 ElMessage({ type: 'error', message: response.data.message, }) // 抛出错误 return Promise.reject(new Error(response.data.message)) }
// 返回数据
return response.data
},
(error) => {
// 失败回调:处理http网络错误
},
) ```
感谢尚硅谷和贾成豪老师录制的前端视频课程免费给大家学习。
(完)
$ claude mcp add vue3_admin_backend \
-- python -m otcore.mcp_server <graph>