rest_ensure_response() – Ensures a REST response is a response object (for consistency).

You appear to be a bot. Output may be restricted

Description

Ensures a REST response is a response object (for consistency).

This implements WP_REST_Response, allowing usage of `set_status`/`header`/etc without needing to double-check the object. Will also allow WP_Error to indicate error responses, so users should immediately check for this value.

Usage

$WP_REST_Response|WP_Error = rest_ensure_response( $response );

Parameters

$response
( WP_REST_Response|WP_Error|WP_HTTP_Response|mixed ) required – Response to check.

Returns

WP_REST_Response|WP_Error If response generated an error, WP_Error, if response is already an instance, WP_REST_Response, otherwise returns a new WP_REST_Response instance.

Source

File name: wordpress/wp-includes/rest-api.php
Lines:

1 to 21 of 21
function rest_ensure_response( $response ) {
  if ( is_wp_error( $response ) ) {
    return $response;
  }

  if ( $response instanceof WP_REST_Response ) {
    return $response;
  }

  // While WP_HTTP_Response is the base class of WP_REST_Response, it doesn't provide
  // all the required methods used in WP_REST_Server::dispatch().
  if ( $response instanceof WP_HTTP_Response ) {
    return new WP_REST_Response(
      $response->get_data(),
      $response->get_status(),
      $response->get_headers()
    );
  }

  return new WP_REST_Response( $response );
}
 

 View on GitHub View on Trac