2013-06-20 3 views
0

Я разрабатываю API с помощью CodeIgniter Framework.Выходной файл XML | API с CodeIgniter

Сценарий -

  1. Мое приложение будет вызывать мой API с http://myapi.com/controler?parA=valA&parB=valB
  2. Мой контроллер будет _GET на запрос и обработать его.
  3. Контроллер вызовет вид с $this->load->view('response',$data, true).

My View File -

Response.php

<response> 
    <status> 
     200 
    </status> 
    <mode> 
     VisaCreditCard 
    </mode> 
    <options> 
     <option name="Transfer" url="http://myapi.com/controller/transfer?id=8230&reason=illness" /> 
     <option name="Cancel" url="http://myapi.com/controller/cancel?id=3934"/> 
     <option name="New Booking" url="http://myapi.com/controller/book_new" /> 
    </options> 
</response> 

Пожалуйста, обратите внимание, что имена тегов такие же, как я использую в моем приложении, хотя значения внутри неопределенны. Это потому, что я хочу, чтобы вы заметили <options> и <option/>.

Проблема

Теперь проблема, когда я звоню мой API, CI будет делать все свои рабочие места, а затем дать эту точку зрения, где все я получаю на экране

200 VisaCreditCard 

Когда я проверяю чтобы увидеть исходный код страницы, я получаю именно то, что хочу, т.е. текст, который у меня есть в файле respons.php Ожидание Я хочу, чтобы исходный код, который я получил на своем выходе, был на видимом, когда я звоню этот url.


Информация о сервере

  • Ubuntu 13,04

  • Apache2

  • PHP 5

  • CodeIgniter 2.1.3 (Rewrite PHP Короткие теги - FALSE & .htaccess опустить index.php)


+0

если ваша проблема решена. подумайте о принятии лучшего ответа. – mrsrinivas

ответ

0

После почти 7 часов лобового ударяя поиск, эксперимент и страдание пришел свет.


Я сделал две вещи, и все было решено.

  1. Установить на заголовок, который объявил Content-Type:text/xml.
  2. Опустить третий параметр $this->load->view('response',$data).

Теперь мой код:

<?php header ("Content-Type:text/xml"); ?> 

<response> 
    <status> 
     200 
    </status> 
    <mode> 
     VisaCreditCard 
    </mode> 
    <options> 
     <option name="Transfer" url="http://myapi.com/controller/transfer?id=8230&reason=illness" /> 
     <option name="Cancel" url="http://myapi.com/controller/cancel?id=3934"/> 
     <option name="New Booking" url="http://myapi.com/controller/book_new" /> 
    </options> 
</response> 

И не забудьте преобразовать & в &amp; или вы снова окунетесь ошибки.

+0

Я связал вам потенциальный дубликат. Думаю, это будет полезно для вас, если вы используете Codeigniter. Я нашел его, используя ваше название вопросов в качестве условий поиска. – hakre

+0

@hakre Спасибо, что сообщили. Я уже удалил теги

, но не отредактировал свой ответ здесь. –
                        
                            
    VenomVipes