Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
1
respuesta

sobre URI

Comparto que el error lo corregi agregando una barra "/" al final del strind de URI direccion quedando asi:

public class ConsultaPelicula {

Pelicula buscaPelicula(int numeroDePelicula){

    URI direccion = URI.create("https://swapi.py4e.com/api/films/"+numeroDePelicula+"/");

    HttpClient client = HttpClient.newHttpClient();
    HttpRequest request = HttpRequest.newBuilder()
            .uri(direccion)
            .build();

    HttpResponse<String> response = null;
    try {
        response = client
                .send(request, HttpResponse.BodyHandlers.ofString());
    } catch (IOException | InterruptedException e) {
        throw new RuntimeException(e);
    }

    return new Gson().fromJson(response.body(), Pelicula.class);
}

}

1 respuesta

Hola Olga, espero que estés bien

¡Qué bueno que lograste resolver el problema agregando la barra al final de la URI! Esto es un detalle importante cuando trabajamos con APIs, ya que algunas requieren esa barra para interpretar correctamente la solicitud.

Tu implementación parece estar bien encaminada. Al usar HttpClient y HttpRequest, estás siguiendo un enfoque moderno para realizar solicitudes HTTP en Java. Además, el uso de Gson para convertir la respuesta JSON en una instancia de la clase Pelicula es una excelente elección.

Un ejemplo práctico que podrías considerar es manejar respuestas inesperadas de la API, como cuando se consulta una película que no existe. Podrías agregar una verificación adicional para comprobar si el cuerpo de la respuesta contiene los datos esperados antes de intentar deserializarlo. Esto podría ayudarte a manejar mejor los casos en los que la API devuelve un JSON vacío o con valores null.

Por ejemplo, podrías verificar si response.body() contiene los campos esperados antes de llamar a fromJson. Si no, podrías lanzar una excepción personalizada o devolver un objeto Pelicula con valores por defecto.

Espero que continúes disfrutando del curso y que esta experiencia te haya ayudado a comprender mejor cómo interactuar con APIs en Java. ¡Espero haber ayudado y buenos estudios!