我也遇到了同样的问题,这就是为什么我最终为 Joomla 3.4.x 开发了一个由 Slim PHP 微框架提供支持的 RESTful API。请注意,这是一个商业 Joomla 软件包。
该软件包包括以下内容:
- 服务控制面板组件
- Joomla“服务”附加库,其中包括一个 Slim v2.6.2 版本(以及其他几个库),通过 composer 获得,通常在供应商文件夹中找到。稍后会详细介绍...
- 服务 Joomla 插件
- 服务 REST 插件
- Services Slim 配置插件
- Slim JSON API 视图插件
- Slim JSON API 中间件插件
您可能会问,“所有这些插件的意义何在?”
答案是它允许划分核心组件的功能,并为易于扩展的服务路由架构打开了大门。请注意,可以使用 Joomla ACL 轻松添加新插件,例如限制对这些新路由的访问。
服务控制面板允许在每个用户的基础上创建令牌(甚至每个 Joomla 用户多个令牌)。它还允许最终用户配置 Slim 微框架参数,甚至包括 API 速率限制功能的阈值(当前基于每分钟请求数)。实际上,这部分非常棒,因为它在响应标头中提供了有关 API 速率阈值状态的实时反馈。
cAPI 核心包(“cAPI”,“Constant API”的缩写,因为一切都需要产品名称...)就是这样 - core 包。目前有许多插件正在开发中,第一个是安全的 LDAP JSON API(它连接到 Microsoft Active Directory),还有更多很酷的插件即将推出。
所有这一切的全部意义在于,基本上,您的请求已得到答复,现在终于出现了商业支持的解决方案。此外,我没有重新发明轮子,而是将扩展基于流行的现有微框架 (Slim),让开发人员更容易使用或在核心、可插拔框架上进行开发。
因此,您可以将 Joomla(强大的 ACL、高级插件架构、丰富的扩展)和 Sim(经过验证、符合标准、成熟的 RESTful PHP 微框架)的精华集于一个易于安装的软件包中。
通过易于查询的 API 公开网站不应掉以轻心。我希望任何选择这样做的人都能实现 100% 的 HTTPS 访问并加强其服务器的安全性。
您可以在这里找到更多信息:http://getcapi.org
希望这能让你朝着正确的方向前进。
还有一件事:
我再次阅读了您的问题并阅读了关于您需要访问用户和内容的部分。这些实际上是我工作的第一个服务端点:
/api/v1/user/
- 可用于登录和注销用户并在响应中返回激活的 Joomla 会话
- 这还提供了多模式身份验证(通过标头中的令牌或 URL 字符串中的用户名和密码)。基本上,它可以满足您的需求。
- 你像这样强制用户注销:
/api/v1/user/logout/用户名/joomlasessionid
基本上,这是为驱动远程服务或 iOS 或 Android 应用量身定制的。
(GET,POST,PUT,DELETE) /api/v1/content/...
- 提供创建、检索、更新和删除内容的能力
(GET,POST,PUT,DELETE) /api/v1/category/...
- 提供创建、检索、更新和删除类别的能力
另外,
/api/v1/user/login/(用户名)/(密码)
/api/v1/user/logout/(username)/(joomlasessionid)
/api/v1/user/profile
/api/slim/routes
and more...
可在此处找到有关可用方法的其他信息:
http://learn.getcapi.org/api-methods
不用说,所有 cAPI Core 软件包的改进都包含在年度订阅费中。附加组件(将)单独计费和支持。现在列在 Joomla 扩展目录 (JED) https://extensions.joomla.org/extensions/extension/capi-core-rest-api。
2016 年 3 月 28 日更新
从 cAPI v1.2.1 开始,添加了新方法以允许对 Joomla 用户和组管理进行 CRUD。此外,我正在http://getcapi.io 开发一个沙盒集群,以允许潜在客户在订阅之前全面测试 API 功能。
2016 年 9 月 18 日更新
从 cAPI v1.2.5 开始,添加了新方法以允许对 API 令牌执行 CRUD 操作。 API 也更新了文档块,可以自动生成 Swagger.json。 cAPI 包括用于访问由 Swagger UI 生成的完整 API 文档的后端和前端视图。
最后,https://getcapi.io 以及 demo1.getcapi.io 和 demo2.getcapi.io 现已上线,并允许访问者测试 API 文档。很快,它们将被配置为自动重置,以便将帐户分发给客户,以便他们可以自行全面测试 API。