pRESTige从 MySQL 数据库自动生成无代码 RESTful API

pRESTige是一个开源的低代码平台,允许您完全在Web浏览器中开发应用程序,特别是API。它将MySQL数据库转换为符合OpenAPI规范的RESTfulAPI,提供内置的身份验证、文件上传、Swagger文档、代码编辑器和数据库管理工具。pRESTige支持在共享主机上运行,提供实时API和文档更新,以及用于身份验证和文件管理的API。用户可以通过提供数据库连接字符串快速开始使用,无需编写代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

https://github.com/geekypedia/pRESTige

介绍

pRESTige 基本上是一个 RAD(快速应用程序开发)工具集,允许完全从您的 Web 浏览器中进行应用程序开发。它是一个开源的低代码平台。

它主要包含一个 API 引擎,将您的 MySQL 数据库投影为符合 OpenAPI 规范 (Swagger) 的完整工作的 RESTful API 集合。您可以通过提供连接字符串来插入现有数据库,您将立即获得功能齐全的 RESTful API,以及在 Swagger 中生成的文档。它支持 OpenAuth,还提供了一种基于令牌的机制来保护您的 API。它还提供内置的登录 API 来进行身份验证和生成令牌。它提供了内置的文件上传 API。它提供嵌入式IDE、数据库管理工具和终端,您可以从浏览器运行所有这些。

新添加 - 类似于 Visual Studio Code 的新代码编辑器,具有多种语言的自动完成功能。一个 Node.JS 管理器,即使您的共享主机提供商只允许 PHP,它也允许您运行本机 Node.JS 应用程序。是的,确实很神奇!你知道吗,你也可以用 Python 做同样的事情。是的,在共享 PHP 托管下运行原生 python API!确实是超级神奇!

最好的部分是,它有一个非常简单的架构,因此可以在共享托管环境中按原样托管,即使在 FreeHosting.com、GoogieHost 和 000webhost 等免费环境上也是如此。我们还在 HostBudget.com、BingLoft、Flaunt7、KatyaWeb 等更便宜的主机上进行了尝试。因此,您只需要爷爷的笔记本电脑、浏览器和互联网。

这是您在 Web 浏览器中进行快速应用程序开发的灵丹妙药。

特征

  • 无需编写任何代码即可自动动态地将 MySQL 表转换为 RESTful API。
  • 表中的所有关系都在 API 中维护。
  • 强大的查询引擎。像在 SQL 中一样查询您的 API。
  • 数据库中的更改会立即反映在 API 中,而无需重新启动流程。
  • API 中的更改会立即反映在 API 文档中,而无需重新生成任何内容。
  • 无需在浏览器中安装任何插件即可测试您的 API。
  • 直接从您的浏览器嵌入式轻量级数据库管理。您可以在表格中进行更改,而无需依赖任何桌面工具。
  • 嵌入式代码编辑器。直接从您的浏览器开发您的应用程序。查看实时预览。
  • 一个新的嵌入式代码编辑器,类似于 Visual Studio Code,具有代码自动完成功能。
  • 嵌入式文件管理器。轻松将一堆文件上传到您的工作区。
  • 嵌入式终端。直接从浏览器运行 linux 命令。
  • 嵌入式 Node.JS 管理器。即使主机只允许 PHP,也可以运行你的 nodejs 程序。
  • 嵌入式 Python 管理器。即使主机只允许 PHP,也可以运行您的 Python 程序。
  • 嵌入式 Lua 管理器。即使主机只允许 PHP,也可以运行你的 Lua 程序。
  • 内置身份验证和令牌生成 API
  • 内置文件上传 API
  • 支持 OAuth
  • 支持共享主机(终端组件除外)

安装

使用 pRESTige 非常容易快速启动和运行!

视窗

安装任何 AMP 堆栈(PHP、MySQL 和 Apache 服务器)软件,例如XAMPP、WAMP Server 等。

如果您已设置 XAMPP,请使用其控制面板启动服务器。

下载最新的 pRESTige 捆绑包。

在 XAMPP 下的 htdocs 文件夹(或 WAMP 服务器、Apache 或任何其他替代方案下的相关 http docs 文件夹)中提取 pRESTige 包。

启动 URL http://localhost/YOUR_PRESTIGE_FOLDER_NAME

Linux/Mac

git clone https://github.com/geekypedia/prestige

cd prestige

php -S 0.0.0.0:8080

现在只需打开以下链接即可打开仪表板:http://localhost:8080

初始配置

打开“API 配置”以将系统连接到数据库。

username: admin
password: admin

您可以使用以下端点来使用系统。

零件网址
启动器http://localhost:8080/launch
API 配置http://localhost:8080/api/configure
APIhttp://localhost:8080/api
API 文档http://localhost:8080/api/docs
API 测试工具http://localhost:8080/api/test
数据库管理http://localhost:8080/db
代码编辑器http://localhost:8080/ide
新代码编辑器http://localhost:8080/editor
HTML5 生成器http://localhost:8080/builder
Node.JS 管理器http://localhost:8080/node
蟒蛇管理器http://localhost:8080/python
Lua 管理器http://localhost:8080/lua
文件管理器http://localhost:8080/fm
终端http://localhost:8080/终端

