摘要:介绍在开发后台接口现在更多的企业选择了来开发后台接口当然和不失为是一种不错的选择不过这里就以为例基于框架开发后台这里也是如果你是从事其他方向想做一些后台开发都可以去尝试一下的当然实例项目我会不放在我的上仅供参考地址前期准备当然前提是安装
介绍
在开发后台接口现在更多的企业选择了PHP来开发后台接口 当然Python和NodeJs不失为是一种不错的选择
不过这里就以PHP为例 基于Laravel框架开发后台API 这里也是如果你是从事其他方向想做一些后台API开发 都可以去尝试一下的
前期准备当然实例项目我会不放在我的github上仅供参考 @geekGhc
github demo地址 https://github.com/GeekGhc/dingo-api-demo
当然前提是安装PHP的环境 因为PHP7无论是从性能还是以后的推广度都是首选
所以如果想去繁从简的话可以安装PHP的集成环境 这里可以XAMPP 这里给出下载地址
https://www.apachefriends.org/zh_cn/index.html 选择7.1版本安装即可
当然安装过程很简单 但要保证将PHP设置为环境变量 这样至少我们才可以使用php命令
安装结束后 终端执行
$ php --version
查看到对应的版本即可
接下来就是安装composer 这是PHP的安装依赖库 我们可以下载到我们需要的第三方依赖包
这里也给出相应的地址 https://getcomposer.org/doc/00-intro.md#downloading-the-composer-executable
对于不同的平台 安装方式肯定不一样 不过相对来说在windows环境下 可以下载完可执行文件直接安装即可 安装系统盘就行
安装完毕后确保composer依旧在环境变量中 在终端执行
$ composer -V
查看到对应的版本即可
这些关于PHP的安装完毕之后 那么基本就可以进入到Laravel的安装
Laravel安装如果说没有接触过Laravel的话可以这两种方式其实都是不错的选择
1.通过Laravel安装工具使用之前的composer下载Laravel安装包
$ composer global require "laravel/installer"
请确定你已将 ~/.composer/vendor/bin 路径加到 PATH,只有这样系统才能找到 laravel 的执行文件
一旦安装完成,就可以使用 laravel new 命令在指定目录创建一个新的 Laravel 项目,例如:laravel new blog
2.通过 Composer Create-Project你也可以通过 Composer 在命令行运行 create-project 命令来安装 Laravel:
$ composer create-project --prefer-dist laravel/laravel blogLaravel API基本配置
为了后面的演示 这里我创建了一个新的项目
$ laravel new codespace-api
这里的项目名随意 这样可以安装到最近的版本
Sublime或者PHPStrom打开项目 打开.env文件
这里有一小段配置需要改下
DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=codespace-api DB_USERNAME=root DB_PASSWORD=password
这里的后面信息就是修改我们连接的Mysql数据库的信息 包括数据库名 数据库用户名和密码
修改为你本地或者服务器上的数据即可
启动内置服务器服务
$ php artisan serve简单了解Laravel的工作流程
因为这里我们只是作为后台开发 那么我们必须了解几下几点我们是需要学习和掌握的
1.接口的书写规范和设计规则
2.sql语句的编写和数据表的设计
3.有关api的用户认证和token的了解
首先谈下第一个就是接口的书写规范和设计风格 这个其实在阮一峰的一个文章早就谈过 尽管会有点争议 对于学习
restful api的设计 还是很值得参考的
在了解了api的设计风格后 再结合我们平常所使用的第三方的api接口其实设计起来就是这样
不过接口的具体设计还是得根据客户端的项目需求而定
对于第二个sql语句的编写和数据表的设计 这个也就因人而异了 如果有多年的开发经验 我想一些sql查询 包括多表关联都是很好解决的
在Laravel中只是语法的不同罢了 当然对于多表关联 在Laravel会有Eloquent Model对应的关系可以很好的解决 这里只谈就用原生的sql语句来编写我们的数据信息的话
这里可以需要阅读Laravel 的数据库操作文档(给出中文为了更好的说明 可以的话还是看看官方的英文文档比较好)
这里给出地址 http://d.laravel-china.org/docs/5.3/queries
这里可以找到关于操作数据库的一些sql语法
Laravel的数据表设计在Laravel数据表的设计可以对应着Model 也可以多带带创建 如果只是专注后台 可以创建我们需要的表
所有表的设计内容都是在database/migrations下 一开始是为我们创建了users和password_resets表的
这里我们再去创建一个posts表的话 在项目终端执行
$ php artisan make:model Lesson -m
这样就可以创建我们所对应的lessons表 在这个migrations里也就是标的迁移文件写我们的lessons表的字段信息
php?start_inline=1 Schema::create("lessonss", function (Blueprint $table) { $table->increments("id"); $table->string("title"); $table->text("body"); $table->boolean("free"); $table->timestamps(); });
在Laravel中我们可以去定义个字段的测试信息 也就是我们的Seeder
在databases/factories/ModelFactory.php中加入posts表的字段
$factory->define(AppLesson::class, function (FakerGenerator $faker) { return [ "title" => $faker->sentence, "body" => $faker->paragraph, "free" => $faker->boolean() ]; });
定义完表的结构 那么接下来就是迁移我们的数据表 因为之前已经配置过数据库的相关信息 所以在项目根目录
$ php artisan migrate
回到数据库会看到我们的数据表
再去生成20条测试数据 打开项目的目录终端打开tinker
$ php artisan thinerk;
指定命名空间
$ namespace App;
生成20条测试数据
$ factory(Lesson::class,20)->create();
回车即可生成20条测试数据 打开数据库在lessons表就可以看到
为了方便路由处理 我们去生成一个控制器 为了不和应用混淆 我们在App目录下 新建Api文件夹
并新建Controllers和Transformer目录为了存放我们的控制器和处理字段返回
在Controllers目录下也新建我们的控制器基类 可以模仿着应用控制器里的
下面的话我们在这里的控制器就可以继承这个基类
话不多说 生成我们的LessonsController 在命令行执行
$ php artisan make:controller AppApiControllersLessonsController下面的可能就是集成Dingo api和Jwt认证了 如果没有用过Laravel的也没有关系 可以结合下面我的博客文章
安装 dingo api在composer.json文件里添加
"dingo/api": "1.0.*@dev"接着在laravel项目的config的app.php去添加服务
"providers" => [ DingoApiProviderLaravelServiceProvider::class ]再去生成相应的配置文件
$ php artisan vendor:publish --provider="DingoApiProviderLaravelServiceProvider"如果需要实现jwt 同样的也是去安装页面 安装这个package
"require": { "tymon/jwt-auth": "0.5.*" }添加对应的服务:
"TymonJWTAuthProvidersJWTAuthServiceProvider"当然也是需要去配置一下他的alias
"JWTAuth" => TymonJWTAuthFacadesJWTAuth::class, "JWTFactory" => TymonJWTAuthFacadesJWTFactory::class生成配置文件
$ php artisan vendor:publish --provider="TymonJWTAuthProvidersJWTAuthServiceProvider"生成一个key
$ php artisan jwt:generate使用当然在composer.json添加完依赖包 需要去下载相关的扩展包 即在项目终端执行 composer update
这个时候我们是在开发的环境下 还需对Dingo进行相应的配置 在.env文件里
API_STANDARDS_TREE=vnd添加前缀
API_PREFIX=api填写版本 这个我们之前自己写测试的时候也是提供的v1以此来区别版本
API_VERSION=v1开启Debug模式
API_DEBUG=true关闭Script模式
API_STRICT=false这样的话我们安装就算已经完成了 具体的业务部分在另一篇文章 Laravel从零开发后台API(二)
文章涉及到用户的登录注册 以及我们之前注册好的Lessson Model的信息获取
参考我的博客文章Laravel API开发初探
Laravel API结合Dingo API和JWT
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/25586.html
摘要:之前我们已经准备好了基本的安装过程现在我们去实现一下具体的业务部分用户的登录与注册对于用户注册这对于一款应用来说再正常不过了为了接下来我们的效果我们可以去生成一个即在项目终端执行生成用户之后我们暂时先不去编辑字段后面我们需要用到时再加返回字 之前我们已经准备好了基本的安装过程 现在我们去实现一下具体的业务部分 用户的登录与注册 对于用户注册 这对于一款应用来说再正常不过了 为了接下来...
摘要:后端开发的疑惑后端开发最常面对的一个问题性能高并发等等。而到了时代,在方面有了前后端分离概念移动后端更是无力渲染天然前后端分离。 先来上一张前端页面的效果图(Vue + Vux + Vuex + Vue-Router)。showImg(https://segmentfault.com/img/remote/1460000010207850); 第一次做gif 没什么经验,太大了。加载...
摘要:前期准备原文地址前言,为什么做以及要做个啥本人姓小名白,不折不扣编程届小白一名,但是自从大一那会儿接触到编程这件奇妙的事情,就完完全全的陷入的程序的世界。框架,是我最喜欢的框架了,没有之一。 前期准备 原文地址前言,为什么做以及要做个啥本人姓小名白,不折不扣编程届小白一名,但是自从大一那会儿接触到编程这件奇妙的事情,就完完全全的陷入的程序的世界。这不,最近又开始折腾APP了,话说现在开...
阅读 2751·2021-11-22 13:54
阅读 2687·2021-10-14 09:42
阅读 3985·2021-09-28 09:47
阅读 2161·2021-09-03 10:28
阅读 1203·2021-07-26 23:38
阅读 2557·2019-08-30 15:54
阅读 2638·2019-08-29 16:35
阅读 1424·2019-08-29 15:42