2013-05-03 4 views
1

Im пытается создать проект, управляемый API, в symfony2, используя FOSRestBundle.API-интерфейс symfony2 проекта

У меня есть APIController с действием getDataAction().

Это прекрасно работает, когда я отправлять запросы от некоторых внешних application.I получите JSON закодированные данные, как и ожидалось.

Но мне понадобятся эти данные в том же приложении (например, какой-то другой контроллер в одном приложении).

Каков подходящий способ сделать это?

  • создание объекта APIController, а затем вызов требуемого действия на него. ИЛИ
  • или отправьте запрос CURL с другого контроллера на номер getDataAction()APIController, чтобы получить данные.

ответ

1

Вы можете получить данные из APIController с помощью route forwarding. Используя это, вы можете использовать любое действие в своем контроллере. Нет необходимости в curl или отдельный объект контроллера. некоторые вещи, как это:

$details = $this->forward('acmeRestBundle:API:getData',array('_format'=>'json')); 

Это будет возвращать результат набора от action.May быть так:

content":protected]=> 
    string(107181) "{}" 
    ["version":protected]=> 
    string(3) "1.0" 
    ["statusCode":protected]=> 
    int(200) 
    ["statusText":protected]=> 
    string(2) "OK" 
    ["charset":protected]=> 
    NULL 
+0

я знаю о переадресации маршрута. Но то, что я хочу знать, является правильным методом? , И делает внутренний запрос curl правильным правилом –

+1

Если вам нужно прибегнуть к Curl для вызова метода в вашем приложении, это означает, что у вас есть серьезные архитектурные проблемы в вашем коде. Вы должны передавать на свой компьютер любую бизнес-логику в вашем контроллере. Контроллеры должны иметь дело только с http, а не с данными, которые управляются. – mpm

+0

Мне не нужно прибегать к завиту. я просто хотел знать, это правильный подход, и из вашего ответа я думаю, что это НЕ! Так что я должен выбрать маршрутизацию? –

 Смежные вопросы

  • Нет связанных вопросов^_^