前提
- 下载代码,确保API运行环境搭建成功,可以参考Windows 10 配置 Laravel 运行环境。
- 相应Table的设计已经完成。
- 相应的数据库已经创建。
编写数据库迁移(migration)
-
首先根据设计好的Table在database/migration文件下创建相应的php文件,此文件主要用于创建相应Table。可以用命令快捷创建:
php artisan make:migration table_name
Create table
-
创建后就可以填写Table中相应的数据了,此php文件中有up()和down()两个fuction,up()对应创建Table,down()对应删除。具体的填写可以参考xianyu和miaomiao的代码,都很简单,这里贴下自己的:
up
down
-
接下来就可以运行命令
php artisan migrate
来创建Table了,运行此命令后去查看相应的数据库,可以发现Table已成功创建Table
-
关于数据库迁移的详细内容,可以参考数据库迁移
填充数据库
-
Table建立好了,可是里面没有数据,这时候就需要去填充数据库了。首先,去Entity文件夹下建立每个Table对应的Eloquent模型,其中用到了一个belongsTo()方法,是用来建立不同table之间的联系的,关于这一块,可以参考Eloquent:关联。
JobModelPath.png
JobModel.png
-
我们填充数据使用的是工厂函数,顾名思义,工厂函数就是像工厂一样批量产生数据的一个函数,不用我们手动一个一个去创建数据,能节省很多时间。其代码在database/factories/ModelFactory.php中,关于工厂函数更详细的介绍可参考模型工厂,下面是我使用到的工厂函数:
factory.png
-
工厂函数编写完毕后,需要在database/seeds/DatabaseSeeder.php的run()中对其进行调用。
Paste_Image.png
-
以上步骤执行完后,就可以执行命令
php artisan db:seed
来生成数据到数据库中了。
编写路由
路由在app/Http/routes.php中,注意这里我把路由语句放到了$api->group()中的函数里面,这是因为需要用到JWT验证,简单地说就是需要登录获得一个token。关于JWT用法,可以参考JWT wiki。
![](https://img.haomeiwen.com/i704059/3bd2925bad198725.png)
编写控制器
-
上一步中调用了JobController控制器,接下来我们就需要编写这个控制器,路径位于Http\V1_0\Controllers中,其中的区块1就是刚才提到的JWT验证,而区块2主要是针对路由中是否含有tech_level_id做的一个判断处理
JobController.png
-
控制器中调用了getJob()和getJobByTechLevelID()两个方法,这两个方法我们需要在Repositorise中编写,主要是一些操作数据库的动作,关于数据库的一些查询操作,可以参考数据库:查询构造器
Repositories.png
Repositories2.png
Repositories3.png
-
repository和interface编写完后还要去Providers\AppServiceProvider.php里面绑定下
bind.png
-
从数据库中取得数据后可以直接返回数据$jobs,但是为了数据显示得更友好,我们需要对数据进行一些转换,这里就用到了转化器Transformer,代码路径在Http\V1_0\Transformers\JobTransformer.php中,更详细的信息可以参考转化器
transformer.png
测试
-
先使用/login/wechat路由来获取一个token。
token1.png
token2.png
-
把这个token作为参数传递给我们的Jobs路由
token3.png
-
成功返回数据。
success.png
网友评论