安装

未匹配的标注

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 ValetLaragon,本地机器上。

注意
ICANN 现已正式批准 .dev为通用顶级域名(gTLD)。因此,不建议 .dev 在本地开发设置中再使用域名!此处的文档已更改为使用.develo 而不是 .dev ,您可以更改为 .localhost.test 适合您的需要。

使用 Docker (使用 Laradock)

Laradock 是 Docker PHP 的开发环境,PHP应用程序能很好的运行在上面。

  1. 安装 Laradock
  2. 进入 laradock 目录:
  3. 运行Docker容器:
  4. 请确保你在 .env 文件中的 DBRedis 的 Host 是 Docker IP 的值。
  5. 将域名添加到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.developadmin.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 数据"。
  • 使用 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": []
    }
  }
}

本文章首发在 LearnKu.com 网站上。

上一篇 下一篇
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 0
发起讨论 只看当前版本


暂无话题~