PHP API脚本可以运行从REST服务器返回的PHP代码吗?

时间:2010-01-02 05:08:06

标签: php api rest

我正在使用PHP构建REST API,我需要知道是否可以将一组方法/函数和params发布到我的api脚本并让我的代码运行列出的函数并打印到屏幕上函数生成的数组,例如,如果用户发送请求以获取5个照片网址的列表,它将在数组中发布带有5个URL的PHP​​数组,然后能够在使用该数据的人员脚本中使用该数组API?

所以基本上你用CURL向一个脚本发布一个列表,你希望API运行的函数数组,api返回一个结果数组,但不是格式化为JSON或XML,它在屏幕上显示为PHP数组和然后curl会让用户的代码运行返回的php数组作为真正的php在那里的脚本吗?

很抱歉,如果这令人困惑,但似乎bebo.com API的工作方式和可能的facebook API一样,所以我认为这样可行,但有人可以告诉我吗?如果有可能的话,可能会有一些如何做的例子,谢谢

2 个答案:

答案 0 :(得分:1)

我发现JSON-RPC是批处理API请求的绝佳解决方案。将多个API请求放在单个JSON-RPC请求中要比我见过的任何XML解决方案简单得多(尽管只有1.1及更高版本的规范支持这一点)。因为它只是JSON,所以无论服务器端(或客户端)语言消耗结果如何,它都能很好地工作。我发现的唯一问题是,如果你想要实现所有潜在的版本,规范有点不稳定。

为安全起见,您应该:

  • 严格限制匿名用户无需身份验证即可调用哪些PHP函数/方法。
  • 使用PHP Reflection API进行参数的初始验证。您可以使用反射执行以下操作:
    • 确保方法存在并且是公共的(如果不存在,则返回HTTP 404,如果未授权,则返回403)。
    • 计算函数或方法接受的参数数量。
    • 确定参数是可选的或必需的。
    • 确定参数的名称,以便它们可以作为JSON对象传递。
    • 如果您使用PHP 5.1+,您可以检查文档注释以确定每个参数的接受数据类型。
  • 在每次API调用中进一步严格验证参数。

答案 1 :(得分:0)

我曾经和Lumen一起工作过REST,但事实证明它对我的目标来说仍然过于臃肿,所以我刚刚讨论了这个与任何人分享的解决方案。 https://github.com/joaoN1x/koolrest