Пример , который вы указали , возвращает следующее
return array(
array('id'=>1, 'name'=>'Jac Wright', 'email'=>'jacwright@gmail.com'),
array('id'=>2, 'name'=>'Arul Kumaran', 'email'=>'arul@luracast.com' ),
);
. Все, что нам нужно сделать, - это заключить отдельные массивы в другой массив под ключом 'author'.Например, в author.php
<?php
class Author {
function post ($request_data){
print_r($request_data);
return $request_data;
}
function get() {
return array('author'=> array(
array('id'=>1, 'name'=>'Jac Wright1', 'email'=>'jacwright@gmail.com'),
array('id'=>2, 'name'=>'Arul Kumaran3','email'=>'arul@luracast.com')
));
}
}
Получается точный результат, который вы хотели получить для json и xml
author.xml:
<?xml version="1.0"?>
<response>
<author>
<id>1</id>
<name>Jac Wright1</name>
<email>jacwright@gmail.com</email>
</author>
<author>
<id>2</id>
<name>Arul Kumaran3</name>
<email>arul@luracast.com</email>
</author>
</response>
author.json:
{
"author": [
{
"id": 1,
"name": "Jac Wright1",
"email": "jacwright@gmail.com"
},
{
"id": 2,
"name": "Arul Kumaran3",
"email": "arul@luracast.com"
}
]
}
Позвольте мне объяснить метод, который я также использовал, я использовал вышеуказанный метод post и опубликовал точную структуру xml
, которую я хочу, ииспользовал print_r
, чтобы найти соответствующую php
структуру:)
Вот cURL, который я пробовал в командной строке
curl -X POST http://restler2.dev/test/naming_returned/author.xml -H "Content-Type: text/xml" -d '<response><author><id>1</id><name>Jac Wright</name><email>jacwright@gmail.com</email></author><author><id>1</id><name>Jac Wright</name><email>jacwright@gmail.com</email></author></response>'
и ответ
Array
(
[author] => Array
(
[0] => Array
(
[id] => 1
[name] => Jac Wright
[email] => jacwright@gmail.com
)
[1] => Array
(
[id] => 1
[name] => Jac Wright
[email] => jacwright@gmail.com
)
)
)
<?xml version="1.0"?>
<response>
<author>
<id>1</id>
<name>Jac Wright</name>
<email>jacwright@gmail.com</email>
</author>
<author>
<id>1</id>
<name>Jac Wright</name>
<email>jacwright@gmail.com</email>
</author>
</response>
Для полноты позвольте мне поставить также шлюз index.php
здесь
<?php
require_once '../../restler/restler.php';
#set autoloader
#do not use spl_autoload_register with out parameter
#it will disable the autoloading of formats
spl_autoload_register('spl_autoload');
$r = new Restler();
$r->addAPIClass('Author');
$r->setSupportedFormats('JsonFormat','XmlFormat');
$r->handle();