En esta ocasión veremos cómo hacer llamadas REST utilizando los componentes que nos proporciona Delphi 10.4.1
Desde el menú Tools, accedemos a la opción REST Debugger, y se abrirá un programa desarrollado por Embarcadero realizado para simplificar las consultas web y ver, entre otras cosas el header, body, los datos en formato tabular, cuando se hacen llamadas a una API. En cierto modo es parecido al funcionamiento del comando curl en Linux.
En este caso voy a hacer una consulta a la API que nos proporciona la NASA para ver la foto del día.
https://api.nasa.gov/planetary/apod?api_key=DEMO_KEY&date=2021-08-15
En el campo URL pondremos la URL anterior, y dado que la consulta devuelve el resultado en formato JSON, en el Content-type seleccionaremos application/json
Pulsamos el botón "Send Request" y si todo ha ido bien en la parte inferior de la ventana, etiquetada con el nombre "Response" veremos la respuesta del Servidor (Headers, Body y Tabular Data)
Pulsamos el botón "Copy components", para copiar en el clipboard los componentes (RestClient, RestRequest y RestResponse)
A continuación tenemos que crear una nueva aplicación:
Empezamos como siempre desde File -New - MultiDevice Application y añadimos 2 componentes: un tButton y un tMemo
Ahora tenemos que pegar los componentes anteriores sobre la vista de formulario de nuestro programa pulsando Ctrl+V, y quedará como sigue:
Añadimos a la ventana del Form un TButton y un TMemo, que contendrá el archivo JSON devuelto por la API
Sobre el form, con el botón derecho del ratón, activamos el menú "Bind Visually..." para que se abra el "LiveBindings Designer"
y unimos con el ratón los campos JSONText y Text (del tMemo) como muestra la figura:
En el botón insertamos la siguiente línea de código:
PROCEDURE TForm1.Button1Click(Sender: TObject);
BEGIN
BEGIN
RESTRequest1.Execute;
END;
END;
Ejecutamos el programa y pulsamos el botón "Iniciar" del Form y nos mostrará la información que nos ha devuelto la llamada a la API
Si no quieren utilizar el LiveBindings Designer, tendrían que poner el siguiente código en el botón INICIAR.
PROCEDURE TForm1.Button1Click(Sender: TObject);
BEGIN
VAR
jValue: TJSONValue;
BEGIN
RESTRequest1.Execute;
jValue := RESTResponse1.JSONValue;
Memo1.Text := jValue.ToString;
END;
END;
------------
En los siguientes Post les indicaré como dar formato tabular al JSON para que se pueda visualizar desde un DataSet, desde un StringGrid o utilizando una tabla en memoria para hacer consultas.
No hay comentarios:
Publicar un comentario