Jump to content

Como resolver o problema de retorno 'null' em uma API PHP ao enviar dados e imagem?


Postagens Recomendadas

Postado (editado)

Criei uma API e estou com um problema, toda vez que vou enviar uma foto para essa API junto com os dados de nome e idade, ele retorna como null. O que posso fazer? E qual seria o código correto? 
 

function api_photo_post($request) {
    $user = wp_get_current_user();
    $user_id = $user->ID;

    if($user_id == 0) {
        $response = new WP_Error('error', 'Usuário não possui permissão.', ['status' => 401]);
        return rest_ensure_response($response);
    }

    $nome = sanitize_text_field($request['nome']);
    $idade = sanitize_text_field($request['idade']);
    $files = $request->get_file_params();

    if(empty($nome) || empty($idade) || empty($files)) {
        $response = new WP_Error('error', 'Dados incompletos.', ['status' => 422]);
        return rest_ensure_response($response);
    }

    $response = [
        'post_author' => $user_id,
        'post_type' => 'post',
        'post_status' => 'publish',
        'post_title' => $nome,
        'post_content' => $nome,
        'files' => $files,
        'meta_input' => [
            'idade' => $idade,
            'acessos' => 0,
        ]
    ];

    $post_id = wp_insert_post($response);

    require_once ABSPATH . 'wp-admin/includes/image.php';
    require_once ABSPATH . 'wp-admin/includes/file.php';
    require_once ABSPATH . 'wp-admin/includes/media.php';

    $photo_id = media_handle_upload('img', $post_id);
    update_post_meta($post_id, 'img', $photo_id);

    return rest_ensure_response($response);
}

function register_api_photo_post() {
    register_rest_route('api', '/photo/', [
        'methods' => 'POST',
        'callback' => 'api_photo_post',
    ]);
}

add_action('rest_api_init', 'register_api_photo_post');

Erro retornado no JSON:

[
    {
        "id": null,
        "author": null,
        "title": null,
        "date": null,
        "src": null,
        "idade": null,
        "acessos": 0,
        "total_comments": 0
    }
]

 O código está no print abaixo junto com o erro no JSON. Seguem os anexos:

Screenshot_2024-10-04-11-33-50-349_com.android.chrome.jpg

Screenshot_2024-10-10-18-52-46-034_com.android.chrome-edit.jpg

Screenshot_2024-10-10-18-52-55-349_com.android.chrome-edit.jpg

Editado por Casa do Desenvolvedor
Inserção do código na caixa de 'code'.
  • Casa do Desenvolvedor mudou o título para Como resolver o problema de retorno 'null' em uma API PHP ao enviar dados e imagem?

Crie uma conta ou entre para comentar 😀

Você precisa ser um membro para deixar um comentário.

Crie a sua conta

Participe da nossa comunidade, crie sua conta.
É bem rápido!

Criar minha conta agora

Entrar

Você já tem uma conta?
Faça o login agora.

Entrar agora


×
×
  • Create New...