lanos / api-framework
基于 Slim 构建,利用 Eloquent ORM 和 oAuth 2.0 的 RESTful 服务框架
1.0.1
2019-02-06 19:57 UTC
Requires
- php: >=5.5.0
- illuminate/database: ^5.4
- monolog/monolog: ^1.17
- slim/php-view: ^2.0
- slim/slim: ^3.1
Requires (Dev)
- phpunit/phpunit: >=4.8 < 6.0
This package is auto-updated.
Last update: 2024-09-07 16:08:50 UTC
README
计划构建 SaaS 软件包?需要快速部署您想法中的安全 API。
无需再寻找!
该框架旨在快速轻松地部署。并且已被 NuLead 和 Lanos 项目的所有项目所使用。
包含哪些内容?
- Eloquent 对象关系映射
- oAuth 2.0,密码和 client_credentials 流
- 易于依赖注入
- 易于 Auth Guard / 中间件配置
- 资源所有者中间件保护
- 预配置 CORS。
即将推出
An azure container image for this framework!
安装
php composer.phar create-project lanos/api-framework [my-app-name]
将 [my-app-name]
替换为您新应用的期望目录名称。您需要
- 将您的虚拟主机文档根指向新应用的
public/
目录。 - 确保
logs/
可被网络写入。
数据库创建
您需要创建一个数据库,确保应用有访问权限,并在 src/settings.php 中进行配置。
然后在数据库中创建以下模式。
CREATE TABLE IF NOT EXISTS `oauth_access_tokens` (
`access_token` varchar(40) NOT NULL,
`client_id` varchar(80) NOT NULL,
`user_id` varchar(80) DEFAULT NULL,
`expires` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
`scope` varchar(4000) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
CREATE TABLE IF NOT EXISTS `oauth_authorization_codes` (
`authorization_code` varchar(40) NOT NULL,
`client_id` varchar(80) NOT NULL,
`user_id` varchar(80) DEFAULT NULL,
`redirect_uri` varchar(2000) DEFAULT NULL,
`expires` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
`scope` varchar(4000) DEFAULT NULL,
`id_token` varchar(1000) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
CREATE TABLE IF NOT EXISTS `oauth_clients` (
`client_id` varchar(80) NOT NULL,
`client_secret` varchar(80) DEFAULT NULL,
`redirect_uri` varchar(2000) DEFAULT NULL,
`grant_types` varchar(80) DEFAULT NULL,
`scope` varchar(4000) DEFAULT NULL,
`user_id` varchar(80) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
INSERT INTO `oauth_clients` (`client_id`, `client_secret`, `redirect_uri`, `grant_types`, `scope`, `user_id`) VALUES
('lanosTest', '098f6bcd4621d373cade4e832627b4f6', NULL, 'password client_credentials', 'user_read user_write', NULL);
CREATE TABLE IF NOT EXISTS `oauth_jwt` (
`client_id` varchar(80) NOT NULL,
`subject` varchar(80) DEFAULT NULL,
`public_key` varchar(2000) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
CREATE TABLE IF NOT EXISTS `oauth_refresh_tokens` (
`refresh_token` varchar(40) NOT NULL,
`client_id` varchar(80) NOT NULL,
`user_id` varchar(80) DEFAULT NULL,
`expires` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
`scope` varchar(4000) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
CREATE TABLE IF NOT EXISTS `oauth_scopes` (
`scope` varchar(80) NOT NULL,
`is_default` tinyint(1) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
CREATE TABLE IF NOT EXISTS `oauth_users` (
`username` varchar(80) NOT NULL DEFAULT '',
`password` varchar(80) DEFAULT NULL,
`first_name` varchar(80) DEFAULT NULL,
`last_name` varchar(80) DEFAULT NULL,
`email` varchar(80) DEFAULT NULL,
`email_verified` tinyint(1) DEFAULT NULL,
`scope` varchar(4000) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
INSERT INTO `oauth_users` (`username`, `password`, `first_name`, `last_name`, `email`, `email_verified`, `scope`) VALUES
('test', '$2y$10$U3CMYLB/2xV3xI6lv3Kmfek.R.N.DD1GrFhv4PciknQ15Tcf889nu', 'robert', 'lane', 'test@test.com', 1, 'user_read user_write');
ALTER TABLE `oauth_access_tokens`
ADD PRIMARY KEY (`access_token`);
ALTER TABLE `oauth_authorization_codes`
ADD PRIMARY KEY (`authorization_code`);
ALTER TABLE `oauth_clients`
ADD PRIMARY KEY (`client_id`);
ALTER TABLE `oauth_refresh_tokens`
ADD PRIMARY KEY (`refresh_token`);
ALTER TABLE `oauth_scopes`
ADD PRIMARY KEY (`scope`);
ALTER TABLE `oauth_users`
ADD PRIMARY KEY (`username`);
运行应用程序
要运行开发中的应用程序,您可以运行以下命令
cd [my-app-name]
php composer.phar start
在应用目录中运行此命令以运行测试套件
php composer.phar test
就是这样!现在去构建一些酷的东西吧。