cradlephp / cradle-api
克雷德尔API包
Requires
- cradlephp/cradle-profile: ~2.3.0
- cradlephp/cradle-queue: ~2.3.0
Requires (Dev)
- phpunit/phpunit: 7.0.2
- satooshi/php-coveralls: 2.0.0
- squizlabs/php_codesniffer: 3.2.3
README
一个开发管理和API生成器,包括以下功能。
- 开发者应用 - 开发者可以使用令牌创建具有REST调用和webhooks的应用程序
- API作用域 - 管理员可以将REST调用分组到作用域中,这些作用域是开发者应用程序可以使用的选择
- OAuth2服务器 - 使用与流行网站相同的协议;开发者可以使用户能够与其他应用程序共享他们的信息
- REST生成器 - 管理员可以在不编程的情况下创建标准REST调用
- Webhook生成器 - 管理员可以创建事件,通过开发者应用程序通知第三方应用程序
- API会话管理 - 管理员可以实时查看活动并手动撤销任何API用户的访问权限
安装
如果您已经安装了克雷德尔,可能不需要安装此包,因为它可能已经包含在内。
$ composer require cradlephp/cradle-api
$ bin/cradle cradlephp/cradle-api install
$ bin/cradle cradlephp/cradle-api sql-populate
如何使用
默认情况下,cradle-api
包的表将是空的。您可以使用此SQL脚本来手动填充它。
因此,当您填充API架构时,将出现一个新部分/developer/app/search
。这类似于Facebook开发者门户(但更为原始)。它还自动创建文档/developer/docs/scopes
和/developer/docs/webhooks
。
REST
REST调用有三种类型
- 公共REST调用:
/rest/public/profile/search
- 应用程序REST调用:
/rest/public/profile/detail/1?client_id=94341e9d0776b73cc7142cc161faf0e688fdbfb2
- 用户REST调用:
/rest/user/app/search?access_token=8cddabc765dbba7cccaa156105af08c04455775c
您期望这与OAuth v2规范非常相似(以及Facebook的REST样式)。以下截图显示了/admin/system/model/rest/create
中的表单字段。
REST调用中的路径也可以采用路由参数,如/profile/detail/:profile_id
,这些参数也将成为事件调用参数的一部分。
Webhooks
然后webhooks就像GitHub的webhooks。
当您创建webhook时,它将可供应用程序使用。但请注意,提供的webhook URL必须是有效的,否则每次创建配置文件时都会变慢(因为它正在尝试调用该webhook URL)。
这样就可以创建API而无需编程。但是,您也可以编写自己的REST调用webhooks。
OAuth v2
在/developer/app/search
中,您也可以尝试3-legged OAuth。
这将重定向您到/dialog/request?client_id=94341e9d0776b73cc7142cc161faf0e688fdbfb2
。您可以使用此相同的URL通过3-Legged OAuth进行身份验证。现在,只需点击允许
即可。
完成操作后,它将返回到相同的屏幕,但URL中将包含一个代码参数。(例如:/developer/app/search?code=1234567890
)。如果您使用POSTMAN,可以调用POST /rest/access?client_id=[your app key]&client_secret=[your app secret]&code=[the code you got earlier]
。这将返回JSON格式的会话令牌,如下所示。
POST /rest/access?client_id=94341e9d0776b73cc7142cc161faf0e688fdbfb2&client_secret=d490f575cd1c48e1b970bb0427ae4ec2b2636403&code=b75272cbf7edbb7a434f77e904a27beb4fe08be7
{
"error": false,
"results": {
"access_token": "f7b9427a17ad4f083fb109ba382a99ca",
"access_secret": "9d5b6d575f13f2c14c5fa8cc843c07fd",
"profile_id": "1",
"profile_name": "John Doe",
"profile_created": "2019-01-20 06:43:42"
}
}
为Cradle PHP做出贡献
感谢您考虑为Cradle PHP做出贡献。
请勿在此存储库中创建问题。官方问题跟踪器位于https://github.com/CradlePHP/cradle/issues。在此创建的问题很可能会被忽略。
请注意,主分支包含当前版本的所有边缘发布。请检查您正在使用的版本,并找到相应的分支。例如 v1.1.1
可能在 1.1
分支中。
bug修复将尽快审查。小的功能也将考虑,但请给我一些时间来审查它并回复您。主要功能只会在 master
分支上考虑。
- 克隆仓库。
- 在本地终端启动并切换到您想贡献的版本。
- 进行您的更改。
- 始终确保在所有提交上签上 (-s) (git commit -s -m "提交信息")