Skip to content

pudongping/lara-sample-api

Repository files navigation

项目概述

  • 项目名称:lara-sample-api
  • 项目简介:
    这是一个基于 laravel6.x 开发的商城 api 接口,里面已经完成了大部分接口,但因门户接口和管理后台接口没有分离,在同个项目下,后续接口 太多,很容易导致接口冗乱,因此故将此项目拆分成了 lara-shop-api 门户接口和 lara-shop-cms 后台管理接口两个项目。目前此项目 暂且不打算维护了 更多功能请移步 lara-shop-api 门户接口和 lara-shop-cms 后台管理接口两个项目。当然你也可以继续使用此项目 功能都是好的,唯一的缺点是门户接口和管理接口在同一项目下,没有拆分。

关于分支

如果不需要已经写好的功能模块,那么可以直接切换到 base-api-function 分支,这个分支中只保留了基础 api 架构方法。通过这个分支,你可以快速的搭建适合于业务场景的 api 服务。 master 分支中所以的功能均是基于 base-api-function 分支的基础架构方法所开发的。(使用了 base-api-function 分支,但是不知道这些基础方法如何使用,完全可以参考 master 分支中的写法)

功能如下

  • 用户认证 —— 基于 jwt 认证登录、注册、登出、找回密码
  • 图片验证码、短信验证码
  • 支持多 guard (目前门户为:api、后台管理为:admin)
  • 前后台用户支持多种普通认证形式 —— 账号、手机号、邮箱
  • 前台用户第三方登录目前支持 —— 微信、微博(后续若需要支持其他第三方登录,只需要下载安装包即可,代码已经做了兼容处理)
  • 个人中心 —— 用户个人中心,编辑资料
  • 资源管理(上传图片) —— 修改头像时上传图片
  • 基于 RBAC 的权限控制 —— 用户,角色,权限,路由
  • 抽奖算法(支持大转盘、九宫格、刮刮乐)
  • SPU —— 多品牌、多类目(类目树形结构)、收藏商品、购物车
  • 多规格 SKU
  • 图片资源系统
  • 系统设置
  • 更多功能 …… 你可以直接通过查看 routes/api.php 路由文件中了解,均有详细的注释信息

后端扩展包使用情况

扩展包 简介描述 本项目应用场景
barryvdh/laravel-ide-helper 能让你的 IDE (PHPStorm, Sublime) 实现自动补全、代码智能提示和代码跟踪等功能 代码补全和智能提示
barryvdh/laravel-debugbar 页面调试工具栏 (对 phpdebugbar 的封装) 开发环境中的 DEBUG
cyvelnet/laravel5-fractal ^2.3 比较好用的 transformer 模型数据转换层
gregwar/captcha 图片验证码 图片验证码
socialiteproviders/weixin 微信登录管理包 微信网页授权登录
socialiteproviders/weibo 微博登录管理包 微博授权登录
tymon/jwt-auth:1.0.0-rc.5 jwt-auth 授权 api 授权登录,需要执行 php artisan jwt:secret 以便生成 JWT_SECRET
composer require overtrue/laravel-query-logger --dev 查询日志组件 记录每次 sql 查询日志
spatie/laravel-permission 角色权限管理 角色和权限控制

关于文档

接口文档采用 postman 编写

接口文档资料位于 /doc/lara-api.postman_collection-V1.json 采用 postman v1 版格式导出(需注意,目前 postman 支持 Collection v1 (deprecated)Collection v2Collection v2.1 (recommended) 三种版本)

接口

关于登录的接口,,因为兼容了多种情况的登录(前端授权登录、后端授权登录、手机号登录、用户名登录……)相对来说,调用登录相关的接口会比较复杂,因此这里提供了专门的 doc/login-doc.md 文档,用于配合前端调用

doc/image/cms-sku 文件夹中有后台管理平台如何设计多规格的 sku 原型图

doc/image/数据库-思维脑图 文件夹中有相关的数据库设计脑图

安装

  1. 克隆源代码

克隆 lara-sample-api 源代码到本地:

// gitee
git clone https://gitee.com/pudongping/lara-sample-api.git

// github
git clone https://github.com/pudongping/lara-sample-api.git
  1. 安装扩展包依赖
// 先切换到 lara-sample-api 项目根目录
cd lara-sample-api

// 执行安装命令
composer install
  1. 生成配置文件
cp .env.example .env

你可以根据情况修改 .env 文件里的内容,如数据库连接、缓存、邮件设置、第三方授权登录等:


DB_HOST=localhost
DB_DATABASE=lara-sample-api
DB_USERNAME=homestead
DB_PASSWORD=secret

  1. 生成数据表及生成测试数据
// 需要生成测试数据则执行:
php artisan migrate --seed

// 不需要生成测试数据则执行:
php artisan migrate
  1. 生成秘钥

php artisan key:generate

php artisan jwt:secret

  1. 创建 storage 软连接

php artisan storage:link

  1. 赋予 storage 相应权限

// 建议在 Linux 系统中新建一个 www 用户,并设置该用户不可登录系统
useradd -s /sbin/nologin www

// 将项目目录所有权赋予 www 用户
chown -Rf www:www larablog 或者执行 setfacl -Rm u:www:rw lara-sample-api

// 给 storage 目录赋权限
chmod -Rf 0755 lara-sample-api/storage/

  1. 配置 hosts 文件 (如果直接想部署在线上环境,则跳过此步骤)

如果开发环境没有采用 Laravel Homestead 则 ip 映射以你实际为主,一般为 127.0.0.1。我这里使用的 Laravel Homestead 虚拟机的 ip 地址为:192.168.10.10

// Linux 或 MacOS 环境

echo "192.168.10.10   lara-sample-api.test" | sudo tee -a /etc/hosts

// Windows 环境
需要打开 C:/Windows/System32/Drivers/etc/hosts  文件,然后新增一行

192.168.10.10 lara-sample-api.test

About

基于 laravel 6.x 封装的基础方法,以便快速开发符合业务场景api,统一了返回值,非常适合直接上手写api接口开发。

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors