什么是 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'; } }
Comments (0)