smalldb/smalldb-rest

Smalldb的简单REST API

v0.5 2016-07-25 23:21 UTC

This package is auto-updated.

Last update: 2024-09-17 09:50:01 UTC


README

Smalldb REST API的简单实现。

要求

  • PHP 5.5+
  • libsmalldb

安装

  1. 使用composer install安装所有库。
  2. 根据示例创建api-v1.phpapi-v1-diagram.php
  3. statemachine目录中创建状态机定义 -- 详细信息请参阅libsmalldb文档。
  4. 在生产环境中使用之前,将auth.class选项更改为更严格的设置。 -- config.json.php文件包含允许一切选项。默认情况下使用CookieAuth类,但这需要一些配置。

配置

配置从三个JSON文件中加载。之后会覆盖前面的配置(使用array_replace_recursive函数)。

  • Smalldb-REST目录中的config.json.php用于加载默认值。
  • 项目根目录中的config.app.json.php用于加载应用程序特定的选项。此文件应受版本控制,不要在此处放置敏感信息。
  • 项目根目录中的config.local.json.php用于加载安装特定的选项。此文件不应受版本控制(将其放入.gitignore),它旨在包含敏感信息。

为了保持配置文件的向前兼容性,不要在应用程序中使用整个默认配置文件。仅设置更改的选项。

API使用

读取状态机的状态(机器ID = "blogpost", 1

HTTP GET /api-v1.php/blogpost/1

读取状态机的转换信息(转换 edit

HTTP GET /api-v1.php/blogpost/1!edit

调用状态机的转换(转换 edit,参数通过 $_POST['args'] 传递)

HTTP POST /api-v1.php/blogpost/1!edit
Content-Type: application/x-www-form-urlencoded

args[0][title]=Some%20title&args[1][text]=Lorem%20ipsum

列出给定类型的所有状态机

HTTP GET /api-v1.php/?type=blogpost

状态图渲染器

REST API的第二个功能是状态图渲染器。要检索blogpost状态机的状态图,请使用以下HTTP请求

HTTP GET /api-v1-diagram.php?machine=blogpost&format=png

这意味着您可以简单地将其HTML放入您的应用程序中

<img src="api-v1-diagram.php?machine=blogpost&format=png" alt="state diagram">

注意:图使用Graphviz渲染,并使用APC缓存。必须将dot可执行文件放置在PHP的PATH中。

许可证

Apache 2.0 - 请参阅LICENSE文件