XML描述
XML元素说明
XML示例
SDK代码(演示代码)
调用示例(演示代码):
XML元素 | 描述 |
api | 根元素,其他所有的xml元素都必须被根元素包含。 父元素:无 子元素:method object 属性:无 |
method | 描述一个API的方法,在一个api定义中必须至少有一个方法存在。 父元素:无 子元素:url - parameters - result - error 属性: name【必须】 数值范围: [0-9a-zA-Z-_\/]+ 请使用与method功能描述相关的命名 http [必须] http方法常用的请求 可用值: GET - POST - PUT - DELETE |
url | 描述方法中的URL,地址中无需带上域名信息,URL必须以“/”开始,并以非“/”结束。变量参数必须以大括号包含, 如{ param } 。 最好将URL包含进CDATA中。 父元素: method 子元素: 无 属性: 无 Examples: <![CDATA[/users]] <![CDATA[/users/{id}]] <![CDATA[/{param}/comments?anotherParam=value]] <![CDATA[/entity/{param}/entity2/{param2}?param3={param3}&anotherParam=value]] |
parameters | 此元素包含method中用到的一系列参数列表。 如果需要用到参数必须在此进行定义。 父元素: method 子元素: parameter 属性: 无 |
parameter | 变量传参。 父元素: parameters 子元素: 无 属性: optional [可选] 如果该参数可能不是必需的,则使用此参数。 可选值: true - false 默认值: false |
result | 如果method有返回值,则可以使用<object>来定义它的返回值。 父元素: method 子元素: 无 属性: name [必须] <object>元素的名字 array [可选] 如果返回的值是数组则此选项有效。 可选值: true - false 默认值: false |
error | 如果method可能返回错误,则使用返回的object进行定义。 父元素: method 子元素: 无 属性: name [必须] <object>元素的名字 array [可选] 如果返回的值是数组则此选项有效。 可选值: true - false 默认值: false |
object | JSON返回值的说明,描述了JSON返回的键值及结构。 父元素: api 子元素: field 属性: name [必须] 名称与<result>和<error>中定义的名称一致。 |
field | 描述JSON返回值的一个键值。在一个object中至少又有一个field。field需与JSON返回值的字段一一对应。 父元素: object 子元素: 无 属性: object [可选] 如果field也是一个object,在此定义object的名称。 array [可选] 布尔型值,如果返回值是数组则以此说明。 可选值: true - false 默认值: false optional [可选] 如果此field是可选项则用此选项说明。 可选值: true - false 默认值: false |
<api xmlns="http://apibus.io" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://apibus.io/schema/mashape-api-3.0.xsd"> <!-- 定义方法: get_user_by_id --> <method name="get_user_by_id" http="GET" > <url><![CDATA[ /2/users/show.json?type=byid ]]></url> <parameters> <parameter optional="false">id</parameter> </parameters> <result name="user"></result> <error name="error"></error> </method> <!-- 定义方法: get_user_by_name --> <method name="get_user_by_name" http="GET" > <url><![CDATA[ /2/users/screen_name.json ]]></url> <parameters> <parameter optional="false">name</parameter> </parameters> <result name="user"></result> <error name="error"></error> </method> <!-- 定义User 数据结构 --> <object name="user"> <field>id</field> <field>screen_name</field> <field>name</field> <field>gender</field> <field object="status">status</field> </object> <!-- 定义Status 数据结构 --> <object name="status"> <field>created_at</field> <field>source</field> </object> <!-- 定义Error 数据结构 --> <object name="error"> <field>code</field> <field>desp</field> </object> </api>
<?php require_once( _APIBUS_HOME . "/apibus/class/apiobject.class.php"); require_once( _APIBUS_HOME . "/apibus/class/fetchurl.class.php"); class Weibo { private $access_key; private $secret_key; function __construct( $access_key=null, $secret_key=null ) { $this->access_key = $access_key; $this->secret_key = $secret_key; } public function get_user_by_id( $id ) { $parameters = array("id" => $id); $url = "https://api.weibo.com/2/users/show.json?type=byid"; $format = 'json'; self::prepareRequest($url,$parameters); $do_fetch = new ApiBusFetchUrl($this->accesskey,$this->secretkey); $response = $do_fetch -> fetch($url, $parameters ); if ( $this->isError($response) ) { return $response; } return $this->decode($response, $format ); } public function get_user_by_name( $name ) { $parameters = array("name" => $name); $url = "https://api.weibo.com/2/users/screen_name.json"; $format = 'json'; self::prepareRequest($url,$parameters); $do_fetch = new ApiBusFetchUrl($this->accesskey,$this->secretkey); $response = $do_fetch -> fetch($url, $parameters ); if ( $this->isError($response) ) { return $response; } return $this->decode($response, $format ); } } ?>
//@SAE 调用方法一: $weibo = apibus::init( "Weibo"); $obj = $weibo>get_user_by_name( "world"); print_r( $obj ); 调用方法二: $weibo = new apibus(); $getuser = $weibo>load("Weibo"); $oobj = $getuser->get_user_by_name("world" ); //@SAE 站外 /** * Step1: 下载SDK * Step2: 引入代码目录 */ define("ACCESSKEY", your ACCESSKEY); define("SECRETKEY", your SECRETKEY); 调用方法一: $weibo = apibus::init( "Weibo",1,ACCESSKEY,SECRETKEY); $obj = $weibo>get_user_by_name( "world"); print_r( $obj ); 调用方法二: $weibo = new apibus(ACCESSKEY,SECRETKEY); $getuser = $weibo>load("Weibo"); $oobj = $getuser->get_user_by_name("world" );