阅读时间 6 分钟 (1269 字)

使用 Joomla Web 服务(API)的乐趣(第二部分)

April-API

[本篇文章是系列文章的一部分 - 在此处查看第一部分]

4. 使用 API 创建、更新、获取和删除 Joomla! 文章

4.1. 使用 API 创建 Joomla! 文章

4.1.1. 术语

首先是一些基本术语:当使用 Joomla! API 时

  • 创建 = post
  • 更新 = patch
  • 获取 = get

4.1.2. 查看文章管理器

这是一个新网站,所以我看到“尚未创建任何文章”

4.1.3. 准备 POST 脚本

在您的网站上创建您的 POST 脚本

  • 在您的网站上创建一个新文件(例如在根目录下创建一个 api-post.php 文件)
  • 访问 https://github.com/alexandreelise/Manual/blob/patch-1/docs/general-concept/webservices.md
  • 转到“使用 PHP cURL 函数”部分(因为我们在这里需要一个独立的脚本,所以我们不使用 Joomla! 框架版本)
  • 复制“定义一些变量”的代码,并将其粘贴到您的文件中
  • 复制“POST”的代码,并将其粘贴到文件末尾

自定义您的网站上的 POST 脚本

4.1.4. articletext 与 introtext 和 fulltext 的区别

值得知道:当你创建文章时

  • 而不是使用(就像Joomla网站的数据库中那样)经典的
    • introtext 来表示出现在潜在 READ MORE 之前的文本
    • 以及/或 fulltext 来表示出现在潜在 READ MORE 之后的文本
  • 你可以使用 articletext ,它是“智能”的,会在检测到 <hr id="system-readmore"> 时将文本分割为 introtextfulltext

4.1.5. 4 个必要的字段

要创建文章

  • 标题(Joomla会自动处理别名创建。提醒:一个给定的 别名 只能分配给 1 篇文章)
  • articletext(见上述说明)
  • catid(分类ID。例如:一个默认在每个Joomla安装中可用的未分类具有ID 2
  • 语言(你可以设置在 当你想将文章分配给所有 语言时)

4.1.6. 执行你的脚本

简单地

  • 打开一个新的浏览器标签
  • 输入脚本的完整URL
  • 按Enter键打开该URL
  • 脚本正在执行
  • 并且最后页面显示一些反馈
    • 这只是为了让你放心,一切都正常
    • 因此,显示任何内容都是完全不必要的
    • 换句话说,你可以简单地注释或删除行 echo $response;

4.1.7. 返回或刷新文章管理器

哒哒 你可以看到文章确实已经创建了!

4.2. 使用API更新Joomla文章

4.2.1. 准备PATCH脚本

该过程与上一个脚本完全类似。

在您的网站上创建您的PATCH脚本

  • 在您的网站上创建一个新文件(例如,在根目录下创建一个名为 api-patch.php 的文件)
  • 访问 https://github.com/alexandreelise/Manual/blob/patch-1/docs/general-concept/webservices.md
  • 转到“使用 PHP cURL 函数”部分(因为我们在这里需要一个独立的脚本,所以我们不使用 Joomla! 框架版本)
  • 复制“定义一些变量”的代码,并将其粘贴到您的文件中
  • 将“PATCH”的代码复制并粘贴到文件的末尾

在您的网站上定制您的PATCH脚本

值得了解:当您更新文章时

  • 字段 articletext 不起作用
  • 您应该使用(就像在Joomla网站的数据库中一样)
    • introtext 来表示出现在潜在 READ MORE 之前的文本
    • 以及/或 fulltext 来表示出现在潜在 READ MORE 之后的文本

4.2.2. 执行您的脚本

简单地按照上面解释的方法执行您的脚本。

4.2.3. 返回或刷新文章管理器

当打开文章时,我们可以确实检查

  • 标题已更改
  • 以及简介和全文

4.3. 玩转自定义字段

直接在PHPMyAdmin中使用查询为文章的自定义字段添加值并不明显,因为它涉及多个相互关联的表。

但正如您将看到的,通过Joomla API为文章的自定义字段添加值非常简单。

4.3.1. 创建自定义字段

在这个例子中,我创建了一个类型为“文本”的自定义字段

  • 其标题为“温度”
  • 其名称(别名)在保存时自动变为“temperature”(但当然,如果我愿意,我也可以输入另一个名称,例如“temp”)

4.3.2. 修改PATCH脚本

现在我需要修改我的 api-patch 脚本,如下所示

  • $data 中,我添加了一行 'temperature' => '15 degrees Celcius'
  • (并且别忘了在上一行的末尾添加 ,

4.3.3. 执行您的脚本

简单地按照上面解释的方法执行您的脚本。

您已经看到“温度”被提及。

4.3.4. 返回或刷新文章管理器

当打开文章时,我们可以确实检查

  • 自定义字段“温度”已被填写

4.4. 使用API获取Joomla文章

此脚本的用例:一个内联网或应用程序,其中希望显示来自您的Joomla网站的一些新闻(文章)

4.4.1. 准备GET脚本

在您的网站上创建您的GET脚本

  • 在您的网站上创建一个新文件(例如,在根目录下创建一个名为 api-get.php 的文件)
  • 访问 https://github.com/alexandreelise/Manual/blob/patch-1/docs/general-concept/webservices.md
  • 转到“使用 PHP cURL 函数”部分(因为我们在这里需要一个独立的脚本,所以我们不使用 Joomla! 框架版本)
  • 复制“定义一些变量”的代码,并将其粘贴到您的文件中
  • 将“GET”的代码复制并粘贴到文件的末尾

在您的网站上定制您的GET脚本

4.4.2. 奖励1:选择另一个分类

在这个例子中,我们假设我们想要获取类别2中的所有文章

当然,您可以通过修改以下代码行轻松更改所需类别的ID

$categoryId = 2;

4.4.3. 奖励2:只获取已发布文章

如果您只想获取已发布的文章。

在数据库中,您可能知道技术上“已发布”表示“状态”为1

  • 未发布表示“状态”为0
  • 已删除表示“状态”为-2
  • 存档表示“状态”为2
  • 所以,我们只需要在脚本中更改

/content/articles?filter[category]=

改为

/content/articles?filter[state]=1&filter[category]=

4.4.4. 执行脚本

简单地按照上面解释的方法执行您的脚本。

4.5. 使用API删除Joomla文章

在您的网站上创建您的 DELETE 脚本

  • 在您的网站上创建一个新文件(例如 api-delete.php 在根目录下)
  • 访问 https://github.com/alexandreelise/Manual/blob/patch-1/docs/general-concept/webservices.md
  • 转到“使用 PHP cURL 函数”部分(因为我们在这里需要一个独立的脚本,所以我们不使用 Joomla! 框架版本)
  • 复制“定义一些变量”的代码,并将其粘贴到您的文件中
  • 复制“DELETE”的代码并将其粘贴到文件末尾

在您的网站上自定义您的 DELETE 脚本

这里没有提供截图。到现在您应该知道它是如何工作的了!

《Joomla社区杂志》上发布的一些文章代表了作者对特定主题的个人观点或经验,可能并不代表Joomla项目的官方立场

1
领导力访谈:Luca Marzo
迁移到Joomla 4比您想象的要容易
 

评论

已经注册? 登录这里
尚未发表评论。成为第一个发表评论的人

通过接受,您将访问https://magazine.joomla.net.cn/外部第三方提供的服务