Как создать XML для API вместо ручного, если условия для каждого элемента в модели? - PullRequest
0 голосов
/ 05 ноября 2018

У меня есть проект laravel с динамическими формами (созданный из db), и для каждой из этих форм мне нужно создать XML для API с другим стилем. Как я могу создать их автоматически или из шаблона? Я имею в виду, что я мог бы создать их вручную, но это взорвало бы модель сотнями строк кода, например

if($myvar['xyz'] == "foo")
   $xml .= "<SOMENODE>$myvar['xyz']</SOMENODE>";
}

Но некоторые элементы также имеют дочерние элементы ... Есть ли более элегантный способ?

Спасибо Привет

1 Ответ

0 голосов
/ 06 ноября 2018

Я создал пакет Laravel для упрощения XML-ответов для API: https://github.com/mtownsend5512/response-xml

С пакетом это так же просто, как настроить массив или коллекцию, чтобы указать желаемый формат. Вот простой пример использования пакета:

$products = Product::all();
$array = [
    'status' => 'success',
    'data' => $products
];

return response()->xml($array);

Это очень простой пример. Если вам нужна более полная настройка трансформатора отклика, я рекомендую вам использовать пакет Spatie's Laravel Fractal с моим собственным. Это поможет вам отформатировать данные именно так, как вы хотите, и вы получите совершенно правильный XML.

Это должно дать вам все необходимое для начала работы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...