euroglas / eurorest
EUROGLAS REST 服务器
Requires
- altorouter/altorouter: ^1.1.0
- emarref/jwt: ^1.0.3
README
EUROGLAS REST 服务器
EUROGLAS REST 服务器的基础模块 (CORE)。
定义
- 使用 AltoRouter 管理URL路由
- 为要实现的功能模块提供一个接口
- 为验证访问(auth)的模块提供一个接口
文件
eurorest
├───src
│ ├───auth.php
│ ├───authInterface.php
│ ├───restModuleInterface.php
│ ├───restServer.php
│ └───home
│ └─── index.php
├───.gitignore
├───composer.json
├───index.php
├───iniciaServidorDePruebas.php
├───servidor.ini
├───LICENSE
└───README.md
目录 src
包含实现项目的文件
接口
- authInterface | 用户验证
- restModuleInterface | REST 模块
类
- auth | 作为用户类基础的抽象类
- restServer | REST 服务器的实现
目录 src/home
包含当访问基本 URL /
时显示的页面,告知用户正在访问一个API,而不是一个常规页面。
根目录
包含模块测试的文件
配置
URLs
开发模式下的 URLs
这些 URLs(除了第一个)仅当服务器处于开发模式(ModoDebug=1
)时才可用。
REST 服务器使用方法
要创建一个使用此项目作为 REST URL 服务器的服务器
- 在开发环境中安装 composer
- 为你的项目创建一个目录
- 创建一个
composer.json
文件以定义需求 - 将此项目添加为服务器的需求
{ "require": { "euroglas/eurorest": "^1.0.0" } }
- 运行 composer 以安装依赖(这会生成
composer.lock
文件和vendor
目录)
php composer.phar install
如果你想要使用 composer 的类自动加载器,请在你的 php 脚本(index.php
)中包含以下内容
require 'vendor/autoload.php';
将 URL 请求重定向到你的应用程序
我们需要所有的非存在位置请求都由你的应用程序处理(以便它们被解释为 REST 服务器 URL)。
如果你正在使用 APACHE(.htaccess
)
RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-f RewriteRule . index.php [L]
如果你正在使用 Nginx(nginx.conf
)
try_files $uri /index.php;
模块实现
在创建你的模块时,有一些细节你需要注意,并且不要浪费无数小时(并诅咒这个系统的作者)试图理解为什么事情不起作用。
路由和命名
该系统基于 composer 的自动加载器(它遵循 PSR4 规范),这意味着
使用 src
实现你的模块的文件必须位于你的项目目录的 src 中。
文件名很重要
为了使实现你的模块的类能够被自动加载器访问,文件名必须与类名相同。这是严格的,大小写敏感。
类 class ejemploConCamel
必须在文件 ejemploConCamel.php
中
命名空间
namespace euroglas\pedidos;
我假设任何命名空间都一样有效,但为了避免意外,请使用 EUROGLAS 的命名空间。
继承自父类
实现子模块的类必须实现 restModuleInterface 接口
class ejemplo implements \euroglas\eurorest\restModuleInterface
函数可访问性
实现URL功能(回调函数)的函数必须能够从服务器调用,因此它们需要是公共函数。
public function miEjemplo()
用户模块(auth)的实现
提供访问令牌的模块,以换取一些信息,我们称其为用户访问模块。
用户访问模块遵循正常模块的所有特性,除了它们必须继承抽象类auth
。
抽象类auth
实现了restModuleInterface
和authInterface
。并提供了一些默认函数的实现。
class authEjemplo extends \euroglas\eurorest\auth
注意 当实现auth模块时,请注意,服务器目前只能实现一种认证方法。请确保您的模块已在配置中启用,并使用/debug/authProvider
URL检查它是否已列出为用户验证器。