欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

使用Zend_Rest_Server做Web Service架构

程序员文章站 2022-04-16 16:09:11
...
  1. $base_url = 'http://bbs.it-home.org/';

  2. $client = new Zend_Rest_Client($base_url);
  3. // 设置全局变量
  4. $headers = array();

  5. $client->headers($headers);

  6. // 远程调用, 调用sayHello接口,传递两个字符串参数

  7. $response = $client->sayHello('Hello', 'world!')->get();
  8. if ($this->_request->getParam('debug')) {

  9. echo "
    ";
  10. print_r(json_decode($response, 1));
  11. echo "";
  12. } else {
  13. echo $response;
  14. }
复制代码

服务器端:

  1. // 捕获请求头信息

  2. $headers = $this->_request->getParam('headers');
  3. Zend_Registry::set('headers', $headers);
  4. $server = new Zend_Rest_Server();
  5. $server->setClass('Lijiabeibei_Blog');
  6. $server->handle();
  7. //接口处理类:(Lijiabeibei_Blog)

  8. class Lijiabeibei_Blog {
  9. protected $retval = array();
  10. function __construct() {

  11. }
  12. /**

  13. * 测试接口
  14. * @param string $a
  15. * @param string $b
  16. */
  17. function sayHello($a, $b) {
  18. if (!$this->retval['success']) {
  19. $this->retval['debug']= print_r(
  20. Zend_Registry::get('headers'), 1
  21. );
  22. return json_encode($this->retval);
  23. }
  24. $this->retval['debug'] = $a .' '.$b;
  25. return json_encode($this->retval);

  26. }
  27. }
复制代码

如果要设置多个服务类,可以这样: $server = new Ylili_Rest_Server(); $server->setClass('Lijiabeibei_Blog'); $server->setClass('Lijiabeibei_Shop); 注意,多个服务器类的方法命名不要冲突。