先决条件

您需要 PHP 5.4+ 来运行应用程序。您还需要能够访问 MySQL 服务器数据库。您可以运行以下命令以确保处理所有 php 依赖项。

确保您的 APT 缓存是最新的 sudo apt-get update

安装默认值 sudo apt-get install -y php php-cli php-common php-mbstring php-gd php-intl php-xml php-mysql php-zip php-curl php-mcrypt

或使用特定版本安装。例如,以下命令针对 PHP 7.2。您可以修改它们以匹配您的版本。

sudo apt-get install -y php7.2 php7.2-cli php7.2-common php7.2-mbstring php7.2-gd php7.2-intl php7.2-xml php7.2-mysql php7.2-zip php7.2-curl php7.2-mcrypt

如果您在任何软件包中遇到任何错误,请确保在继续之前更正它们。

如果您希望将其部署到 Apache 服务器,则需要确保运行以下命令。

sudo apt-get install -y libapache2-mod-php7.2

如何使用声望?

运行应用程序并使用 DB 对其进行配置

pRESTige Api Engine 基本上将所有具有关系的 MySQL 数据库表转换为 RESTful API。它是动态的。它是一个运行时。因此,一旦您的 API 引擎连接到数据库,数据库中的任何更改都会直接反映在 API 中。

所以第一步是向 API Engine 提供一个连接字符串。它需要用户名、密码和数据库名称。无需修改任何配置文件,您可以直接从应用程序本身执行此操作。您可以使用以下命令之一来运行应用程序。

php -S 0.0.0.0:8080

要么

./serve.sh

您将看到一个仪表板,您可以从中控制设置或启动工具。

首先是配置数据库连接。单击仪表板中的“API 配置”。

放置默认凭据(注意:您始终可以通过在代码编辑器中更改它们来更改这些凭据)

username: admin
password: admin

或者,您可以直接访问以下 URL。

http://localhost:8080/api

首次运行此应用程序时,您将看到提供数据库凭据的提示。如果您在这里犯了错误,请不要担心。您始终可以通过再次点击以下 URL 或转到仪表板并单击“API 配置”来重新配置它。

http://localhost:8080/api/configure

检查生成的 API 文档和测试工具

提供连接字符串后,您可以在以下位置看到您的表已转换为带有完整文档的 API:

http://localhost:8080/api/docs

该文档基于 Swagger,您可以使用相同的文档工具来测试您的 API。但除此之外,如果您想要一个完全可定制的工具,只需点击此网址。

http://localhost:8080/api/test

管理和修改您的数据库

如果您没有现有的数据库,并且您刚刚安装了 mysql,并且您正在寻找一个快速的轻量级工具来管理您的 MySQL,那么您很幸运。pRESTige 捆绑了一个很棒的开源工具(由 Adminer 提供),您可以使用它来创建和管理您的 MySQL。只需点击此链接。

http://localhost:8080/db

在线代码编辑器

现在您可以直接从浏览器操作您的数据库,并立即在文档中看到其结果,您可能希望开始编写您的 Web 应用程序。为此,您需要一个 IDE。你不需要下载任何东西,去这里。

http://localhost:8080/ide

放置默认凭据(注意:您始终可以在代码编辑器中更改这些凭据)

username: admin
password: admin

这是一个功能齐全的 IDE,直接在您的浏览器中。

我们已经为您创建了 2 个项目。一个是“web”,另一个是“api”。

自定义 API

现成的 API 很好,但如果您想创建自己的自定义 API 怎么办?可能是您想在数据库中调用存储过程,或者您只想编写一个不执行常规 CRUD 的 API。只需加载 API 项目。那里有一个示例 API。创建该 API 的副本并修改您想要的任何内容。默认情况下,pRESTige 将加载 API 项目中编写的任何内容。如果您在该项目中创建多少 PHP 文件无关紧要,它会全部加载它们,因此您无需进行任何类型的簿记。

开始编写您的应用程序

在“web”项目中,您会找到一些示例,您可以使用这些示例来了解如何利用现有框架(例如 angularjs)来调用 RESTful API 等。

默认,http://localhost:8080/会将您重定向到http://localhost:8080/ide/workspace/web

因此,您在“网络”项目中创建/修改的任何内容都可以直接在浏览器中进行测试。如果您在不进行任何修改的情况下部署此工具集,您实际上可以在不停机的情况下更改实时应用程序代码。但是,这种情况很可能仅在开发和测试阶段有用。当您准备好进行生产时,您可以简单地将“网络”项目中的内容复制到根文件夹。

'web' 项目下的 'examples' 文件夹中有一些示例。您可以在以下位置探索它们:http://localhost:8080/ide/workspace/web/examples/

你可以做更多

这不仅限于 2 个项目。您可以创建任意数量的应用程序,甚至可以通过右键单击编辑器中的任何文件和文件夹并启动预览来预览您的应用程序。

