MYQL

出自Manyou开发者指南

跳转到: 导航, 搜索

Manyou Query Language(MYQL)为应用开发者提供一种类似简化版SQL语句的数据查询接口。实际上API与MYQL可以在某种程度上替换使用,但MYQL提供了一种更方便的对于复杂数据查询的特性,使得某些需要用到复合条件数据查询的情况下,MYQL可以省却应用服务器与MYOP之间反复请求再合并结果的不便,进而比使用API接口更加容易。

基本原理

MYQL与API接口能够操作到的MYOP/UCenter Home数据基本是一致的,MYQL也不是一个真正的数据库,而是为了避免开发者再次学习的成本,用简化版SQL语句的形式,支持能够按条件筛选、支持子查询的复杂调用。MYQL只是标准SQL语句的一个子集,语法上存在一定特殊限制。同时,为了保护用户隐私,MYQL也和API接口一样,受到数据隐私权限的限制,因此应用开发者并不能像真正数据库那样,利用MYQL进行全库的遍历等操作。如下一个基本的MYML语法例子:

SELECT name, pic FROM user WHERE uid=121212

相比API,在某些情况下使用MYQL的好处如下:

  • 降低带宽消耗:MYQL可以通过复合条件查询、子查询等,使得接口返回的结果集很小,并且可以指定返回的字段,而不是像API接口那样,返回根据所有的结果再由应用服务器进行逻辑处理,或是返回很多应用在当前操作下并不需要的字段,造成带宽浪费,降低应用反应速度。
  • 降低接口调用次数:在只使用API的情况下,应用可能需要根据上一次API返回的结果,经过一定的筛选和逻辑处理,再决定下一次请求API的条件。而MYQL本身支持一定的逻辑判断,使得对于一些简单的筛选,完全可以利用复合条件查询、子查询等,在一次MYQL请求中完成。REST接口毕竟需要耗费一定的HTTP连接资源,并且经过Internet传输,巧妙的利用MYQL可以有效降低应用服务器和MYOP的负载,使得应用运行的更快速。
  • 更统一和灵活:开发者不需要记忆很多API的方法、返回值等,而是直接对照MYQL表结构,直接随心所欲的调用各种数据,甚至封装出自己需要的,但未被提供的一些派生API供自身使用。并且如果实在需要调用传统API时,XML返回的结果格式也与MYML非常类似,对开发者而言,切换成本和学习成本都不高。
  • 更有趣:MYML让应用开发者更有一种“写程序”般的感觉,写一条巧妙的SQL语句,对于开发者而言,像是写了一幅好对联一般。您可以在MYML语句样例中翻阅可能的MYML写法,并在MYOP控制台测试这些语句,没准能找到更多灵感中!

请开发者注意:MYQL功能尚未提供,我们将在下一版MYOP中开放此功能,不便之处敬请原谅!

个人工具
接口文档