euroglas/eurorest

EUROGLAS REST 服务器

1.0.0 2021-02-25 22:03 UTC

This package is auto-updated.

Last update: 2024-09-26 05:40:38 UTC


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实现了restModuleInterfaceauthInterface。并提供了一些默认函数的实现。

class authEjemplo extends \euroglas\eurorest\auth

注意 当实现auth模块时,请注意,服务器目前只能实现一种认证方法。请确保您的模块已在配置中启用,并使用/debug/authProvider URL检查它是否已列出为用户验证器。