2015-10-23 145 views
0

大家好今天我有一個有趣的問題。在joomla中製作web服務的最佳方式是什麼?

在joomla中製作web服務的最佳方式是什麼? 我試圖在一個的Joomla Web服務和我有以下問題:在視圖控制器

:組件/ com_webservice /視圖/ view.json.php

<?php 

defined('_JEXEC') or die('Restricted access'); 

jimport('joomla.application.component.view'); 

class WebServicesViewServices extends JViewLegacy { 

    private $data; 

function __construct($config = array()) { 
     JLoader::import('models.services', JPATH_COMPONENT); 
     $model = new WebServicesModelServices(); 

     if ($model->errors) { 
      echo json_encode($model->errors); 
      jexit(); 
     }else{ 
      $this->data = array('iphone' => '5s','iphone' => '6','iphone' => '6s','iphone' => '6s plus'); 
     } 
     parent::__construct($config); 
    } 

    function display($tpl = null) { 
     echo json_encode($this->data); 
    } 
} 
?> 

的問題是如果我執行:捲曲http://wsn.jserver/index.php?option=com_services&format=json 消費這種服務,這種反應我

* Connected to wsn.jserver (127.0.0.1) port 80 (#0) 
> GET /index.php?option=com_jserver HTTP/1.1 
> Host: wsn.jserver 
> User-Agent: curl/7.43.0 
> Accept: */* 
> 
< HTTP/1.1 303 See other 
< Date: Fri, 23 Oct 2015 02:40:37 GMT 
< Server: Apache/2.4.16 (Unix) PHP/5.5.30 
< X-Powered-By: PHP/5.5.30 
< Set-Cookie: 4dbb8abeb5e7919ee73c8545901d5f62=d6ksd6e93t99q7hsk8cf10hq35; path=/; HttpOnly 
< Set-Cookie: e909c2d7067ea37437cf97fe11d91bd0=DO 
< Location: http://wsn.jserver/index.php?lang=es 
< Content-Length: 0 
< Content-Type: text/html; charset=utf-8 
< 
* Connection #0 to host wsn.jserver left intact 

我怎麼能這樣做這項工作? 在joomla中製作web服務的最佳方式是什麼?

回答

0

你檢查了JoomlaTools Framework?從鏈接頁面:

圍繞HTTP協議而設計。每個組件自動提供3級JSON REST API,無需額外編碼。

+0

感謝@derjoachim,這是非常有用的。 – wilo087

+0

謝謝@derjoachim,這是非常有用的。我找到了解決方案,現在我將發佈它。 – wilo087

0

解決! 我發現了這個問題。

問題是因爲joomla默認做了重定向選擇語言。 就我而言,我一直重複的插件languagefilter和驗證,沒有成爲選項=「com_services」

然後當我執行命令「捲曲-v http://wsn.jserver/index.php?option=com_webervices」的迴應是:

* Trying 127.0.0.1... 
* Connected to wsn.pawad (127.0.0.1) port 80 (#0) 
> GET /index.php?option=com_pawaservices HTTP/1.1 
> Host: wsn.jserver 
> User-Agent: curl/7.43.0 
> Accept: */* 
> 
< HTTP/1.1 200 OK 
< Date: Fri, 23 Oct 2015 18:48:09 GMT 
< Server: Apache/2.4.16 (Unix) PHP/5.5.30 
< X-Powered-By: PHP/5.5.30 
< Set-Cookie: 4dbb8abeb5e7919ee73c8545901d5f62=6a8m8cdte288k3jp2kvefmfe07; path=/; HttpOnly 
< Content-Length: 16 
< Content-Type: text/html 
< 
* Connection #0 to host wsn.pawad left intact 
{"iphone":"5s", "iphone":"6", "iphone":"6s", "iphone":"6s plus"} 

總之,問題在於joomla做了重定向。要解決這個問題,你可以破解插件languagefilter:plugins/system/languagefilter/languagefilter.php或創建一個新的插件。

相關問題