【问题标题】:How to use the Modx Revolution API如何使用 Modx 革命 API
【发布时间】:2012-12-26 14:01:09
【问题描述】:

我有一个客户正在考虑让其他公司开发一个 iPad 应用程序,该应用程序将从他们现有的 modx 实例中提取资源。 [不 - 我不知道为什么它需要成为一个应用程序......]

他们正在寻求使用 Modx API,据我目前所知,它需要一个连接器或编写的东西,因为它不能“正常工作”对吗?

所以基本上我需要编写一个连接器来处理身份验证 [API 密钥类型的想法] 并来回传递所有数据?看这里:http://rtfm.modx.com/display/revolution20/Loading+MODx+Externally 我看到了两种连接/使用 modx 的方法——“从外部加载 modx”比“在 api 模式下加载 modx”有什么优势

我很容易找到 API 文档,但在实际使用时几乎为零。

所以:

  1. 是否有 API 使用文档?
  2. 外部加载与作为 api 方法加载的优点/优点/缺点是什么
  3. 我上面的所有假设都是正确的,还是我错过了一些非常基本的东西?

【问题讨论】:

    标签: php api modx modx-revolution


    【解决方案1】:

    您找到的足以使用 API modx 的文档。连接模式 API 后(http://rtfm.modx.com/display/revolution20/Loading+MODx+Externally - 我最喜欢的第三个示例)您可以使用 modx 处理器执行任何必要的操作,例如验证用户身份:

    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());
    }
    

    【讨论】:

      【解决方案2】:

      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

      例如,您可以通过以下方式使 ModX 对象从外部可用:

      <?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');
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多