什么是 RESTful
RESTful 是一种软件设计风格。
为什么选择 RESTful
我认为一套接口应该尽量满足以下几个原则:
安全可靠,高效,易扩展。
简单明了,可读性强,没有歧义。
API 风格统一,调用规则,传入参数和返回数据有统一的标准。
具体过程
1、安装dingoApi
修改一下 composer.json:
composer.json
...
"config": {
"preferred-install": "dist",
"sort-packages": true,
"optimize-autoloader": true
},
"minimum-stability" : "dev",
"prefer-stable" : true}增加了两句:
"minimum-stability" : "dev"——设定的最低稳定性的版本为dev也就是可以依赖开发版本的扩展包;"prefer-stable" : true—— Composer 优先使用更稳定的包版本。
$ composer require dingo/api:2.0.0-alpha2
先将 dingo 的配置文件 publish 出来
$ php artisan vendor:publish
执行成功后,我们会在 config 目录先看到 api.php 文件,打开文件我们可以看到所有的配置都是可以再 env 中修改的,
# dingo config API_STANDARDS_TREE= //API_STANDARDS_TREE 有是三个值可选: x 本地开发的或私有环境的 prs 未对外发布的,提供给公司 app,单页应用,桌面应用等 vnd 对外发布的,开放给所有用户 API_SUBTYPE= //一般情况下是我们项目的简称 API_PREFIX= #API_DOMAIN= API_VERSION=API_DEBUG=
API_PREFIX 和 API_DOMAIN
对于一个项目,通过前缀或者子域名的方式来区分开 API 与 Web 等页面访问地址是十分有必要的。假如正式上线的项目地址为 www.larabbs.com,我们可以为 API 添加一个前缀
API_PREFIX=api
通过 www.larabbs.com/api 来访问 API。
或者有可能单独配置一个子域名api.larabbs.com
API_DOMAIN=api.larabbs.com
通过 api.larabbs.com 来访问 API。
特别要注意的是:前缀和子域名,两者有且只有一个
2、创建命名空间,新建基类
$ php artisan make:controller Api/Controller
所有API控制器都在 app/Http/Controllers/Api/ 目录下创建。
3、新增api路由
$api = app('Dingo\Api\Routing\Router');
$api->version('v1', [
'namespace' => 'App\Http\Controllers\Api'
],function($api) {
$api->get('index', 'TestController@index')->name('api.test.index');
});4、构建控制器
php artisan make:controller Api/TestController
修改控制器文件
<?php
namespace App\Http\Controllers\Api;
use Illuminate\Http\Request;
class TestController extends Controller
{
public function index()
{
return 'success';
}
}5、PostMan 里测试一下

Comments (0)