您的位置:首页 > 编程语言 > PHP开发

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

2017-11-12 16:15 771 查看
1、在laravel的根目录的composer.json 文件中引入

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




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


<?php

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 测试



这里就已经一个简单reseful 的接口了

下面是dingo/api 的详细教程—-遇到问题首先去看文档

https://github.com/liyu001989/dingo-api-wiki-zh
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  api laravel 扩展