安装
apiato 应用的安装
Apiato可以使用Composer自动安装(推荐)或手动安装(使用Git或直接下载):
代码布置
通过 composer 自动布置
1)克隆版本,安装依赖和设置项目:
选项1:最新稳定版(7.4)
composer create-project apiato/apiato my-api
选项2:当前LTS “长期支持”稳定版本(7.2):
composer create-project apiato/apiato my-api ~7.2
选项3:正在进行的开发分支 “dev master” (不稳定): 这为您提供了即将发布的版本的功能。但是,您需要继续将项目与上游主分支同步,并在发生更改时运行composer update。
composer create-project apiato/apiato my-api dev-master
2) 编辑 .env
变量以与您的环境匹配(设置数据库凭据,应用URL,...)。
3) 继续2)数据库设置如下。
手动安装
你可以直接从仓库下载 .zip
格式的文件,也可以直接使用 git
(推荐)克隆版本库:
1)使用 Git
克隆版本库:
git clone https://github.com/apiato/apiato.git
2)安装所有依赖包(包括 Containers 依赖):
composer install
3)创建 .evn
文件并且复制 .env.example
内的文件:
cp .env.example .env
检查所有变量并编辑你需要修改的内容。
4)生成随机密钥 APP_KEY
:
php artisan key:generate
5)从根目录删除 .git
目录和初始化自己的git,用 git init
命令
数据库配置
1)迁移数据库:
运行migration artisan命令:
php artisan migrate
2)使用artisan命令为数据库填充数据:
php artisan db:seed
3)可选。默认情况下,默认情况下生成了一个 “超级用户”,这个用户给了一个 admin
角色(这个角色没有设置任何权限的)
如果你希望 admin
角色访问预先设定的任何权限,你可以在任何时候运行下面的命令:
php artisan apiato:permissions:toRole admin
注意: 如过你使用的是 Laradock 环境,你需要在
workspace
容器内执行这些命令。你能够在 Laradock 的目录中运行docker-compose exec workspace bash
进入该容器。
OAuth 2.0 设置
1)创建加密密钥用以生成安全访问令牌,并创建将用于生成访问令牌的“个人访问”和“密码授予”的客户端口:
php artisan passport:install
文档设置
如果你希望使用 ApiDoc JS ,你可继续看下去,如果你不希望,你可以跳过本节
1)使用 NPM 安装 ApiDocJs 或者使用你喜欢的依赖工具安装:
全局安装需要带上参数 -g
或者在本项目目录中安装不带 -g
参数
npm install apidoc -g
或通过在项目的根目录中运行 npm inatall
,运行完成后 你可以通过检查根目录下的 package.json
2 ) 运行 php artisan apiato:docs
其实后面执行的是:
apidoc -c app/Containers/Documentation/ApiDocJs/public -f public.php -i app -o public/api/documentation
测试配置
1)打开 phpunit.xml
,确保你的环境中的域名是正确。
2)运行测试
vendor/bin/phpunit
环境设置
你可以在你喜欢的环境运行 Apiato ,下面你将看到如何在 Vagrant(使用Laravel Homestead)或 Docker (使用 Laradock)上运行。
我们可以看到如何使用这两个环境,如此你可以选择一种,或者你也可以选择其他的环境。例如 Larvel Valet,Laragon,本地机器上。
注意
ICANN 现已正式批准.dev
为通用顶级域名(gTLD)。因此,不建议.dev
在本地开发设置中再使用域名!此处的文档已更改为使用.develo
而不是.dev
,您可以更改为.localhost
或.test
适合您的需要。使用 Docker (使用 Laradock)
Laradock 是 Docker PHP 的开发环境,PHP应用程序能很好的运行在上面。
- 安装 Laradock
- 进入
laradock
目录:- 运行Docker容器:
- 请确保你在
.env
文件中的DB
和Redis
的 Host 是 Docker IP 的值。- 将域名添加到Hosts文件:
- 在本地计算机上打开
/etc/hosts
文件- 我们将
apiato.develop
作为本地域名使用(如果需要,您可以更改它)。*- 将域名或者子域名映射到127.0.0.1:
127.0.0.1 apiato.develop
127.0.0.1 api.apiato.develop
127.0.0.1 admin.apiato.develop
如果你是使用的 NGINX 或 Apache,确保在你的配置文件中的参数 server_name(以NGINX为例)或 ServerName (以Apache为例),设置了 apiato.develop api.apiato.develop admin.apiato.develop
等域名。
(当然你也别忘啊了设置你的root或者DocumentRoot参数为在apiato的apiato/public
公共目录)
使用 Vagrant (使用 Laravel Homestead)
- 配置 Homestead:
- 打开 Homestead 配置文件
homestead edit
- 映射
api.apiato.develop
域名到项目的 public 文件夹 -例如:
sites:
- map: api.apiato.develop
to: /{full-path-to}/apiato/public
- 你也能为你的web应用够映射其他的域名比如
apiato.develop
和admin.apiato.develop
- map: apiato.develop
to: /{full-path-to}/clients/web/user
- map: admin.apiato.develop
to: /{full-path-to}/clients/web/admin
注意:在上面的例子中,/{full-path-to}/clients/web/***
是分离的应用,他们不像 Apiato 应用在一个目录下面,他们在不同的应用苦和不同的目录。如果你的管理端、用户端或者其他类型的应用都应该在Apiato的目录中,则必须将它们全部指向Apiato项目文件夹 /{full-path-to}/apiato/public
。那么在这种情况下你会有这样的情况:
- map: api.apiato.develop
to: /{full-path-to}/apiato/public
- map: apiato.develop
to: /{full-path-to}/apiato/public
- map: admin.apiato.develop
to: /{full-path-to}/apiato/public
-
添加域名到 hosts 文件:
- 打开本计算机的
/etc/hosts
。
我们将apiato.develop
作为本地域名使用(如果需要,您可以更改它)。 - 将域名及其子域名映射到Vagrant IP地址:
192.168.10.10 apiato.develop 192.168.10.10 api.apiato.develop 192.168.10.10 admin.apiato.develop
如果你是使用的 NGINX 或 Apache,确保在你的配置文件中的参数 server_name(以NGINX为例)或 ServerName (以Apache为例),设置了
apiato.develop api.apiato.develop admin.apiato.develop
等域名。
(当然你也别忘啊了设置你的root或者DocumentRoot参数为在apiato的apiato/public
公共目录)- 运行虚拟机:
- 打开本计算机的
homestead up --provision
如果你看到 No input file specified
子域名!
尝试运行此命令 homestead halt && homestead up --provision
。
使用其他环境
如果你不使用虚拟化解决方案,你可以直接在计算机配置环境。你需要检查软件的需求列表
运行
- 好了,现在我们可以看看运行的效果了
- 打开 Web 浏览器并访问:
http://apiato.develop
你可以看到Apiato
在一个 HTML 页面。http://admin.apiato.develop
你可以看到一个登录页面。
- 打开您的 HTTP 客户端并请求:
http://api.apiato.develop/
你可以看到一个带有Welcome to apiato.
消息的 json 数据。http://api.apiato.develop/v1
你可以看到一个带有Welcome to apiato (API V1).
消息的 json 数据"。
- 打开 Web 浏览器并访问:
- 使用 HTTP 调用 Api:
你可以使用 Postman,HTTPIE 或者你喜欢的工具
让我们使用 cURL 测试一下(用户注册)节点http://api.apiato.develop/v1/register
curl -X POST -H "Accept: application/json" -H "Cache-Control: no-cache" -F "email=mahmoud@zalt.me" -F "password=so-secret" -F "name=Mahmoud Zalt" "http://api.apiato.develop/v1/register"
你将得到下面的响应
Access-Control-Allow-Origin → ...
Cache-Control → ...
Connection → keep-alive
Content-Language → en
Content-Type → application/json
Date → Wed, 11 Apr 2000 22:55:88 GMT
Server → nginx
Transfer-Encoding → chunked
Vary → Origin
X-Powered-By → PHP/7.7.7
X-RateLimit-Limit → 30
X-RateLimit-Remaining → 29
{
"data": {
"object": "User",
"id": 77,
"name": "Mahmoud Zalt",
"email": "apiato@mail.com",
"confirmed": null,
"nickname": "Mega",
"gender": "male",
"birth": null,
"social_auth_provider": null,
"social_id": null,
"social_avatar": {
"avatar": null,
"original": null
},
"created_at": {
"date": "2017-04-05 16:17:26.000000",
"timezone_type": 3,
"timezone": "UTC"
},
"updated_at": {
"date": "2017-04-05 16:17:26.000000",
"timezone_type": 3,
"timezone": "UTC"
},
"roles": {
"data": []
}
}
}
推荐文章: