学习PHP是想开发一个APP后台,所以为了打通流程,先开发一个最简单的接口试试。
阅读官方路由器文档和控制器文档
1. 官方路由器文档
2. 官方控制器文档
3. 路由中文文档5.0
4. 控制器中文文档
注意中文文档中的内容在最新版本中有所变化,所以还要结合最新的官方文档看。
打开routes\api.php,添加一个路由
- 首选需要获得一个 API 路由的实例
$api = app('Dingo\Api\Routing\Router');
- 添加一个路由
$api->version('v1', ['namespace' => 'App\Http\Controllers'], function ($api) {
$api->get('test', 'TestController@test');
});
- 'v1'是版本,
- 'namespace':是命名空间
- $api->get('test', 'TestController@test');
- get()表示http method为get,即get请求。那么post()即为post请求,以此类推
- ‘test’:为接口名,注意如果前面在.env中配置了接口前缀,比如:api,测试的时候别放了加上,api/test
- ‘TestController@test’:表示这个请求交给TestController的test()方法处理
接下来,我们就创建一个控制器。
- 更多内容查看文档
创建控制器
- 首先打开app\Http\Controllers目录下的Controller,这个文件是生成的工程自带的一个控制器,我们把它作为我们的根控制器,新建的控制器继承它
为它添加如下代码:
<?php
namespace App\Http\Controllers;
use Illuminate\Foundation\Bus\DispatchesJobs;
use Illuminate\Routing\Controller as BaseController;
use Illuminate\Foundation\Validation\ValidatesRequests;
use Illuminate\Foundation\Auth\Access\AuthorizesRequests;
use Dingo\Api\Routing\Helpers;
class Controller extends BaseController
{
use AuthorizesRequests, DispatchesJobs, ValidatesRequests, Helpers;
}
- 在app\Http\Controllers目录下,创建一个文件TestController,集成Controller
<?php
namespace App\Http\Controllers;
use App\Http\Controllers\Controller;
class TestController extends Controller {
}
- 添加test()方法
<?php
namespace App\Http\Controllers;
use App\Http\Controllers\Controller;
class TestController extends Controller {
public function test() {
return $this->response->accepted(null, ['code'=>'1000000', 'message'=>'test']);
}
}
在test方法中,返回一个http response,并返回一个json数据,表示处理结果。
测试
创建一个客户端,进行测试,我是创建了一个iOS客户端进行测试的
//注意前缀
let url = "http://localhost:8080/api/test"
Alamofire.request(url, method: .get, parameters: nil, encoding: URLEncoding.default, headers: headers).responseJSON { (response) in
if response.error != nil {
if let error_data = response.data {
let error_string = String(data: error_data, encoding: .utf8)
print(error_string!)
}
} else {
print(response.result.value ?? "")
}
}
还可以在接口名称中传递一些参数
比如说/test/{id},在文档中有详细的说明,而且也比较简单。
参考文档
1. 官方路由器文档
2. 官方控制器文档
3. 路由中文文档5.0
4. 控制器中文文档
Creating API Endpoints-创建端点
网友评论