gpt4 book ai didi

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

转载 作者:可可西里 更新时间:2023-11-01 07:45:31 26 4
gpt4 key购买 nike

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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com