Joomla Web Services graphic随着内容在跨平台和跨设备上消费的需求不断增加,Joomla迫切需要一个RESTful Web服务API。 仅仅在网站上发布内容并期望人们使用Web浏览器来访问它已经不再足够。 如今,人们希望在智能手机、平板电脑和其他设备上消费内容,并且他们希望能够连接信息系统,打破旧的内容孤岛。 作为内容管理系统(CMS)的Joomla需要更加开放新的内容发布方式,我们需要超越传统的Web CMS,拥抱我们使命的全部范围——“提供一个灵活的数字出版和协作平台”。

REST API的兴起可以看作是利用Web技术解放数据并将其暴露给许多不同平台上的不同设备访问的趋势的一部分;使其在业务和组织流程中发挥更加动态的作用。 为了使Joomla网站成为分布式超媒体内容世界中的一等公民,我们首先需要提供一个全面的基于标准的REST API,这将使任何网站所有者都能轻松提供以前被HTML墙遮蔽的内容的访问权限。

我真的很想尽快看到这项技术融入Joomla 3.x。 为了实现这一目标,还有大量的工作要做,按照目前的进度,在2014年3月Joomla 3.5发布之前完成这项任务是很困难的。 这就是为什么我最近在Kickstarter上宣布了一个新的众筹项目。 如果我能吸引到足够的资金,我打算全职工作,实现将全面支持Web服务的目标融入今年9月的Joomla 3.2版本中。今年

这是对这个项目的快速介绍。 要查看完整的描述,请访问Kickstarter上的项目页面:http://www.kickstarter.com/projects/964120480/joomla-web-services

一些人的问题

我相信这是第一次有人尝试通过众筹为Joomla开发项目融资,由于其开创新性的特点,它引发了一些重要的问题需要解决。我仔细倾听了各种场合的评论,下面我尝试回答了最常见的问题和担忧。

为什么OSM/Joomla不支付这笔开发费用?

有些人对于项目直接支付开发人员编写项目所需的代码的想法感到不适,即使理论上资金是可用的。 不管我对此的个人看法如何,使用众筹避免了关于项目应在其资源上花费什么的任何疑问。 社区将以最直接的方式决定这是否值得投资。

为什么选择Kickstarter?

我选择Kickstarter,因为它是首选的众筹平台,具有巨大的知名度和良好的声誉。 直到最近,它还仅限于美国公民,作为英国公民,我是不合格的。 然而,现在情况已经改变,项目已经通过了Kickstarter的审批流程。

为什么应该是你?

我已经花费了数百小时研究、思考和撰写关于Joomla中的Web服务。 我是Web服务API规范前两个草案的主要撰写者(见这里Web服务工作组页面: https://docs.joomla.org/Web_Services_Working_Group),并且我最近为Joomla 3.x的Web服务开发了一个概念验证(可在https://github.com/chrisdavenport/j3-rest-api找到)。 我建立了一个在线演示,你可以在一个装有测试样本数据的Joomla 3.0标准安装中玩转当前的代码。 你可以从 http://demo.davenporttechnology.com/api/hal-browser/browser.html#/api 开始使用HAL浏览器浏览API。

简而言之,我认为没有人比我有更好的条件将高级网络服务引入Joomla 3.x。

如果项目未能获得足够的资金,会发生什么?

那么就不会有资金交换。 但我也不会突然停止在Joomla 3.x中引入网络服务的工作。 我会继续投入我所能挤出的时间来编写代码,并鼓励其他人协助这个过程。

如果众筹开发的想法起飞,我们会有多个针对同一功能的竞争项目,会发生什么?

我们真幸运! 实际上这和多家公司有着不同愿景,为同一功能提出竞争代码没有区别。 当然,最终决定是否接受竞争贡献的是PLT。 然而,我们会始终鼓励在相同功能上工作的团队合并力量,一起工作。 有了众筹,这实际上更有可能发生,因为竞争项目在获得资金之前必须广泛宣传,所以不太可能有人在没有其他人知道的情况下开发一个功能。

为什么应该允许你在Joomla社区网站上写博客?

这是一个需要领导团队解决的问题。 我个人认为,任何众筹项目只要对Joomla有益,就应该被允许写博客。 我是否是PLT的成员对此问题没有任何影响。 如果众筹变得非常流行,那么这种自由的政策可能需要重新审视,但现在我看不出有任何问题。

其他人可以免费做这项工作。 为什么你应该得到报酬?

其他人如果愿意,完全可以选择免费做这项工作,我会欢迎他们的帮助。 就我个人而言,我非常希望能够免费为Joomla项目投入更多时间,但现实是我需要收入,这限制了我能为项目捐赠的时间。 这个Kickstarter项目的目的是给我提供一个收入来源,让我能够全职投入到项目中,特别是网络服务的开发。 这丝毫不会阻止其他人免费或付费为项目捐赠时间。

xyz包已经支持网络服务。 为什么不直接包含它?

我已经查看了我能够找到或被引起注意的所有当前可用的Joomla网络服务项目。 它们都很有趣,但都达不到我的目标。 基于HTTP动词的RESTful网络服务的核心概念并不难实现。 但如果你阅读Joomla网络服务的规范,该规范可在WSWG维基页面找到,你会发现我们有着更大的野心。 我们的想法是创建一个最先进的基于超媒体的网络服务平台,它将成为许多新产品和扩展的基础,无论是客户端还是服务器端。 我已经意识到目前对网络服务潜力的认识相当低,所以我将整理更多的教育材料,以更详细地解释这些想法。

我不同意付费开发的想法

我们有一个开放的研发流程,任何人都可以提交他们喜欢的内容,并且会根据其价值进行考虑。如果是打算用于核心发行的功能,这将首先通过社区邮件列表中的同行评审进行讨论,最终由生产领导团队(PLT)决定。 我们从未区分过那些自筹资金的贡献者和那些被支付开发代码的人。 实际上,在大多数情况下,我们无法知道在开发新功能期间是否有金钱交易。 我们只要求贡献者(或者在有些情况下是他的/她的雇主)签署了Joomla贡献者协议(JCA)。 付费开发贡献一直存在,并且自项目成立以来一直如此。 PLT最重要的角色之一是确保被接受进入核心发行的内容能够普遍造福社区,通过推进我们的使命“提供灵活的数字出版和协作平台”,并且它不考虑是谁为每个贡献付款或未付款。 我怀疑您找不到任何大型开源项目会歧视付费开发。

项目提案中表示,英雄级别的支持者将获得“在Joomla扩展目录中您的扩展页面上的显著链接”。 这不是滥用您在Joomla项目中的职位吗?

 这应该读作“从项目网站到Joomla扩展目录中您的扩展页面的显著链接”。 有时我真的很讨厌英语;它很容易在不经意间引入歧义,从而成为沟通的大敌。不幸的是,Kickstarter上的文本是锁定的,我现在无法进行更正。

 您已经回答了我所有的问题,现在我可以在哪里做出贡献?

 我真的很高兴您问这个问题:-)

 这是链接:http://www.kickstarter.com/projects/964120480/joomla-web-services

 谢谢。

编辑:在此讨论博客文章:https://forum.joomla.org/viewtopic.php?f=704&t=798795