Joomla Google Summer of Code 2019

嗨!我叫亚历山大·萨莫伊洛夫。我是第聂伯国立大学的学生,在那里我学习PHP开发。我很高兴能参与GSoC的“Joomla中的Web服务”项目。

关于项目

Joomla是一个流行的CMS,正在积极开发中,实现Web服务对于进一步的开发非常重要,因为它将有助于使用Joomla创建更多功能和复杂的项目。

例如,我们有一个Joomla网站,我们在那里卖披萨,我们想在其他一些流行的平台上开始销售。对于这个任务,平台通过我们的API获取我们的联系信息和内容。

Joomla中的Web服务也可以称为组件的REST API。

社区融合

在GSoC的第一个培训阶段,我每周与我的导师在hangouts中进行会议。这非常有趣。我们首先讨论了项目实施的计划。我们选择了一些组件,对于它们需要实现CRUD API。

在这个阶段,我们为Joomla的一些组件实现了Web服务

  • com_banners
  • com_categories
  • com_config
  • com_contact
  • com_fields
  • com_newsfeeds
  • com_plugins
  • com_privacy

为此,需要理解API请求的处理。已经有现成的示例com_content,这非常有帮助。

主要的事情是

  • API应用程序 - 在Joomla中有实现CMSApplicationInterface的应用程序。其中之一,ApiApplication,处理API调用。
  • API路由器 - 这是一个非常灵活的东西,可以轻松实现API的REST协议。
  • API控制器
  • API视图

更多关于项目的详细信息可以在这里找到。

下一步

  1. 为API实现以下组件
    • com_weblinks   
    • com_media   
    • com_menus
    • com_contenthistory
    • com_finder 
    • com_languages
    • com_messages
    • com_modules/com_templates
    • com_tags
    • com_redirect
  2. 改进 ApiDispatcher 和 ApiController 的错误处理。这对于所有网络服务都是一个重要的改进。
  3. 为网络服务创建测试。这将大大有助于在早期阶段捕获错误。