在线终端

最后但同样重要的是,如果您想在应用程序目录中运行 linux 终端命令,您可以从浏览器中执行此操作。就去这里吧。

http://localhost:8080/terminal

使用终端的凭据与 IDE/代码编辑器的凭据相同。

终端功能通常在共享主机环境中不起作用,因为它们不允许从 PHP 调用外部进程。但是,如果您将其托管在自己的服务器上,则不会有此类限制。这将使开发阶段变得容易。

API 配置、IDE 和终端的默认凭据是什么?

用户名:admin 密码:admin

他们都使用相同的凭据集。您可以通过登录 IDE 来更改凭据。

如何查询 API?

实际的 API 设计非常简单,并且遵循大多数 API 的设计模式。

(C)reate > POST   /table
(R)ead   > GET    /table[/id]
(U)pdate > PUT    /table/id
(U)pdate > POST   /table/id
(D)elete > DELETE /table/id

为了将其付诸实践,下面是一些如何使用 pRESTige API 的示例:

# Get all rows from the "customers" table
GET http://localhost:8080/customers/

# Get a single row from the "customers" table (where "123" is the ID)
GET http://localhost:8080/customers/123

# Get 50 rows from the "customers" table
GET http://localhost:8080/customers/?limit=50

# Get 50 rows from the "customers" table and skip first 50 rows
GET http://localhost:8080/customers/?limit=50&offset=50

# Get 50 rows from the "customers" table ordered by the "date" field
GET http://localhost:8080/customers/?limit=50&order=date&orderType=desc

# Get all the customers named LIKE Tom; (Tom, Tomato, Tommy...)
GET http://localhost:8080/customers/?name[in]=Tom

# Get count of the customers
GET http://localhost:8080/customers/?count=true

# Create a new row in the "customers" table where the POST data corresponds to the database fields
POST http://localhost:8080/customers

# Update customer "123" in the "customers" table where the PUT data corresponds to the database fields
PUT http://localhost:8080/customers/123
POST http://localhost:8080/customers/123

# Delete customer "123" from the "customers" table
DELETE http://localhost:8080/customers/123

请注意,GET调用接受以下查询字符串变量:

  • order(订购列)
    • orderType(下单方向:ASCDESC
  • limitLIMIT xSQL 子句)
    • offsetOFFSET xSQL 子句)
  • parameter[in](喜欢搜索)
  • parameter[gt](大于搜索)
  • parameter[lt](小于搜索)
  • parameter[ge](大于或等于搜索)
  • parameter[le](小于或等于搜索)
  • orFilter(或多个参数的条件)

如何启用身份验证?

从用户界面

  1. 打开启动仪表板。
  2. 转到 API 配置
  3. 提供凭据(默认 - 管理员/管理员,除非您已从 Codiad 编辑器更改)
  4. 您将找到启用身份验证模式的选项。
  5. 保存设置。节点:您还将找到一个文本区域来定义您想要绕过的任何自定义 API。

