PHP学习之路5-一个简单的接口

2018-01-24  本文已影响24人  AaronYin

学习PHP是想开发一个APP后台,所以为了打通流程,先开发一个最简单的接口试试。

阅读官方路由器文档和控制器文档

1. 官方路由器文档
2. 官方控制器文档
3. 路由中文文档5.0
4. 控制器中文文档

注意中文文档中的内容在最新版本中有所变化,所以还要结合最新的官方文档看。

打开routes\api.php,添加一个路由

  1. 首选需要获得一个 API 路由的实例
$api = app('Dingo\Api\Routing\Router');
  1. 添加一个路由
$api->version('v1', ['namespace' => 'App\Http\Controllers'], function ($api) {
    $api->get('test', 'TestController@test');
});

接下来,我们就创建一个控制器。

  1. 更多内容查看文档

Creating API Endpoints-创建端点

创建控制器

  1. 首先打开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;
}
  1. 在app\Http\Controllers目录下,创建一个文件TestController,集成Controller
<?php

namespace App\Http\Controllers;

use App\Http\Controllers\Controller;

class TestController extends Controller {

}
  1. 添加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-创建端点

上一篇 下一篇

猜你喜欢

热点阅读