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?...ate=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.
Suscribirse :
Weiterlesen...