从代码

  1. 打开基于 Web 的代码编辑器:http://localhost:8080/ide
  2. 加载“api”项目
  3. 打开'index.php'
  4. 取消注释对“enable_simple_auth”函数的调用。
  5. 如果你想绕过任何特定的 API,你可以将它作为参数传递。例如,'enable_simple_auth(array("GET your/api"));' 将从身份验证中排除 GET your/api。任何其他 API 都将要求您在标头或查询字符串中将身份验证令牌作为 api_key 传递。默认情况下,总是绕过示例 API 'GET hello/world'。注意:一些共享主机提供商不允许标头带有下划线。在这种情况下,您可以使用“api-key”。
  6. 为了使 auth API 工作,您需要在数据库中有一个“用户”表。'index.php' 中已经提到了创建这个表的脚本。您可以复制此脚本并在数据库管理工具中执行它(http://localhost:8080/db )
  7. 一旦取消注释 enable_simple_auth 调用,所有 API 甚至文档都将受到保护。您将需要调用“POST users/login”来进行身份验证并生成令牌。第一次,只需在“用户”表中创建一条记录,并将任何随机字符串作为令牌写入。使用此令牌访问受保护区域,或生成实际令牌。
enable_simple_auth ( $排除, $ enable_open_user_registrations );

启用身份验证后如何生成令牌?

从用户界面

  1. 打开启动仪表板。
  2. 转到 API 配置
  3. 提供凭据(默认 - 管理员/管理员,除非您已从 Codiad 编辑器更改)
  4. 您会在页面上找到一个生成令牌的按钮。

从代码

  1. 您需要有一个与数据库中“用户”表中的记录相匹配的用户名/电子邮件和密码。
  2. 基于 Web 的开放式 API 测试工具:http://localhost:8080/api/test
  3. 向“ http://localhost:8080/api/users/login ”发出 POST 请求。提供用户名或电子邮件作为参数。提供密码作为参数。
  4. 请求成功后,您将获得一个用户对象。该对象应该有一个令牌。令牌每 24 小时过期一次。每天 00:00 时,旧令牌将不起作用,您需要再次调用此 API 以生成新令牌。

启用身份验证后还有哪些其他用户 API 可用?

POST用户/登录
POST用户/设置密码
POST用户/更改密码
POST用户/忘记密码
POST用户/注册

如何使用令牌?

如果启用了身份验证,当您调用任何 API 时,您将收到“401 Unauthorized”响应。您需要在调用 API 时将令牌的值作为标头“api_key”传递。

甚至 API 文档部分也将受到保护。您可以在文档屏幕上使用与 api_key 相同的令牌。

什么是SaaS模式?

在 SaaS 模式下,API 引擎自动将每个表与一个“秘密”相关联。这个秘密是另一个类似于 api_key 的“令牌”。api_key 确保您已通过身份验证,而 secret 确保您只能查看您自己组织的数据和用户。

因此,为了启用 SaaS 模式,您需要在数据库中有一个“组织”表。该表将具有每个组织唯一的“org_secret”。

users 表中的每个用户都有一个与“org_secret”匹配的“secret”。预计您创建的任何表也应该有一个名为“秘密”的字段。

使用默认用户/登录 api 登录后,您将同时获得“api_key”和“secret”。然后,您需要为所有后续请求传递秘密和 api_key。api_key 进入标题,但秘密进入查询字符串(GET/DELETE)或正文(POST/PUT)。作为 body/querystring 的一部分,它与每个表的数据库中的 secret 字段匹配,因此您总是会得到按组织过滤的结果。

如何启用 SaaS 模式?

从用户界面

  1. 打开启动仪表板。
  2. 转到 API 配置
  3. 提供凭据(默认 - 管理员/管理员,除非您已从 Codiad 编辑器更改)
  4. 您将找到启用 SaaS 模式的选项。
  5. 保存设置。节点:您还将找到一个文本区域来定义您想要绕过的任何自定义 API。

从代码

  1. 打开基于 Web 的代码编辑器:http://localhost:8080/ide
  2. 加载“api”项目
  3. 打开'index.php'
  4. 取消注释对“enable_simple_saas”函数的调用。(身份验证是先决条件,因此请确保您已经启用了上面提到的简单身份验证!)。
  5. 如果你想绕过任何特定的 API,你可以将它作为参数传递。例如,'enable_simple_saas(array("GET your/api"));' 将从组织权限中排除 GET your/api。任何其他 API 都将要求您在正文或查询字符串中传递秘密。
  6. 为了使 SaaS API 工作,您需要在数据库中有一个“组织”表。'index.php' 中已经提到了创建这个表的脚本。您可以复制此脚本并在数据库管理工具中执行它(http://localhost:8080/db )
  7. 一旦取消注释 enable_simple_auth 调用,所有 API 都将受到组织机密的保护。您将需要调用“POST users/login”来进行身份验证并生成密钥。第一次,只需在“组织”表中创建一条记录,并将任何随机字符串写入秘密。您可以使用 index.php 中的示例脚本来执行此操作。
enable_simple_auth ( $排除, $ enable_open_user_registrations );
enable_simple_saas ( $排除, $ check_request_authenticity , $ enable_open_organization_registrations );

SaaS 模式中的角色

超级管理员

可以创建新组织,批准他们的许可证并更改管理员帐户的有效性,重置密码。

默认情况下 $check_request_authenticity = true,因此超级管理员可以控制组织的许可,但看不到该组织的实际数据,这是 SaaS 的核心要求。但是,出于某种原因,如果您希望超级管理员查看所有内容,您可以通过设置 $check_request_authenticity = false 来实现。

行政

可以在组织下创建新用户并重置他们的密码。可以访问菜单中的管理部分。

用户

没有特定权限。可以使用其余的 API。

启用 SaaS 模式后,哪些组织 API 可用?

POST组织/激活
POST组织/注册

如何创建可以将文件上传到服务器的 API?

你不需要。有一个内置的 API。

从用户界面

  1. 打开启动仪表板。
  2. 转到 API 配置
  3. 提供凭据(默认 - 管理员/管理员,除非您已从 Codiad 编辑器更改)
  4. 您将找到启用默认文件 API 的选项。
  5. 保存设置。

从代码

  1. 打开基于 Web 的代码编辑器:http://localhost:8080/ide
  2. 加载“api”项目
  3. 打开'index.php'
  4. 取消注释对“enable_files_api”函数的调用。
  5. 为了使身份验证 API 工作,您需要在数据库中有一个“文件”表。'index.php' 中已经提到了创建这个表的脚本。您可以复制此脚本并在数据库管理工具中执行它(http://localhost:8080/db )
  6. 您可以使用 API Docs 来查看新的 Files API,并且可以从那里对其进行测试:http://localhost:8080/api/docs
enable_files_api ();

如何创建自定义 API?

  1. 打开基于 Web 的代码编辑器:http://localhost:8080/ide
  2. 加载“api”项目
  3. 在这个项目下创建一个 .php 文件。您可以将其保存在任何地方(直接在项目根文件夹或子文件夹中)。
  4. 注册一个新的自定义 API,如下例所示。

注意:在代码编辑器内的“api”项目中,必须使用 pRESTige 特定代码编写任何自定义 API。它就是这样设计的。pRESTige 会自动获取在“api”项目中编写的任何自定义 API。所以要小心你写的东西,以避免 500 内部服务器错误。不管你给你的PHP文件起什么名字,或者你是否把它放在'api'项目的子文件夹中。这使您可以灵活地安排代码。出于某种原因,您需要编写一个 RAW PHP 文件来执行 pRESTige 范围之外的操作,在代码编辑器中创建另一个项目,然后将您的 PHP 文件放在那里。不要将“api”项目用于任何非 pRESTige 代码,否则在调用 API 时可能会出现内部服务器错误。

$ prestige -> register ( "GET" , "hello" , "world" , function ( $ params = null ){
	 global  $ prestige ;
	 $ value = $ prestige -> query ( "select 'world' as 'hello'" ) ; //你可以在这里做任何类型的 MySQL 查询
	$ prestige -> showResult ( $ value );
},数组(), "Hello World API" );

这将在http://localhost:8080/api/hello/world创建一个新的 API

您可以使用 $params['parameter_name'] 访问 GET 或 POST 参数。

$prestige 运营

$prestige 是一个引用核心 API 引擎的全局变量。您可以使用它来编写中间件、拦截器和自定义 REST API。它有一些可用于日常操作的有用方法。

注意:这些操作只能在代码编辑器中的“api”项目下工作。

注册($method,$route,$path,$handler,$required_pa​​rameters,$description)

使用此方法注册新的自定义 API。

例子:

$ prestige -> register ( "GET" , "hello" , "world" , function ( $ params = null ){
	 global  $ prestige ;
	 $ value = $ prestige -> query ( "select 'world' as 'hello'" ) ; //你可以在这里做任何类型的 MySQL 查询
	$ prestige -> showResult ( $ value );
},数组(), "Hello World API" );

实际的 API 函数通过变量 $params 传递。您可以从 $params 访问查询字符串或 post-body 数据。例如:$params['id'] 或 $params['email']

如果要使用 $prestige 的其他方法,只需将其称为全局变量即可。

您可以在这里编写任何类型的 PHP 代码。您还可以使用下面提到的辅助函数。建议使用 showResult 或 showError 从 API 呈现适当的结果。

查询($查询字符串)

返回对数据库执行指定查询字符串的结果。它可以是任何类型的 SQL 语句,例如 SELECT、INSERT、UPDATE、DELETE 或对任何存储过程的 CALL 等。

查找($route,$filters = NULL,$match_any = false)

通过传递过滤器参数返回查询特定 REST API 路由的结果。默认情况下,将匹配所有过滤器参数。如果你传递 $match_any = true,那么任何过滤器参数都将被匹配。

findOne($route, $id)

查找具有特定 ID 的单个对象。

创建($route,$object,$throw_exception = false)

返回已创建的对象以及带有 id 的已创建对象。发生错误时返回 null。如果你设置 $throw_exception = true,那么它会在出错的情况下抛出异常。

更新($route,$id,$object,$throw_exception = false)

返回更新的对象。发生错误时返回 null。如果你设置 $throw_exception = true,那么它会在出错的情况下抛出异常。

删除($route,$id,$throw_exception = false)

返回已删除的对象。发生错误时返回 null。如果你设置 $throw_exception = true,那么它会在出错的情况下抛出异常。

显示结果($值)

200 OK 指定值

显示错误($errorCode,$message = NULL)

HTTP_ERROR。示例 400、404、405、422、500。带有可选消息。

getURL($url, $params = null, $headers = null, $unsafe = false)

从任何第 3 方 URL 获取响应。可用于与各种 3rd 方平台集成。如果您希望使用自签名证书调用 API,请将 $unsafe 设置为 true。如果您正在调用 API 并希望将结果解析为对象,请使用 json_decode($return_value, true)。

postURL($url, $payload = null, $headers = null, $unsafe = false)

将数据发布到任何第 3 方 URL。可用于与各种 3rd 方平台集成。如果您希望使用自签名证书调用 API,请将 $unsafe 设置为 true。如果您正在调用 API 并希望将结果解析为对象,请使用 json_decode($return_value, true)。

准备邮件($模板,$数据)

使用类似 mustache/angularjs 的语法提供标记化模板,并将其替换为实际数据。

例如:以下程序的输出

$模板= “你好 {{用户名}}!” ;
$数据[ “用户名” ]= “蝙蝠侠”;
回声 $声望->准备邮件( $模板, $数据);

将会

你好蝙蝠侠!

sendMail($from, $to, $subject, $body, $smtp)

使用 SMTP 发送电子邮件。

$ from = "youremail@yourdomain.com" ;
$ to = [ "recepientsemail@theirdomain.com" ];
$主题= "主题在这里" ;
$ body = "文本或 HTML 放在这里" ;
$ smtp = array (
	 "host" => "smtp.yourdomain.com" ,
	 "username" => "YOUR USERNAME" ,
	 "password" => "YOUR PASSWORD" ,
	 "proto" => "
);
$ prestige -> sendMail ( $ from , $ to , $ subject , $ body , $ smtp );

sendMailSparkPost($from, $to, $subject, $body, $api_key)

如果您想从您的代码发送电子邮件,通常您使用 SMTP 发送邮件方法。但是,在现实世界的场景中,大多数共享托管服务提供商不允许使用它,除非您向他们支付额外费用。如果您为此目的使用您的私人电子邮件帐户,Google 或 Microsoft 等提供商可能会阻止您的帐户。

有一些很好的第三方服务允许我们使用他们的平台免费发送电子邮件。其中之一是 SparkPost。您只需要一个域/子域。付费或免费都无所谓。您所需要的只是一种管理特定域/子域的 DNS 条目的方法。然后您需要在 SparkPost 注册一个帐户,向他们注册您的域,进行必要的配置并获取用于发送邮件的 api 密钥。

$ from = "youremail@yourdomain.com" ;
$ to = [ "recepientsemail@theirdomain.com" ];
$主题= "主题在这里" ;
$ body = "文本或 HTML 放在这里" ;
$ api_key = "YOUR_SPARKPOST_API_KEY" ;
$ prestige -> sendMailSparkPost ( $ from , $ to , $ subject , $ body , $ api_key );

uuid()

返回一个唯一的 32 个字符的标识符。

相交字符串($str1,$str2)

返回两个字符串之间的交集。

开始($str,$key)

如果 $str 中的字符串以 $key 中的值开头,则返回 true。

结束($str,$key)

如果 $str 中的字符串以 $key 中的值结尾,则返回 true。

where($array, $property_name, $where, $single = true, $only_return_keys = false)

类似于 SQL 搜索。在数组中查找匹配记录,其中提供的值与数组中对象的指定属性的值匹配。

以下将返回城市为“纽约”的第一个客户

$ prestige -> where ( $ customers , 'city' , 'New York' );

以下将返回所有城市为“纽约”的客户

$ prestige -> where ( $ customers , 'city' , 'New York' , false );

以下将仅返回 $customers 数组中城市为“纽约”的第一个客户的索引

$ prestige -> where ( $ customers , 'city' , 'New York' , true , true );

请求是移动()

检查是否从移动浏览器发出请求。

请求路由()

以下列格式返回当前路线

METHOD route/path

例子:

GET hello/world
POST users/login

加密($文本,$密钥)

加密文本。仅使用 generateCryptoKey() 来生成 $key。不要使用任何随机字符串作为 $key。

解密($文本,$密钥)

解密文本。使用之前从 generateCryptoKey() 生成的 $key。它必须与用于加密的 $key 相同。

生成加密密钥()

生成用于加密和解密的密钥。每次调用此方法时,都会生成一个新密钥。所以理想的方法是生成一个密钥,将它存储在安全的地方,然后用它来加密和解密。如果您将任何随机密钥传递给加密/解密函数,则会产生错误。

差异($obj1,$obj2)

生成两个对象之间的差异。可用于生成审计日志。

现在()

获取格式与 MySQL 兼容的日期时间对象。

今天()

获取与 MySQL 兼容的格式的日期对象。

toDate($日期时间)

将日期时间对象转换为与 MySQL 兼容的格式的日期对象。

活动

在生成的 API 的 POST、PUT 和 DELETE 事件上,您可以通过将这些函数定义为这些事件的处理程序来挂钩您自己的代码。

事件处理函数语法约定:

before_method_route ( $ data )
 on_method_route ( $ result )

示例:如果您在数据库中创建名为“users”的表,您将在“/users”处获得 RESTful API。此端点的事件如下:

before_post_users ( $ data )
 before_put_users ( $ data )
 before_delete_users ( $ data )
 on_post_users ( $ result )
 on_put_users ( $ result )
 on_delete_users ( $ result )

你可以在你的 API 项目中将这些事件定义为函数并在那里做一些额外的事情。

例子:

function  before_post_users ( $ data ){
	 //编写代码检查 $data['email'] 是否包含禁止域名。
	//请注意,如果您正在执行批量操作,$data 可能是一个数组
}


function  on_post_users ( $ result ){
	 //编写代码以使用 send_email_sparkpost() 方法向 $result['email'] 发送电子邮件
	//请注意,如果您正在执行批量操作,$result 可能是一个数组	
}

自定义事件

on_organization_registered($组织)

如果您已启用 SaaS 模式并打开注册,那么您将获得 /organizations/register API。当你调用它注册一个组织时,你会得到这个事件。您可以使用此事件通知最终用户等待他们被激活。

on_user_registered($user)

如果您启用了身份验证模式并打开了注册,那么您将获得 /users/register API。当你调用它注册用户时,你会得到这个事件。您可以使用此事件通过欢迎电子邮件通知最终用户。

on_organization_activated($组织,$用户)

如果您启用了 SaaS 模式,那么您将获得 /organizations/activate API。当您调用它并且想要一个组织的激活或许可证更改事件时,可能要发送电子邮件,请在您的 api 项目中定义此函数。如果在用户激活后触发事件,则 $user 将不可用。当您只想更改许可证或有效性信息时,就会出现这种情况。

on_forgot_password($email, $password)

如果您启用了简单验证,并且您想在有人调用 /users/forgot-password API 时处理该事件,只需定义此函数并将电子邮件发送到参数中的电子邮件地址,并附上密码!

on_set_password($email, $password)

如果你开启了Simple Auth,并且你想处理有人调用/users/set-password API 的事件,只需定义这个函数,并发送一封电子邮件到参数中的电子邮件地址,并附上密码!

on_change_password($email, $password)

如果你开启了 Simple Auth,并且你想处理有人调用 /users/change-password API 的事件,只需要定义这个函数,然后给参数中的邮箱地址发送一封邮件,并附上密码!

on_login($用户)

如果您启用了简单身份验证,那么您将获得 /users/login API。成功登录后,您可以挂钩 on_login 函数来运行您自己的代码。

中间件函数

您可以在 API 项目中的任何位置定义这些函数,并将其注入请求管道以执行特定操作。

request_headers_remove()

有时,您的遗留应用程序可能想要调用您的 API,并且它们传递了一些 API 不期望的额外参数。这将强制您的 API 返回 405 - method not allowed 错误。此函数用于删除那些额外的标头,因此即使您的遗留应用程序或基础设施中的任何中间件正在传递额外的标头,您的 API 也能正常工作。

例子

function  request_headers_remove (){
	 return  array ( "custom-header-1" , "custom-header-2" );
}

请求拦截器

API 项目下的所有 PHP 文件将被 API 引擎自动拾取。您可以使用此项目进行配置、编写自定义 API、事件处理程序和中间件功能。

如果您编写任何未封装在函数中的代码,它将应用于所有请求。所以你可以使用这种行为来编写拦截器。

示例:编写代码来限制来自某些 IP 地址的请求。

本土化

如果您想在一个中心位置注册您的本地化文本,您可以通过调用“M”来实现。

M($key, $消息)

注册一条消息。

M($key)

获取 $key 引用的消息。

M($key_message_pairs)

注册批量消息。

M_load($tableName)

从数据库表中加载 $key 和 $message。该表应具有“键”和“消息”列。

M_load($tableName, $keyColumnName, $messageColumnName)

从数据库表中加载 $key 和 $message。指定键和消息的列名。

传统模式

某些免费托管网站不允许使用 PUT 或 DELETE 方法。甚至一些严格控制的公司环境也有这样的限制。在配置 API 时,有一个选项可以打开传统模式。这将神奇地将所有 PUT 和 DELETE API 转换为老式的 POST API,在路由路径中带有 /update 和 /delete。

如果您想查看差异,只需打开/关闭该功能并刷新 API 文档资源管理器。

如果上述解决方案对您不起作用,那么您仍然可以通过使用带有 X-HTTP-Method-Override 标头的 POST 来遵循标准做法。您可以在不打开传统模式的情况下执行此操作。

示例:如果您需要拨打

DELETE http://localhost:8080/api/customers/5

您实际上将调用以下 URL

POST http://localhost:8080/api/customers/5

但是,与该 POST 请求一起,您将在请求中传递一个额外的标头

X-HTTP-Method-Override: DELETE

我正在尝试在 iPad 中打开代码编辑器,但是当我尝试双击(点击)时,它会放大/缩小。我可以使用单击打开文件吗?

是的你可以。

  1. 登录代码编辑器。
  2. 点击右侧的汉堡菜单以打开面板。
  3. 点击设置。
  4. 单击系统设置。
  5. 将文件管理器触发器设置为单击。
  6. 点击保存。

现在,您只需点击左侧资源管理器上的文件名即可打开文件。

更多用例/食谱

让我们通过示例查看更多用例和食谱。

每当有人在我的网站上提交他们的联系人详细信息时,我都希望将其存储在数据库中。我还想向该联系人发送一封电子邮件,感谢他访问我们的网站。

  1. 启动声望仪表板。
  2. 打开数据库管理工具,使用您的数据库凭据登录并创建一个名为联系人的表。
CREATE  TABLE`联系人` (
   ` id`int (11)NOT NULL AUTO_INCREMENT,
   ` name`varchar(50)COLLATE utf8_unicode_ci DEFAULT NULL,
   ` email`varchar(50)COLLATE utf8_unicode_ci DEFAULT NULL,
   ` phone`varchar ( 20)COLLATE utf8_unicode默认空值,主
  键(` id`   )
) 引擎= InnoDB 默认字符集= utf8排序= utf8_unicode_ci;
  1. 打开代码编辑器,然后打开api项目。
  2. 创建一个名为 contacts_middleware.php 的新 php 文件并粘贴以下代码。修改用户名、密码、邮箱等。
<?php

// on 表示之后。post 表示 POST API。联系人表示名为联系人的表。这意味着,每当您调用 POST api/contacts 来创建新联系人时,pRESTige 都会自动将该记录保存在联系人表中。保存记录后,pRESTige 会调用如下方法,在这里可以进行发送邮件等操作
function  on_post_contacts ( $ data ){
	 //引用全局pRESTige 对象。这是最重要的一步。
	全球 $声望;
	
	//邮件的主题
	$ subject = "感谢您与我们联系!" ;
	
	//您尝试发送的电子邮件正文的模板。
	$ template = "嗨<b>{{name}}</b>,<br/><br/>感谢您对我们的产品表现出兴趣。我们的一位代表会尽快回复您。<br/> <br/>问候,<br/>产品支持团队”;
	$ body = $ prestige -> prepareMail ( $ template , $ data );
	
	//接收者数组。别忘了,它是一个数组。因此,您可以将同一封电子邮件发送给多个人。
	$ to = [ $ data [ 'email' ]];
	
	//来自电子邮件
	$ from = "YOUR E-MAIL" ;
	
	//smtp 配置
	$ smtp = array (
			 "host" => "smtp.yourdomain.com" ,
			 "username" => "YOUR USERNAME" ,
			 "password" => "YOUR PASSWORD" ,
			 "proto" => "tls" , //你可以使用 ssl、tls 或空字符串
			"port" => 587
	);
	
	//发送电子邮件
	$ prestige -> sendMail ( $ from , $ to , $ subject , $ body , $ smtp );
}

?>
  1. 现在,转到 API 文档,找到 POST /contacts API。填写表格,然后试用 API。检查您的邮箱。享受!

我想构建一个 API 以用于接受在线工作申请的表单。但我想阻止从移动浏览器提交应用程序。

  1. 启动声望仪表板。
  2. 打开数据库管理工具,使用您的数据库凭据登录并创建一个名为应用程序的表。
创建 表`应用程序`(
   ` id`int(  11 ) NOT NULL AUTO_INCREMENT,
   ` first_name`varchar(50)COLLATE utf8_unicode_ci NOT NULL,
   ` last_name`varchar(50)COLLATE utf8_unicode_ci NOT NULL,
   ` email`varchar ( 50 )COLLATE utf8_unicode_ci非空,
   ` phone`varchar ( _    20 ) 整理 utf8_unicode_ci不为空,
   ` position_applied`varchar  ( 50 )整理utf8_unicode_ci不为空,
   ` total_experience`浮动不为空,
  主键(` id` )
) 引擎= InnoDB 默认字符集= utf8排序= utf8_unicode_ci;
  1. 打开代码编辑器,然后打开api项目。
  2. 创建一个名为 applications_middleware.php 的新 php 文件并粘贴以下代码。
<?php 
// 函数以 before 开头。post 表示 POST API。应用程序表示名为应用程序的表。这意味着,每当您调用 POST api/applications 来创建新应用程序时,pRESTige 都会自动将该记录保存在应用程序表中。但是,在进行数据库条目之前,将执行以下代码。您可以使用它来检查请求是否来自移动浏览器,并抛出错误。
function  before_post_applications ( $ data ){
	 //引用全局 pRESTige 对象。这是最重要的一步。
	全球 $声望;
	
	//检查请求是否来自移动设备
	if ( $ prestige -> requestIsMobile ()){
		 //产生一个API错误,HTTP状态码403。403代表'Forbidden'。意思是,你不被允许。
		$ prestige -> showError ( 403 , "此请求是从移动设备生成的,因此不允许此操作" );
	}
	
	//如果你已经到达这里,你正在运行一个桌面设备,因此你可以继续。不需要再写什么了。PRESTige 将继续保存记录。
}
?>
  1. 现在,转到 API 文档,找到 POST /applications API。填写表格,然后试用 API。记下完整的 URL。它将类似于http://yourdomain/api/applications从您的移动浏览器再次尝试此 URL。体验魔法!

例子

我们捆绑了一些示例供您快速开始应用程序开发。您可以使用这些模板开始您的新项目,并且您会获得很多已经实现的前端的好处,例如登录、注册屏幕、SaaS 管理等。

AngularJS 示例的文档

学分

PRESTige 最初是 moddity/Rester 的一个分支。moddity/Rester 几乎完全重写了 [ArrestDB]。ArrestDB 是对 [Arrest-MySQL] 的完全重写。

在修复了现有的错误并在原始引擎中添加了更多功能之后,它现在已经取得了长足的进步。现在,它还捆绑了更多工具,让您快速高效地工作。

除了最初的 fork,我还捆绑了一些开源生产力工具——基于浏览器的代码编辑器 (Codiad)、数据库管理工具 (Adminer)、REST API 测试工具REST Test Test和基于 Web 的终端web-控制台

我感谢所有那些直接或间接地在这里工作并使这个科学怪人的创作成为可能的人。

许可证(麻省理工学院)

版权所有 (c) 2017 Geekypedia ( http://www.geekypedia.net )

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值