【问题标题】:How to Install and use joomla rest api step by step如何一步一步安装和使用joomla rest api
【发布时间】:2015-09-24 06:46:52
【问题描述】:

请帮忙,我想在 joomla 2.5 中使用 REST api !!我在 Github 和 techjoomla 上搜索了很多天。我不知道如何安装 API 扩展或插件并使用它... 即使我没有找到任何合适的文档来使用 API。以及从哪里安装它...... 任何人都可以请逐步解释我如何使用正确的链接来安装 API 插件以下载它们和正确的文档以使用它...

【问题讨论】:

    标签: joomla2.5 asp.net-web-api


    【解决方案1】:

    您提到您正在使用 Joomla 2.5(不再积极开发或支持)。如果您可以升级/迁移到 Joomla 3.4.x,您可以选择。

    我最终为 Joomla 3.4.x 开发了一个 RESTful API,由 Slim PHP 微框架提供支持。请注意,这是一个商业 Joomla 软件包,所以如果您对“免费”感兴趣,这不是它。

    该软件包包括以下内容:

    服务控制面板组件 Joomla“服务”附加库,包括一个版本的 Slim v2.6.2(以及其他几个库),通过作曲家获得,通常在供应商文件夹中找到。稍后会详细介绍... 服务 Joomla 插件 服务 REST 插件 Services Slim 配置插件 Slim JSON API 视图插件 Slim JSON API 中间件插件 您可能会问,“所有这些插件的意义何在?”

    答案是它允许划分核心组件的功能,并为易于扩展的服务路由架构打开了大门。请注意,可以使用 Joomla ACL 轻松添加新插件,例如限制对这些新路由的访问。

    服务控制面板允许在每个用户的基础上创建令牌(甚至每个 Joomla 用户多个令牌)。它还允许最终用户配置 Slim 微框架参数,甚至包括 API 速率限制功能的阈值(当前基于每分钟请求数)。实际上,这部分非常棒,因为它在响应标头中提供了有关 API 速率阈值状态的实时反馈。

    cAPI 核心包(“cAPI”,“Constant API”的缩写,因为一切都需要一个产品名称......)就是这样 - 一个核心包。目前有许多插件正在开发中,第一个是安全的 LDAP JSON API(连接到 Microsoft Active Directory),还有更多很酷的插件即将推出。

    所有这一切的全部意义在于,基本上,您的请求已得到答复,现在终于出现了商业支持的解决方案。另外,我没有重新发明轮子,而是将扩展基于流行的现有微框架 (Slim),让开发人员更容易使用或在核心、可插拔框架上进行开发。

    因此,您可以将 Joomla(强大的 ACL、高级插件架构、丰富的扩展)和 Sim(经过验证、符合标准、成熟的 RESTful PHP 微框架)的精华集于一个易于安装的软件包中。

    通过易于查询的 API 公开网站不应掉以轻心。我希望任何选择这样做的人都能实现 100% 的 HTTPS 访问并加强其服务器的安全性。

    您可以在这里找到更多信息:http://getcapi.org

    希望这能让你朝着正确的方向前进。

    服务端点和 CORS Ajax 调用

    /api/v1/user/ - 可用于登录和注销用户并在响应中返回激活的 Joomla 会话 - 这也提供了多模式身份验证(通过标头中的令牌或 URL 字符串中的用户名和密码) )。基本上,它可以满足您的需求。 - 你像这样强制用户注销:/api/v1/user/logout/username/joomlasessionid

    基本上,这是为驱动远程服务或 iOS 或 Android 应用量身定制的。

    /api/v1/content/ - 提供创建、检索和更新内容的基本功能 - 此功能虽然存在,但我认为它正在积极开发中,并且随着时间的推移会变得更加强大。

    我已经嵌入了一个示例 jQuery Ajax 语法,后跟可以显示输出的 div 容器的 html。请注意,标题行是可选的(取决于 API 的要求)。

    jQuery('button').on('click', function() {
        var requestUrl= "https://www.annatech.com/api/v1/slim/swagger";
        var start = new Date().getTime();
        jQuery.ajax({
            url: requestUrl,
            type: "GET",
            success: function (resultData) {
            		totalTime = new Date().getTime() - start;
            		jQuery( "#title" ).empty();
                jQuery( "#requestUrl" ).empty();
                jQuery( "#totalTime" ).empty();
            		jQuery( "#output" ).empty();
                jQuery( "#version" ).empty();
                
                jQuery( "#output" ).append(resultData.info.description).html;
                jQuery( "#version" ).append('Version '+resultData.info.version).html;
                jQuery( "#title" ).append(resultData.info.title).html;
                jQuery( "#requestUrl" ).append(requestUrl).html;
                jQuery( "#totalTime" ).append(totalTime+ 'ms').html;
            },
            error: function (jqXHR, textStatus, errorThrown) {
                alert('error');
            },
    
            timeout: 120000
        });
    });
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
    <button>Send CORS</button>
    <p>Request URL: <span id="requestUrl"></span></p>
    <p>Response Time: <span id="totalTime"></span></p>
    <h2><span id="title"></span></h2>
    <h3><span id="version"></span></h3>
    <div id="output"></div>

    不用说,所有 cAPI Core 软件包改进都包含在年度订阅费中。附加组件(将)单独计费和支持。

    关于文档

    请注意,文档仍在开发中,但如果您想直接与我联系(或通过https://www.annatech.com/annatech-llc.html),我可以与您详细了解。另外,我建议您查看 Slim 微框架,以便您了解基本的路线设计http://docs.slimframework.com

    如果您有任何其他问题,请告诉我。

    【讨论】:

    • 非常感谢您冗长而详尽的回答。那时我对 SO 真的很陌生。但是感谢您为帮助我付出的宝贵时间。
    • 很高兴能提供帮助。祝你的项目好运!
    猜你喜欢
    • 1970-01-01
    • 2012-08-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-06
    • 2016-01-13
    相关资源
    最近更新 更多