php laravel api开发,Laravel从零开发后台API(一)

介绍

在开发后台接口现在更多的企业选择了PHP来开发后台接口 当然Python和NodeJs不失为是一种不错的选择

不过这里就以PHP为例 基于Laravel框架开发后台API 这里也是如果你是从事其他方向想做一些后台API开发 都可以去尝试一下的

前期准备

当然前提是安装PHP的环境 因为PHP7无论是从性能还是以后的推广度都是首选

所以如果想去繁从简的话可以安装PHP的集成环境 这里可以XAMPP 这里给出下载地址

当然安装过程很简单 但要保证将PHP设置为环境变量 这样至少我们才可以使用php命令

安装结束后 终端执行

$ php --version

查看到对应的版本即可

接下来就是安装composer 这是PHP的安装依赖库 我们可以下载到我们需要的第三方依赖包

对于不同的平台 安装方式肯定不一样 不过相对来说在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 blog

Laravel 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的了解

首先谈下第一个就是接口的书写规范和设计风格 这个其实在阮一峰的一个文章早就谈过 尽管会有点争议 对于学习

在了解了api的设计风格后 再结合我们平常所使用的第三方的api接口其实设计起来就是这样

不过接口的具体设计还是得根据客户端的项目需求而定

对于第二个sql语句的编写和数据表的设计 这个也就因人而异了 如果有多年的开发经验 我想一些sql查询 包括多表关联都是很好解决的

在Laravel中只是语法的不同罢了 当然对于多表关联 在Laravel会有Eloquent Model对应的关系可以很好的解决 这里只谈就用原生的sql语句来编写我们的数据信息的话

这里可以需要阅读Laravel 的数据库操作文档(给出中文为了更好的说明 可以的话还是看看官方的英文文档比较好)

这里可以找到关于操作数据库的一些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(App\Lesson::class, function (Faker\Generator $faker) {

return [

'title' => $faker->sentence,

'body' => $faker->paragraph,

'free' => $faker->boolean()

];

});

定义完表的结构 那么接下来就是迁移我们的数据表 因为之前已经配置过数据库的相关信息 所以在项目根目录

$ php artisan migrate

回到数据库会看到我们的数据表

bVSyWC?w=880&h=233

再去生成20条测试数据 打开项目的目录终端打开tinker

$ php artisan thinerk;

指定命名空间

$ namespace App;

生成20条测试数据

$ factory(Lesson::class,20)->create();

回车即可生成20条测试数据 打开数据库在lessons表就可以看到

为了方便路由处理 我们去生成一个控制器 为了不和应用混淆 我们在App目录下 新建Api文件夹

并新建Controllers和Transformer目录为了存放我们的控制器和处理字段返回

在Controllers目录下也新建我们的控制器基类 可以模仿着应用控制器里的

namespace App\Api\Controllers;

use Illuminate\Routing\Controller as BaseController;

class Controller extends BaseController

{

use AuthorizesRequests, DispatchesJobs, ValidatesRequests;

}

下面的话我们在这里的控制器就可以继承这个基类

话不多说 生成我们的LessonsController 在命令行执行

$ php artisan make:controller App\\Api\\Controllers\\LessonsController

下面的可能就是集成Dingo api和Jwt认证了 如果没有用过Laravel的也没有关系 可以结合下面我的博客文章

安装 dingo api

在composer.json文件里添加

"dingo/api": "1.0.*@dev"

接着在laravel项目的config的app.php去添加服务

'providers' => [

Dingo\Api\Provider\LaravelServiceProvider::class

]

再去生成相应的配置文件

$ php artisan vendor:publish --provider="Dingo\Api\Provider\LaravelServiceProvider"

如果需要实现jwt 同样的也是去安装页面 安装这个package

"require": {

"tymon/jwt-auth": "0.5.*"

}

添加对应的服务:

'Tymon\JWTAuth\Providers\JWTAuthServiceProvider'

当然也是需要去配置一下他的alias

'JWTAuth' => Tymon\JWTAuth\Facades\JWTAuth::class,

'JWTFactory' => Tymon\JWTAuth\Facades\JWTFactory::class

生成配置文件

$ php artisan vendor:publish --provider="Tymon\JWTAuth\Providers\JWTAuthServiceProvider"

生成一个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的信息获取

参考我的博客文章

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Laravel是一个流行的PHP Web开发框架,提供了一套简洁、优雅的语法和丰富的功能库,便于开发者构建高效、可维护的应用程序。对于后台开发来说,Laravel提供了一系列重要的特性和工具,使得开发过程更加快捷和高效。 首先,Laravel的MVC架构使得后台开发更加模块化和分层,便于代码的维护和扩展。通过Laravel的路由系统,开发者可以轻松地定义后台接口和路由,实现前后端分离,提高开发效率并降低系统的耦合度。 其次,Laravel提供了强大的数据库访问工具,包括Eloquent ORM和查询构建器,能够方便地操作数据库。开发者可以使用简洁的语法进行数据查询、插入、更新和删除操作,减少了繁琐的SQL语句编写,提高了开发效率。 此外,Laravel还提供了丰富的安全功能和中间件,保障后台系统的安全性。通过CSRF令牌和表单请求验证,可以防止恶意请求和跨站点脚本攻击。同时,Laravel提供了身份认证和授权的功能,方便实现用户角色管理和权限控制,保护后台系统中的敏感数据。 另外,Laravel还具备良好的社区支持和活跃的开发社区,有大量的扩展包和开源项目可供使用,可以快速集成常用的功能和模块,进一步提高后台开发的效率。 总之,Laravel 9作为后台开发的框架,提供了强大的功能和工具,帮助开发者快速构建高效、安全、可扩展的后台系统。无论是初学者还是有经验的开发者都可以通过学习和使用Laravel,快速上手并提高开发效率。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值