把 WordPress 变成 BaaS 服务:API 调用指南

💡 原文中文,约7600字,阅读约需19分钟。
📝

内容提要

本文介绍了WordPress作为CMS/BaaS服务使用时的API调用问题。WordPress提供了两种公开API调用方案:WP-CLI和REST API。WP-CLI是一个命令行工具,可以与WordPress网站进行交互和管理。REST API使用通用的JSON格式与WordPress应用进行数据交互。文章介绍了如何使用这两种API方案,并提到了保护API接口和提升服务性能的方法。

🔎

延伸解读

两种API方案的维护状态差异

WP-CLI自2011年推出后持续更新,GitHub项目维护规范,还有官方活动和独立网站支持。而REST API虽然从WordPress 4.7.1到5.6版本持续更新,但相关项目wp-cli/restful在2022年已停止积极维护,官网证书过期并重定向。不过WordPress 6.5.0仍保留了对REST API的支持,社区也有SDK方案。选择时需权衡长期维护性。

WP-CLI在容器环境中的权限处理

在非Rootless Docker等容器环境中以root运行WP-CLI会收到安全警告,提示可能带来风险。早期社区推荐用alias添加--allow-root参数,但2020年的提交支持通过环境变量设置。在Dockerfile中设置ENV WP_CLI_ALLOW_ROOT=1即可让WP-CLI始终可用,避免每次手动指定参数的麻烦。

REST API的启用与安全考量

启用REST API需在wp-config.php中定义REST_REQUEST常量为true,之后可通过?rest_route=/wp/v2/posts或开启固定链接后的/wp-json/wp/v2/posts访问JSON数据。由于提供HTTP访问,安全加固比WP-CLI复杂,建议不直接对外暴露端口,使用容器组网限制访问,仅允许同一虚拟网络中的应用调用。

性能优化与SQLite并发写入

作为BaaS服务被大量调用时,读多写少场景可通过加缓存、增加机器资源、静态化来优化。若使用传统关系型数据库,低配置高并发架构的云数据库也能支撑10万+并发。对于SQLite方案,自2010年SQLite 3.7.0起支持WAL模式以提升并发写入性能,作者正筹划提交PR提供选项来激活WAL模式,进一步增强写入性能。

❓

Q&A

WordPress提供了哪些API调用方案?

WordPress提供了WP-CLI和REST API两种公开API调用方案。

WP-CLI是什么?

WP-CLI是一个命令行工具,用于与WordPress网站进行交互和管理。

如何使用WP REST API获取文章数据?

可以通过访问http://localhost:8080/wp-json/wp/v2/posts来获取以JSON格式展示的网站文章数据。

如何保护WP-CLI的API接口?

建议只在内部管理环境中安装WP-CLI,并严格控制可执行命令的用户权限。

提升WordPress服务性能的方法有哪些?

可以通过加缓存、增加机器资源和静态化处理来提升服务性能。

WP REST API的维护现状如何?

WP REST API在2022年停止积极维护,但在WordPress 6.5.0版本中仍然保留和支持该功能。

🏷️

标签

➡️

继续阅读