0、前言
感觉好久没有写点比较有内容的blog了。一直没什么空,最近假期刚好有点时间,回顾之前忙的东西,刚好可以对前段时间对wordpress(下面简称:wp)将其应用到iOS的app移动开发应用当中的调研结果进行总结。我觉得这个挺有意思的,而且有必要做个笔记。
我做iOS开发也有几年了,什么是wordpress都没听说过,认为是一个很偏的存在。心里面充满了疑问,wp是什么?有什么用?我能拿来干嘛?
于是带着这些问题,先科普一下:
WordPress是使用PHP语言开发的博客平台,用户可以在支持PHP和MySQL数据库的服务器上架设属于自己的网站。也可以把 WordPress当作一个内容管理系统(CMS)来使用。
这是百度百科对它的定义,大概有了模糊的了解,如有兴趣进一步了解来龙去脉点击这里查看
通过上面我们基本了解wp的是一个适用广泛、拓展性很强、插件很多的开发博客页面的框架。而且该框架已经比较成熟,已经有对应的后台、安卓、web的开发教程。很遗憾的就是没有iOS开发教程。为此才开启了我的调研过程。作为移动端对wp的解读,本质上就是对WordPress
Rest API插件的解读。即将接口和参数字段摸索出来并得到应用。通过中文网站和诸多博客的借鉴、以及通过多天的亲自测试了解。得到了一套比较有用的最新的API接口:
注:
1、以下接口拼接自己的域名,如:http://chenzimin.example.cn。
2、在wpAPI文档中,有些接口没有提供,建站时需要后台服务器帮助提供,以下我这边是自己后台服务器提供接口用米字号作*标记。
3、以下接口get请求一般请求头可以不带token。
4、wo记得没错的话,wp的token有效期为24小时。
1、登录注册模块
1.1、用户注册 *
请求协议|请求方法:HTTP|POST
接口路径:/fapi/userregster.php
请求参数:
参数名
说明
类型
username
用户名,必填
[string]
password
密码,必填
[string]
邮箱
[string]
nickname
昵称
[string]
phone
手机号
[string]
成功示例:
24
直接返回新用户id。
1.2、获取Token
请求协议|请求方法:HTTP|POST
接口路径:/wp-json/jwt-auth/v1/token
请求参数
参数类型:表单
参数名
说明
必填
类型
username
用户名
是
[string]
password
密码
是
[string]
成功示例:
{
"token":"eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwOlwvXC96aG91YnV5aS5tZWlsYXNoaWRhaS5jbiIsImlhdCI6MTU4Njc2NDA3MCwibmJmIjoxNTg2NzY0MDcwLCJleHAiOjE1ODczNjg4NzAsImRhdGEiOnsidXNlciI6eyJpZCI6IjIyIn19fQ.7kgtWfUTlm6tbZX63V7OEpo08PAxakZiK4e9DE6Nvb8",
"user_email":"",
"user_nicename":"100022",
"user_display_name":"1111111"
}
1.3、验证Token
请求协议|请求方法:HTTP|POST
接口路径:/wp-json/jwt-auth/v1/token/validate
请求头部:
头部标签
必填
头部内容
Authorization
是
Bearer+token
成功示例:
{
"code":"jwt_auth_valid_token",
"data":{
"status":200
}
}
注意点1: 获取的token要放在请求头,并且token值的格式必须为:Bearer+token值,否侧无法判断。
注意点2: 要实现这个接口,需要后台服务器授权验证,详细参考:使用 JWT Authentication 验证
WordPress REST API 权限,只有授权验证处理通过,这个接口才能请求成功,否则会返回错误,要求授权。
1.4、账户登录 *
请求协议|请求方法:HTTP|POST
接口路径:/fapi/loginwithtoken.php
请求头部:
头部标签
必填
头部内容
Authorization
是
Bearer+token
请求参数:
参数名
说明
必填
类型
username
用户名
是
[string]
pwd
密码
是
[string]
成功示例:
{
"data":{
"ID":"22",
"user_login":"1111111",
"user_pass":"$P$BSz.lD0LqQxK/v8E9Un1Cc3VwnURpp.",
"user_nicename":"100022",
"user_email":"wyp001@123.com",
"user_url":"",
"user_registered":"2020-04-13 07:23:02",
"user_activation_key":"",
"user_status":"0",
"display_name":"1111111",
"father_id":"0",
"reg_ip":""
},
"ID":22,
"caps":{
"author":true
},
"cap_key":"wp_capabilities",
"roles":[
"author"
],
"allcaps":{
"upload_files":true,
"edit_posts":true,
"edit_published_posts":true,
"publish_posts":true,
"read":true,
"level_2":true,
"level_1":true,
"level_0":true,
"delete_posts":true,
"delete_published_posts":true,
"author":true
},
"filter":null
}
1.5、获取用户信息
请求协议|请求方法:HTTP|GET
接口路径:/wp-json/wp/v2/users/me
请求头部:
头部标签
必填
头部内容
Authorization
是
用户token,格式:Bearer+token
成功示例:
{
"id":22,
"name":"1111111",
"url":"",
"description":"描述啊描述",
"link":"http://chenzimin.example.cn/author/100022/",
"slug":"100022",
"avatar_urls":{
"24":"http://cn.gravatar.com/avatar/cf29dfa8761d26cf525bd3275293a527?s=24&d=mm&r=g",
"48":"http://cn.gravatar.com/avatar/cf29dfa8761d26cf525bd3275293a527?s=48&d=mm&r=g",
"96":"http://cn.gravatar.com/avatar/cf29dfa8761d26cf525bd3275293a527?s=96&d=mm&r=g"
},
"meta":[
],
"woocommerce_meta":{
"activity_panel_inbox_last_read":"",
"activity_panel_reviews_last_read":"",
"categories_report_columns":"",
"coupons_report_columns":"",
"customers_report_columns":"",
"orders_report_columns":"",
"products_report_columns":"",
"revenue_report_columns":"",
"taxes_report_columns":"",
"variations_report_columns":"",
"dashboard_sections":"",
"dashboard_chart_type":"",
"dashboard_chart_interval":"",
"dashboard_leaderboard_rows":""
},
"_links":{
"self":[
{
"href":"http://chenzimin.example.cn/wp-json/wp/v2/users/22"
}
],
"collection":[
{
"href":"http://chenzimin.example.cn/wp-json/wp/v2/users"
}
]
}
}
1.6、修改用户信息
wpAPI中没有找到该接口,是根据获取用户信息get方法,推理出来,修改用户信息为post,测试部分字段有效,以下请求参数列表,是个人认为会有用到,才罗列出来的。
请求协议|请求方法:HTTP|POST
接口路径:/wp-json/wp/v2/users/me
请求头部:
头部标签
必填
头部内容
Authorization
是
Bearer+token
请求参数
参数名
说明
必填
类型
name
显示名称