WP_REST_Response против WP_Error

Я немного смущен тем, как обрабатываются ошибки в REST API Wordpress. В своих примерах они предлагают использовать WP_Error для возврата ошибок, но WP_REST_Response имеет код состояния HTTP в качестве второго параметра, что делает его короче и несколько чище на мой вкус.

Итак, я сравниваю этот способ возврата ошибки:

return new WP_REST_Response(array('error' => 'Error message.'), 400);

С этим:

return new WP_Error('rest_custom_error', 'Error message.', array('status' => 400));

При первом варианте в моем ответе может быть только текст ошибки, и мне этого достаточно. Итак, ответ будет выглядеть так:

{"error":"Error message."}

Со вторым более подробно:

{"code":"rest_custom_error","message":"Error message.","data":{"status":403}}

Но мне также нужно указать код ошибки (первый параметр), что не дает никаких преимуществ моей интерфейсной реализации. Помимо синтаксиса, мне интересно узнать о различиях в производительности, безопасности и факторах будущего.

Так есть ли причина предпочесть одно другому, кроме личных предпочтений?

Это меня тоже смущает. Вы решили это?

Jaakko Karhu 27.08.2019 10:51

Вероятно, это связано с тем, как WP обрабатывает ответы. Воспользуйтесь вторым вариантом.

Dmitriy Gamolin 28.08.2019 16:22
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
7
2
3 231
1

Ответы 1

Я делаю следующее:

WP_REST_Response // Used when endpoint code runs just fine but needs to 
                 // tell the client about some other downstream error (e.g. 4xx)
WP_Error // Used when endpoint code has an issue and needs to tell you
         // it didn't compute or couldn't find resources etc (e.g. 5xx)

Другие вопросы по теме