Как мне обработать несколько функций API для одного источника данных CakePHP?

Я использую CakePHP 1.3. Я успешно создал действительно DataSource и собираюсь создавать более сложные. Я смотрю на создание источника данных Yahoo ответы и интересовался несколькими лучшими методами. API предоставляет несколько функций:

1) Возможность поиска вопросов

2) Возможность получать вопросы в категории

3) Возможность получить подробную информацию по конкретному вопросу

4) Возможность получить вопросы подробности о конкретном пользователе

Как есть, я мог бы использовать только функции поиска вопросов и пользователей. Вот мои вопросы:

  1. Я создал 1 источник данных, который может выполнять обе задачи или отдельные (то есть один, чтобы найти пользователей, а другой, чтобы найти вопросы?

  2. Если я создаю 1 источник данных, то как мне определить, является ли модель $ this-> YahooUser-> find () (найти пользователей) против $ this-> YahooQuestion-> find () (найти вопросы), чтобы я мог создать правильный URL для запроса.

1
задан Angel S. Moreno 20 August 2010 в 09:54
поделиться

1 ответ

Думайте об источнике данных как о базе данных. Например, CakePHP распространяется с несколькими источниками данных для конкретных баз данных (например, MySql, Oracle и т. Д.). Вам нужно создать источник данных YahooAnswers.

Вот пример из документации, показывающий, как создать источник данных Twitter, например: http://book.cakephp.org/view/849/An-Example

Это должно помочь вам реализовать YahooAnswers API в качестве источника данных.

ОБНОВЛЕНИЕ: Вот пример:

<?php 
pp::import('Core', 'HttpSocket');
class YahooAnswersSource extends DataSource {
    protected $_schema = array(
        'users' => array(
            'id' => array(
                'type' => 'integer',
                'null' => true,
                'key' => 'primary',
                'length' => 11,
            ),
            'name' => array(
                'type' => 'string',
                'null' => true,
                'key' => 'primary',
                'length' => 60
            ),
        ),
                'questions' => array(
            'id' => array(
                'type' => 'integer',
                'null' => true,
                'key' => 'primary',
                'length' => 11,
            ),
            'text' => array(
                'type' => 'string',
                'null' => true,
                'key' => 'primary',
                'length' => 140
            ),
        )
    );
    public function __construct($config) {
        $auth = "{$config['login']}:{$config['password']}";
        $this->connection = new HttpSocket(
            "http://{$auth}@yahooanswers.com/"
        );
        parent::__construct($config);
    }
    public function listSources() {
        return array('users','questions');
    }
...
?>
2
ответ дан 2 September 2019 в 21:58
поделиться
Другие вопросы по тегам:

Похожие вопросы: