Я создаю веб-сервис json, используя Mojolicious Lite.
По умолчанию Mojolicious возвращает HTML-ответ в случае ошибки сервера или не найденной ошибки.
Есть ли способ перезаписать это в пользовательский ответ JSON?
Я создаю веб-сервис json, используя Mojolicious Lite.
По умолчанию Mojolicious возвращает HTML-ответ в случае ошибки сервера или не найденной ошибки.
Есть ли способ перезаписать это в пользовательский ответ JSON?
Вот два подхода:
Используйте json
в качестве формата приложения по умолчанию и используйте шаблон not_found.*.json.ep
use Mojolicious::Lite;
app->renderer->default_format('json');
app->start;
__DATA__
@@ not_found.development.json.ep
{"not":"found","code":404,"data":{"key1":"value1","key2":[42,19,"value3"]}}
Переопределить полезную нагрузку json с помощью хука before_render
.
use Mojolicious::Lite;
hook before_render => sub {
my ($c,$args) = @_;
if ($args->{template} && $args->{template} eq 'not_found') {
$args->{json} = { "too bad" => "so sad" };
}
};
app->start;
О том, как настроить эти ответы.