php - 带有 ACL 的 MySQL DB 的 Rest 接口(interface)

标签 php mysql database web-services rest

REST API 的 99% 的作用是充当客户端和数据库之间的受控接口(interface),但我终究找不到能做到这一点的库。

所有库都专注于为开发人员提供 REST 接口(interface),开发人员然后设置与数据库的通信。创建一个已经与数据库接口(interface)的库对我来说似乎是轻而易举的事,开发人员需要做的就是定义一些 ACL 规则并在此处或那里插入一些逻辑。

因此,在我继续实际创建此类库并将想法付诸行动之前,我可以问问任何了解该主题的人;有没有人实现过这样的事情?我会重新发明轮子吗?

顺便说一句,我是在严格地谈论基于 PHP 的解决方案,我并不反对其他语言,PHP 只是我的菜。但就此而言,我也没有找到其他语言的任何实现。

如果我的解释不是很清楚,这基本上就是我想要的:

<?php

class post_controller extends controller {

    protected static $config = array(
        'select'        => true,
        'insert'        => true,
        'update'        => true,
        'delete'        => false,

        'fields'            => array(
            'id'        => array(
                'select'    => true,
                'update'    => false
            ),
            'name'      => array(
                'select'    => true,
                'update'    => true
            ),
            'content'   => array(
                'select'    => true,
                'update'    => true
            )
        )
    );

    /**
     * GET, POST, DELETE are implemented already by the parent controller
     * Just overriding PUT to modify the content entry
     */
    function put($data) {
        $data->content = htmlentities($data);
        return parent::put($data);
    }

}

?>

如果这不是一个正确的 Stackoverflow 问题,请提前感谢任何人提供他们的意见和道歉。

编辑:

澄清一下,这种类型的服务将用于特定的用例,我不认为它是一种任何人都可以用于任何类型的网络服务的东西。

最佳答案

我已经为 SOAP 构建了一个类似的系统,并且必须说这样做非常容易。我还没有看到任何可以帮助你做到这一点的预建库(我怀疑它们是否存在 - 见下一段),但你应该不会花费超过几个小时来构建你自己的解决方案(最多一天 - 测试和文档编写)。

然而,如果您真的想这样做,那就完全是另一个问题了。 REST 可以(误)用于此目的,但它是用来操纵资源的。数据库中的记录很少与资源有一对一的映射。如果他们在你的情况下这样做(就像他们在我的情况下所做的那样)那么请随意这样做,否则提供适当的 REST API 会更好。为什么要向世界公开您的内部数据库结构?当然是 YMMV。

关于php - 带有 ACL 的 MySQL DB 的 Rest 接口(interface),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7933810/

相关文章:

python - 无法使用Python将CSV数据导入MySQL数据库

mysql subselect 查询 - 查找状态为 'failed' WOOCOMMERCE 的所有订单

php - 在使用 DOMDocument 函数处理之前修复 PHP 中格式错误的 XML

javascript - 从 php 页面执行 python 脚本

php - 单选组和多个插入

php - 从 CodeIgniter 中的核心 Controller 获取数据

php - Doctrine 模型数组数据类型

php - MySQL PDO 限制问题

MySQL 内部连接结果

database - 间接修改 Illuminate\Support\Collection 的重载元素没有效果