Laravel API response format

You can create a common response format for API response using a function in laravel. You can call this function to return the data or errors as an API response on call a route in laravel.

Answers 1
  • Function to create laravel API response format

    function create_output($is_success = false, $error=[], $data=[]) {
        if( $is_success ) {
            $output = ['success' => 1];
            if(count($data) > 0) {
                $output['data'] = $data;
            }
        } else {
            $output = [
                'success' => 0,
                'errors' => $error
            ];
        }
        return $this->array_filter_recursive($output);
    }
    
    function array_filter_recursive($array, $callback = null) {
        return $array;
        foreach ($array as $key => & $value) {
            if (is_array($value)) {
                $value = $this->array_filter_recursive($value, $callback);
            }
            else {
                if ( ! is_null($callback)) {
                    if ( ! $callback($value)) {
                        $array[$key] = '';
                    }
                }
                else {
                    if ( ! (bool) $value) {
                        $array[$key] = '';
                    }
                }
            }
        }
        unset($value);
        return $array;
    }
    
    //Call function and return data as API response
    //Return the status success with data
    return $this->create_output(1, [], [
        'id' => $user->id
    ]);
    
    // Return success with no data
    return $this->create_output(1);
    //Return status (success) false with validation error message 
    return $this->create_output(0, $validator->errors()->all());
    
    0

    You can create a trait and copy/paste function in the trait file and call the function in from the controller’s method after importing the trait in the controller file.

  • Back to code snippet queries related laravel