Простой вопрос. Как включить «красивый» рендеринг json в Mojolicious::Lite? Я разрабатываю RESTful API и хотел бы, чтобы мой вывод был немного более удобочитаемым для человека.
Как включить красивый рендеринг JSON в Mojolicious::Lite?
Ответы (3)
Вы можете переопределить средство визуализации JSON по умолчанию в методе запуска.
Для минимального примера:
use JSON::XS;
our $json = JSON::XS->new->utf8->pretty;
sub startup {
my $self = shift;
...
$self->app->renderer->add_handler(json => sub {
${$_[2]} = $json->encode($_[3]{json});
});
}
Обработчик по умолчанию определен в Mojolicious/Renderer.pm и использует Mojo::JSON::encode_json
.
Mojo::JSON утверждает, что является минималистичной реализацией JSON, полностью соответствующей RFC. Он не реализует автоматический отступ/красивый вывод.
Лучше всего использовать браузер (или другой клиент), который поддерживает это, например SoapUI. Существуют плагины для браузера, такие как JSONView для Chrome.
Вы также можете создать собственный клиент и использовать одну из реализаций JSON, например JSON::MaybeXS. .
Также есть утилита командной строки json_pp
, которая поставляется с модулем JSON. По умолчанию это будет красивая печать. Вы можете передать ему вывод curl следующим образом:
$ curl -s -H "Accept: application/json" http://www.json-generator.com/api/json/get/ckUMuWrjLS?indent=0 -- | json_pp
Параметр -s
для curl отключит его выходные данные о состоянии.
Источник JSON выше: http://www.json-generator.com/ суб>
JSON::PP имеет pretty
метод.
$json->pretty([$enable])