Giter VIP home page Giter VIP logo

dfoxa-wordpressapi's Introduction

DFOXA-WordPressAPI

WordPress API 扩展插件,允许使用 WordPres 开发标准的API接口,为基于 WordPress 的前后端分离项目实现便捷轻快的后端开发体验.

接口文档会在 1-3个月内完善,英文文档会在中文文档完善后的1个月内发布,插件用户请按照组内教程或组内提问.不要提交 issues Interface documents will be improved within 1-3 months, the English document will be released within 1 month after the improvement of the Chinese document and plug-in users could ask questions in the group.

了解 DFOXA-WordPressAPI

DFOXA 项目是为了快速开发基于 WordPress API接口所开发的 WordPress 插件。 它适用于所有的前后端分离项目,例如使用 Vue.js、AngularJS、Electron微信小程序、支付宝小程序等框架开发的项目。 DFOXA 提供了 WordPress 的所有基本功能接口,包括用户授权、注册、登录、文章、分类、评论等...。 DFOXA 额外提供了一些优秀的功能,例如可使用SMS接口实现用户账号的注册,登录的短信验证码等功能。 DFOXA 提供的插件模式,弥补了接口的的不足,你可以基于 基础功能 或 WordPress(PHP) 的所有能力独立开发 API接口,例如 开发商城系统 等...。 DFOXA 为您解决了数据交互的安全性问题(使用RSA加密),以及跨域、数据缓存、日志记录问题。 DFOXA 配置使用了最新的 Composer ,你可以通过 Composer 进行丰富的功能扩展。

准备工作

  • 如果您的项目是一个完全独立的前后端分离项目, 或您的项目完全用不到WordPress自带的主题功能(不需要前端展示主题), 建议您移除WordPress的主题功能,只访问WordPress后台进行开发.
// 要完全移除 主题功能 请将 WordPress 程序根目录下的 index.php 文件中的
define('WP_USE_THEMES', true);
// 改为
define('WP_USE_THEMES', false);
  • 为你的接口配置一个合格的域名,例如(api.domain.com) 本文档所有用到的示例域名,都将使用 api.domain.com 作为演示域名,请留意
  • 在微信小程序等相关项目开发时,你需要配置 HTTPS
  • 固定链接,虽然可能你不需要对外展示你的 WordPress 主题相关内容,但是为了接口的正常使用,你还是得配置一个合适的固定链接,对于固定链接的格式并没有做要求,只要不是默认的?p=123即可,推荐使用的是/%post_id%.html
  • 登录注册等功能需要你配置 PHP 的 OpenSSL 环境
  • 登录注册等功能需要你配置 WordPress 自带的内存缓存功能 (测试生效方式 登录账号后验证access_token是否能通过,通过则表示内存缓存生效)

简单设置

安装完插件后,您需要在后台先配置你的插件,配置的步骤非常容易。

缓存系统设置

DFOXA 暂时只支持 WordPress 自带缓存 ,它基于 Memcache(d)或 Redis Object Cache 你必须为他提供一个"持久性?"的缓存。 你必须配置 Memcache(d),并安装相关的 WordPress 内存缓存插件,因为接口将大量使用缓存系统,如果你不做这一步,你将无法继续使用该插件

日志记录

DFOXA 配置了日志记录插件 Monolog,你需要在后台启用它,启用后你必须将插件目录下的 logs 目录配置对应的读写权限,他会自动记录所有的用户请求信息和相关错误信息,便于你的调试和问题排查。

接口调试

你的接口必须经过详细调试后才能发布于线上,我们推荐您使用下列工具进行调试,并使用Chrome的相关json格式化插件

工具: POSTMANPAWJSONViewer 插件

准备完毕

访问你的接口测试地址,开始你的第一步

https://api.domain.com/gateway.do?method=Tests.dfoxaState

  • gateway.do 是您在后台设置页面配置的 API 网关,所有的接口都通过它进行调用,所以你的其他页面不会受到接口影响。
  • 小窍门: 网关请求地址还有另外一种格式,去除 ?method= 并将接口内容中的 . 改为 /

https://api.domain.com/gateway.do/Tests/dfoxaState
同等于
https://api.domain.com/gateway.do?method=Tests.dfoxaState

  • 直接通过浏览器访问你的这个接口,你会看到一条 JSON 格式的 返回值,他的内容如下
{
  "code": 10000,
  "msg": "接口调用成功",
  "sub_msg": "接口调用成功",
  "solution": "",
  "sub_code": "10000",
  "hello": "看起来这个接口已经准备就绪了.",
  "request": null
}

// 错误网关的请求示例

{
  "code": 10002,
  "msg": "错误的请求地址",
  "sub_msg": "当前的接口请求地址有误,请检查后再试",
  "solution": "重新检查你的请求地址是否有误",
  "sub_code": "gateway.empty-method",
  "request": null
}

所有的接口都会返回类似格式的信息,
code:
当接口的 code === 10000 表示这个接口已经调用成功,在使用任意接口的时候,你应当使用 code 值 是否等于 10000 来判断这个接口是否执行成功。
msg / submsg:
接口的提示信息,如果接口请求错误,它们会返回请求错误的相关信息, msg 稍短一些 ,submsg 则更加详细一些,这些信息适合暴露给用户,例如账号密码错误等信息。
solution:
接口错误的解决办法,通常这个信息不暴露给用户,在你调试的时候使用,返回一些接口错误时的解决方案。
sub_code:
这个接口返回一些字符串格式的错误编号,和 code 是一一对应的。例如 10002 对应 gateway.empty-method
request:
这个接口返回一些用户的请求内容,方便前端进行开发调试。

接口文档

初级使用

  • 插件的基本配置
  • 账号
  • 文章
  • 分类
  • 评论

进阶使用

为你的接口开发独一无二的功能(例如日历查询、商城系统、客资报名系统、电影查询、交通查询等...),它的开发方式非常标准和简单,就像是开发 WordPress 插件一样,如果你开发过,那么它对你将是一件轻松的事情。
你甚至可以在网络上自由的分享你的插件。

  • 插件 Hooks
  • 用户角色和权限
  • 插件的开发

Author

© 2016 DooFox,Inc. - [email protected] - https://doofox.cn
See also the list of contributors which participated in this project.

License

DFOXA-WordPressAPI is licensed under the MIT License - see the LICENSE file for details

dfoxa-wordpressapi's People

Contributors

hoythan avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.