当前位置: 首页 > 后端技术 > PHP

Laravel从零开发后台API(一)

时间:2023-03-29 20:46:40 PHP

介绍后台接口的开发。现在更多的公司选择PHP开发后台界面。当然Python和NodeJs都是不错的选择,但是这里我们以PHP为例,基于Laravel框架开发后台API。如果你想从事其他方向,这里也是。您可以尝试一些后台API开发。当然,我不会把示例工程放在我的github上,仅供参考。@geekGhcgithubdemo地址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查看对应的版本,然后连接。下一步是安装作曲家。这是PHP安装依赖库。我们可以下载我们需要的第三方依赖包。这里也给出了相应的地址https://getcomposer.org/doc/00-intro.md#downloading-the-composer-executable不同平台肯定是不一样的,但是相对来说,在windows环境下,可以下载可执行文件直接安装到系统盘安装。安装完成后,确保composer还在环境变量中,在终端执行$composer-V查看对应版本后,安装PHP后基本可以进入Laravel的安装之前的composer下载的是Laravel安装包$composerglobalrequire"laravel/installer"请确保你已经在PATH中添加了~/.composer/vendor/bin路径,这样系统才能找到laravel执行文件。安装完成后,可以使用laravelnew命令在指定目录下创建一个新的Laravel项目,例如:la探索新博客2。通过ComposerCreate-Project,也可以通过Composer在命令行运行create-project命令来安装Laravel:newproject$laravelnewcodespace-api这里的项目名随意,方便安装到最新版本Sublime或者PHPStrom打开项目,打开.env文件有一小段配置需要改DB_CONNECTION=mysqlDB_HOST=127.0.0.1DB_PORT=3306DB_DATABASE=codespace-apiDB_USERNAME=rootDB_PASSWORD=password这里的以下信息是修改我们连接的Mysql数据库的信息,包括数据库名,数据库用户名和密码,修改成你的本地或服务器数据以启动内置服务器服务。$phpartisanserve简单了解LaravelWorkflow因为这里我们只是做后台开发,所以必须了解需要学习和掌握的几点1.接口编写规范和设计规则2.SQL语句编写和数据表设计3.API用户说到认证和token,首先要说的就是接口的编写规范和设计风格。其实,这在阮一峰的一篇文章中已经有所论述。虽然会有点争议,但是对于学习restfulapi的设计还是值得参考的。了解了api之后的设计风格结合我们平时使用的第三方api接口。其实设计是这样的,但是界面的具体设计还是要看客户的项目需求。第二条sql语句的写法和数据表的设计也是一样的。它因人而异。如果你有多年的开发经验,我觉得一些SQL查询,包括多表关联,是很容易解决的。在Laravel中,这只是语法上的差异。当然对于多表关联,在Laravel中会有EloquentModel对应关系。一个很好的解决方案。如果这里只讲使用原生的sql语句来写我们的数据信息,可能需要阅读Laravel的数据库操作文档(如果有中文最好看官方的英文文档更好解释)这里是地址http://d.laravel-china.org/docs/5.3/queries这里可以找到一些操作数据库的sql语法Laravel数据表设计Laravel数据表的设计可以对应Model也可以单独创建。如果只关注后台,可以创建我们需要的所有表的设计内容在database/migrations下。一开始,为我们创建了users和password_resets表。在这里,如果我们创建一个posts表,在项目终端执行$phpartisanmake:modelLesson-m。我们可以在这个migrations里面创建我们对应的lessons表,也就是目标迁移文件写入我们的lessons表的字段信息php?start_inline=1Schema::create('lessons',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()];});定义好表的结构之后,接下来就是迁移我们的数据表了,因为之前已经配置好数据库的相关信息,所以在项目根目录下$phpartisanmigrate回到数据库,就会看到我们的数据表然后生成20个测试数据打开项目的目录终端,打开tinker$php工匠思想;指定命名空间$namespaceApp;生成20条测试数据$factory(Lesson::class,20)->create();回车生成20条测试数据,打开lessons表中的数据库看到,为了方便路由处理,我们再生成一个controller。为了不混淆应用,我们在App目录下新建Api文件夹,新建Controllers和Transformer目录。为了存储我们的控制器和处理字段返回值,我们还将在Controllers目录中创建我们的。controller基类可以模仿[Dingo\Api\Provider\LaravelServiceProvider::class]然后生成对应的配置文件$phpartisanvendor:publish--provider="Dingo\Api\Provider\LaravelServiceProvider"如果需要实现jwt,同样在安装页面安装这个包"require":{“tymon/jwt-auth”:“0.5.*"}添加对应的服务:'Tymon\JWTAuth\Providers\JWTAuthServiceProvider'当然还需要配置他的别名'JWTAuth'=>Tymon\JWTAuth\Facades\JWTAuth::class,'JWTFactory'=>Tymon\JWTAuth\Facades\JWTFactory::class生成一个配置文件$phpartisanvendor:publish--provider="Tymon\JWTAuth\Providers\JWTAuthServiceProvider"生成一个key$phpartisanjwt:generate当然是添加依赖之后packageincomposer.json需要下载相关扩展包,即在项目终端执行composerupdate,此时我们处于开发环境,需要对Dingo进行相应的配置,在.env文件中添加prefixAPI_STANDARDS_TREE=vndAPI_PREFIX=api填写我们之前使用的版本我写测试的时候也提供了v1来区分版本API_VERSION=v1开启Debug模式API_DEBUG=true关闭Script模式API_STRICT=false在这个方式,即使我们已经完成,我们也会安装它编辑了具体的业务部分。在另一篇文章中,Laravel是从零开始开发的。后台API(2)文章涉及我们之前注册的LesssonModel的用户登录注册和信息获取。参考我的博文LaravelAPI开发初探LaravelAPI结合DingoAPI和JWT