Я думаю, что лучше всего использовать шаблон с желаемым форматом (а не простым).Таким образом, вы можете легко изменить формат, если это необходимо, и его не нужно привязывать к одной реализации.Также, используя маршруты, выполнив только одно действие, вы можете автоматически определить, какой шаблон использовать.Например, при использовании маршрута типа:
jobs:
url: /api/jobs.:sf_format
param: { module: api, action: list }
requirements:
sf_format: (?:xml|json|yaml)
при доступе по / api / jobs.xml будет использоваться listSuccess.xml.php , по /api/jobs.json listSuccess.json.php и / api / jobs.yaml listSuccess.yaml.php .Создание для каждого шаблона типа
<!-- apps/frontend/modules/api/templates/listSuccess.xml.php -->
<?xml version="1.0" encoding="utf-8"?>
<jobs>
<?php foreach ($jobs as $url => $job): ?>
<job url="<?php echo $url ?>">
<?php foreach ($job as $key => $value): ?>
<<?php echo $key ?>><?php echo $value ?></<?php echo $key ?>>
<?php endforeach ?>
</job>
<?php endforeach ?>
</jobs>
Вам нужно только правильно выполнить запрос к действию списка :) Таким образом, вам нужно немного кодировать, но вы можете изменить формат, если хотите и иметьумножает вывод (например, xml, json, yaml и т. д.), просто создав правильный шаблон.Используя эту идею, я создал общий сервис REST, и теперь мне остается только выполнить запрос.Это резюме Пример веб-служб Jobeet , для более подробной информации проверьте это.