第一节: dingo/API 最新版 V2.0 之安装讲解(连载)

时间:2023-03-09 01:54:53
第一节: dingo/API 最新版 V2.0 之安装讲解(连载)

  我发现关于dingo/API V2.0的资料少之又少,应该也是发布时间不久的原因。下面,我就来给大家讲解(翻译)下官方的英文文档,如果有说的不对的地方,请指正。先附上,官网wiki地址https://github.com/dingo/api/wiki

The Dingo API package is meant to provide you, the developer, with a set of tools to help you easily and quickly build your own API. While the goal of this package is to remain as flexible as possible it still won't cover all situations and solve all problems.

Dingo Api 是致力于提供给开发者一套工具,帮助你方便快捷的建造你自己的API。这个包的目标是保持尽可能的灵活,它并不能覆盖所有的情况,也不能解决所有的问题。

一.安装

1.window本地环境—集成环境Laragon

这个包你需要  PHP ^7.0。

安装是不是卡住了,文档推荐是使用Homestead ,但是对新手来说比较不容易建立。这里推荐用集成环境Laragon,详细教程——>http://laravelacademy.org/post/7754.html。后期,我会写Homestead教程 。请随时关注;

2.配置本地PHP环境

请自行百度,我就不讲解了。不配置环境变量,composer 是不能够使用的。

3.composer安装

第一种安装这个包的方法,你需要修改你的composer.json文件,在你的项目中写入最新版本的包。如下:

“require”: {

  “dingo/api”:“2.0.0-alpha1”

}

然后,使用composer update命令更新。

第二种方法是,在命令行执行 composer require 命令。如下:

composer require dingo/api:2.0.0-alpha1 

注:现在这个版本中的包处于一个开发的阶段,没有一个健壮的版本。你有可能需要设置你的 minimum-stability 为 dev。如下方法设置:

版本号,后面+@dev,

composer require dingo/api:2.0.0-alpha1@dev

我在这里也讲解下@dev是做什么的,如下:

@dev表示可以获取开发版本。通常,开发版本意味非稳定版本,很可能存在bug。稳定性标签可以作用于特定的依赖项,也可以作用于全局。

作用特定依赖项:默认情况下,composer只会获取稳定版本,如果这个例子我们不加@dev约束,而2.0.0-alpha1版本是开发版本,那么在获取的时候composer就会报错,指出改版本不符合要求。如果确定这个开发版本没有问题,那么就可以通过加@dev,让Composer获取这个开发版本。

4.与框架结合

一旦这个包被安装上,下一步就取决于你使用的是哪个框架。

①.Laravel

毕竟都要求PHP ^7.0,命令行安装。

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

②.Lumen

进入Lumen中的bootstrap文件夹中,打开app.php文件,在其中注册(通俗的说就是写入)这个服务。

$app->register(Dingo\Api\Provider\LumenServiceProvider::class);

注意:需要在项目的env文件中,增加 API_PREFIX=api或者API_DOMAIN=api.myapp.com(前缀or子域名),否则会报出“Unable to boot ApiServiceProvider, configure an API domain or prefix.”的错误

5.Facades(门面)

有两个Facade,来处理这个扩展包,你可以添加任意一个:

  • Dingo\Api\Facade\API
  • 这是一个用于api调度的 facade,当然,它也为这个包的其他方法提供辅助方法。
  • Dingo\Api\Facade\Route
  • 这是一个用于 API 路由的 facade,可以用作获取当前路由,请求,检查当前路由名称等。

Configuration →

未完待续。。。。敬请期待后续教程