2013-01-11 34 views
2

我有一位客戶正在尋找其他公司開發一款iPad應用程序,該應用程序將從現有的Modx實例中提取資源。 [不,我不知道爲什麼它需要成爲一個應用程序....]如何使用Modx Revolution API

他們正在尋找使用Modx API,從目前我可以告訴的需要有一個連接器或寫入爲它不「正常工作」是正確的?

所以基本上我需要編寫一個連接器來處理身份驗證[API鍵類型的想法]並將所有數據來回傳遞?在這裏看:http://rtfm.modx.com/display/revolution20/Loading+MODx+Externally我看到連接/使用modx的兩種方法 - 「將modx外部加載」與「在api模式下加載modx」的優點是什麼

我發現API文檔很容易,但實際上使用時幾乎爲零它。

所以:

  1. 有沒有API使用文檔的任何地方?
  2. 作爲api方法,負載外部負載與負載的優點/贊成/利弊是什麼
  3. 是我所有的假設上面是正確的,還是我錯過了一些真正基本的東西?

回答

2

您發現足以使用API​​模塊的文檔。一旦你連接模式API(http://rtfm.modx.com/display/revolution20/Loading+MODx+Externally - 第三個例子,我最喜歡的),您可以使用鏌鋣處理器採取一切必要的,因爲例如認證用戶:

if(isset($_POST) && count($_POST)){ 
    $c = array(
     'username' => $_POST['username'], 
     'password' => $_POST['password'] 
    ); 
    $response = $modx->runProcessor('security/login',$c); 
    if($response->response['success'] == 1){ 
     $user['id'] = $modx->user->get('id'); 
       $profile = $modx->user->getOne('Profile'); 
     $user['fullname'] = $profile->get('fullname'); 
     $user['email'] = $profile->get('email'); 
     echo json_encode($user); 
    }else{ 
     echo json_encode($response->response); 
    } 
} 

簡單的獲得資源:

if ($res = $modx->getObject('modResource', 1)) { 
    print_r($res->toArray()); 
} 

或高級得到:

$response = $modx->runProcessor('resource/get', array('id' => 1)); 
if (!$response->isError()) { 
    print_r($response->response['object']); 
} 
else { 
    $modx->log(modX::LOG_LEVEL_ERROR, $response->getMessage()); 
} 
0

ModX文檔多年來一直沒有它的長處,但這裏有幾個鏈接。

首先,瞭解如何使用/爲它開發ModX works and was architected

ModX的API參考號是http://api.modx.com。在那裏你會找到所有可用的方法,它的屬性和參數。這不是一個指南,但一個參考,所以不要期望太多的文獻。

從版本2.3開始,您可以構建您的own API on top of ModX。對於定製RESTful端點非常有用,但除非您有一些工作/構建API的經驗,否則這可能很有挑戰性。

最後,如果您正在尋找更深入的文檔check out the books

例如,這是你會怎麼做可以從外面鏌鋣對象:

<?php 
require_once '/absolute/path/to/modx/config.core.php'; 
require_once MODX_CORE_PATH.'model/modx/modx.class.php'; 
$modx = new modX(); 
$modx->initialize('web'); 
$modx->getService('error', 'error.modError'); 
相關問題