laravel 开发RestFul接口【一、集成三方扩展 - dingo/api】

1、在laravel的根目录的composer.json 文件中引入

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

laravel 开发RestFul接口【一、集成三方扩展 - dingo/api】_第1张图片
2、更新 composer执行

composer update 

3.注册服务提供者
在config/app.php注册到 providers 数组:

   Dingo\Api\Provider\LaravelServiceProvider::class,

4.生成dingo/api 的配置文件

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

这时在config 的目录下会出现一个api 的文件
打开里面的文件 你会发现里面的配置都是使用env函数进行读取的
所以相关的所有配置你都可以写在.env 文件中进行配置
一下常规的配置

API_STANDARDS_TREE=vnd // 环境
API_SUBTYPE=myapp // 子类型
API_PREFIX=api // 前缀
API_DOMAIN=api.myapp.com //子域名 (前缀和子域名只能存在一个)
API_VERSION=v1 // 版本
API_NAME=My API // 名字(使用API Blueprint命令才会用到)
API_CONDITIONAL_REQUEST=false // 带条件的请求
API_STRICT=false // Strict模式
API_DEFAULT_FORMAT=json // 响应格式
API_DEBUG=true // 调试模式

到这里dingo 算是完成
执行artisan 命令创建一个测试的类
这里有点需注意 执行artsian 命令会报错:

[Dotenv\Exception\InvalidFileException]
  Dotenv values containing spaces must be surrounded by quotes.

其实已经说的很清楚了 配置文件中有空格的配置项必须加上引号

API_NAME=My API // 名字(使用API Blueprint命令才会用到)
哈哈这里my api 改成 “my api” 就行了
4、创建路由

//接管路由··
$api = app('Dingo\Api\Routing\Router');

// 配置api版本和路由
$api->version('v1', ['namespace' => 'App\Http\Controllers\Api\V1\Controller'], function ($api) {
    $api->get("test/{id}/{name}", 'RestFulController@test')->name("getinfo");

});

使用php artisan api:routes 查看路由表 如果有就是创建成功了

5、创建测试类

php artisan make:controller Api/V1/Controller/RestFulController


namespace App\Http\Controllers\Api\V1\Controller;

use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use Dingo\Api\Routing\Helpers;
class RestFulController extends Controller
{
    use Helpers;

    public function test(Request $request){
        $id = $request->id;
       return $this->response->array(['id'=>$id,'name'=>"test","passwd"=>"123456"]);
    }
}

6、使用postman 测试
laravel 开发RestFul接口【一、集成三方扩展 - dingo/api】_第2张图片
这里就已经一个简单reseful 的接口了
下面是dingo/api 的详细教程—-遇到问题首先去看文档

https://github.com/liyu001989/dingo-api-wiki-zh

你可能感兴趣的:(php)