如何快速搭建RESTful API服务端

上一篇《如何快速搭建自己的网站》有说到用开源CMS WordPress快速搭建网站,这篇继续分享,如何使用WordPress搭建可供网站页面 / 移动端调用的RESTful API服务端,并能通过WordPress后台管理请求路径、API字段等属性。

很多小伙伴看到搭建API服务端就会想到需要大量的开发工作,为了消除你们的顾虑,事先说明一下,这篇文章不是想要教你如何写代码,而是纯分享一些之前的经验,提供思路供参考,具体以可视化操作为主。仍然适合无编程经验的小伙伴们阅读。

WordPress自带一套完整的RESTful API并支持用户自行添加功能性组件进行功能拓展,这里介绍如何通过WordPress插件Pods进行API管理(自定义内容类型和字段等)。建议通过WordPress后台管理进行Pods插件安装:

如何快速搭建RESTful API服务端

在后台管理>插件>安装插件页面中搜索Pods就可以找到这个插件,点击“现在安装”。安装成功并启用插件后,在左侧菜单栏可看到这个拓展:

如何快速搭建RESTful API服务端

下面将通过一段示例来演示如何使用Pods

示例需求

HTML构建器项目中需要把网页模板列表存储在服务器端,管理员可以通过网站后台管理界面管理模板列表,而普通用户可以构建器网页/APP来读取模板列表。

Pods设置

如何快速搭建RESTful API服务端

Pods“添加”功能新建内容类型。WordPress自带基础内容类型包括:文章类型、分类、媒体、用户等。Pods同时支持这些内容类型。因为我们需要存储的是HTML页面模板内容,与WordPress中“文章”类型内容相似,所有这里用Pods创建的内容类型选择“自定义文章”即可。

如何快速搭建RESTful API服务端

注意这里的“单数标签”不能填写中文。“存储类型”选择基于数据表,这样WordPress会自动创建一张表用于存储新建这条API的内容。表单填写完成后点击“下一步”即可完成创建。

如何快速搭建RESTful API服务端

如上图所示“Edit Pod: templatetest”,记住,这里可以编辑,但不能填写中文,因为这个“templatetest”将会是RESTful API的URL的节点名称。

这时候,可以通过“添加字段”来针对这个API新增字段。例如需求中,我们需要添加一些如模板名称、模板描述、缩略图之类的字段:

如何快速搭建RESTful API服务端

不用担心,Pods提供10几种字段类型可供选择,包括文本、数字、网址、电话号码、媒体等常用类型以及完整的校验规则。也就是说,只要字段类型选定了,设置几个简单参数,这个字段就可以使用了,包括它的校验规则和配套功能都已经好了。并且可以通过“附加选项”和“高级”选项卡对校验规则进行调整。

例如,设置缩略图字段:

如何快速搭建RESTful API服务端

当设置完成以后,在后台管理的templatetest下“新增”的页面便会出现上传功能组件:

如何快速搭建RESTful API服务端

同样,其它组件例如时间选择、日期选择等都会自动添加对应输入功能模块。

在新增字段的“附加选项”中有更多关于显示、校验规则可供设置,小伙伴们可以按照项目需要添加或修改(每种字段类型的“附加选项”设置页面都不一样):

如何快速搭建RESTful API服务端

其它字段添加就不复述了,这里继续介绍一些需要设置的地方:

1> 左侧菜单栏显示名称

因为Pods会自动把新增的API内容管理显示在左侧的sidebar上,这里显示的名称是可以在“标签”tab里面进行设置的,这里可以填写中文。

如何快速搭建RESTful API服务端

2> 管理界面设置

这里可以设置这个新增的API是否显示在管理界面,并且左侧sidebar里面的图标也是在这里设置的。具体那些图标可以被支持,可参考WordPress官网。

如何快速搭建RESTful API服务端

3> 高级设置

这里可以设置这个内容类型的权限等等。

如何快速搭建RESTful API服务端

4> 启用REST API

这里需要勾选启用REST API, 这样新增的API才能发布到对应的URL节点上供外部调用。

如何快速搭建RESTful API服务端

做完以上步骤,新建API便完成了。可以通过postman测试一下是否正常。需要注意的是,WordPress RESTful API默认节点在https://你的域名/wp-json/wp/v2/节点名称,例如: https://htmlpage.cn/wp-json/wp/v2/templatetest

如何快速搭建RESTful API服务端

可以根据项目实际情况进行修改,另外WordPress的RESTful API返回的json种包含了一堆默认属性值,很多是不需要的,可以通过修改function.php对返回数据格式进行修改。

由于这条API是用于测试的,允许公共读取的,所以通过GET无需校验就可以读取到内容。如果后续项目需要对API操作进行校验,可增加OAuth2.0之类的验证。

更多的设置详细内容,请参照官网文档:

WordPress:

https://developer.wordpress.org/rest-api/reference/

Pods:

Pods Framework – Grow Beyond Posts & Pages – Content Types and Custom Fields

推荐阅读:

原文始发于微信公众号( HTMLPAGE ):如何快速搭建RESTful API服务端