【问题标题】:How should an API on the same host be implemented through PHP同一主机上的API应该如何通过PHP实现
【发布时间】:2014-04-16 12:02:04
【问题描述】:

我已经尝试在谷歌上搜索相关主题,但找不到任何可以回答我的问题的内容,所以我在这里。

我将为我的基于 Web 的应用程序构建一个 REST API,以提高可扩展性并允许我轻松实现站点更新和构建其他应用程序。但是,在我的研究中,我还没有找到在 PHP 本身中使用这个 API 的方法。就目前而言,API 不会公开,并将托管在与网站相同的服务器上,因此我的问题。

网站目前使用PHP在内容服务器端加载,然后使用JavaScript动态添加内容,美化用户体验。我想保持这种方式,但让所有请求(包括 PHP 请求)都通过 API。显然,JavaScript 将使用 HTTP 请求发送到特定端点,例如“htp://example.com/user/123”,但是当 API 位于同一主机上时,使用 curl 和 PHP 执行相同的过程似乎很麻烦。

如果我理解正确,从混合中删除 HTTP 请求将意味着它不是 restfull,但这不是问题。所以:

1:我应该如何从 PHP 调用 API?

2:我应该如何维护用户会话?请记住,会话不应由 API 维护,JavaScript 将发送所有必要的数据以通过 API 调用进行身份验证。

【问题讨论】:

  • 您当然不需要通过 PHP 使用 API,直接访问 DB [或任何其他持久层],就像 API 代码一样。

标签: php api rest curl


【解决方案1】:
  1. 使用 Zend HTTP Rest Client - 它拥有强大的 rest 架构

  2. 是的 - 你是对的,使用 API 时无法维护会话,因此请尝试使用另一种方式来维护授权,例如创建一些类,该类将根据 API 响应检查您的授权

  3. 使用某种对每个用户来说都是唯一的令牌,并通过标头授权传递它。

【讨论】:

  • 谢谢。我应该提到,这可能会受到一些滥用。我不想为了求知欲而使用主要是 bp 的 API 框架。我想从头开始构建它
  • 然后进行 curl 调用或使用 OOPS 概念创建自己的结构 - 使用类和对象,就好像您在同一主机上工作一样,然后您不需要为其调用 API: )
猜你喜欢
  • 2019-05-08
  • 1970-01-01
  • 1970-01-01
  • 2015-11-27
  • 2012-01-10
  • 2022-08-22
  • 1970-01-01
  • 1970-01-01
  • 2020-04-23
相关资源
最近更新 更多