RAD Studio 10.4.1 is now available! Learn more. Looking for discounts? Visit our Special Offers page!
News

Conectando desde Delphi a un webservice de Prestashop

Author: Emilio PM

Prestashop es una aplicación web muy extendida en Europa y que se utiliza para crear comercios electrónicos.

Dispone de una funcionalidad para conectar aplicaciones utilizando un servicio web. Existen multitud de páginas webs donde te explican como activar un servicio web en Prestashop, así pues, el primer paso es activarlo y obtener una clave para poder conectarnos.

En Delphi disponemos de varios componentes que podemos utilizar para obtener la información de nuestro servicio web, en este caso sería utilizando REST. En nuestro ejemplo veremos como hacerlo con el componente TRESTClient.

En nuestro ejemplo vamos a necesitar dos componentes en nuestro formulario:

  • TRESTClient. Utilizado para conectarnos con el servicio web.
  • TRESTRequest. Utilizado para obtener información.
  • TRESTResponse. Utilizado para almacenar el contenido obtenido.

El primer problema que nos encontramos es que el servicio web utiliza XML en vez de JSON. Es algo que debemos tener en cuenta a la hora de utilizar nuestro componente.

TRESTClient

Propiedades que debemos modificar:

  • BaseURL: Debe ser la URL base donde se encuentra el webservice de Prestashop. Normalmente se encuentra en /api y en mi caso es http://localhost/prestashop/api/
  • ContentType: Es el tipo de contenido con el cual vamos a trabajar. Al ser XML debemos indicar el valor ‘text/xml’
  • Accept: Indicamos que tipos  de contenidos vamos a aceptar. En nuestro caso: ‘application/json, text/plain, text/xml; q=0.9, text/html;q=0.8,’
  • AcceptCharset: Indicamos que tipo de Charset esperamos. En nuestro caso: ‘ISO-8859-1, *;q=0.8’

TRESTRequest

Propiedades que debemos modificar:

  • Resource: Será el recurso que vamos a utilizar de prestashop, por ejemplo, vamos a poner products?ws_key=ABCDEFGHIJKLMNOPQRSTUVWXYZ789012 para obtener los productos dados de alta en prestashop.
  • Client: Deberemos tener asignado el cliente anterior.
  • Response: Debemos tener asignado el componente Request

 

Pruebas

Pasamos a realizar las primeras pruebas poniendo un TButton y un TMemo.

En el click del ratón escribimos el siguiente código (recuerda cambiar el nombre por el que tenga tu componente):

RestRequest1.Execute;
Memo1.Text:=RESTResponse1.Content;

Ejecutamos nuestra aplicación y nos dará como resultado algo así:

<?xml version="1.0" encoding="UTF-8"?>
<prestashop xmlns:xlink="http://www.w3.org/1999/xlink">
<products>
<product id="1" xlink:href="http://localhost/prestashop/api/products/1"/>
<product id="2" xlink:href="http://localhost/prestashop/api/products/2"/>
<product id="3" xlink:href="http://localhost/prestashop/api/products/3"/>
<product id="4" xlink:href="http://localhost/prestashop/api/products/4"/>
<product id="5" xlink:href="http://localhost/prestashop/api/products/5"/>
<product id="6" xlink:href="http://localhost/prestashop/api/products/6"/>
<product id="7" xlink:href="http://localhost/prestashop/api/products/7"/>
</products>
</prestashop>

 

De esta manera hemos obtenido un listado de todos los productos que tenemos en prestashop.

 

Y si quieres probarlo, te invito a que te descargues la [DownloadButton Product=’Delphi’ Caption=’Trial de Delphi’] y pruebes, es muy sencillo de realizar. 

 


Reduce development time and get to market faster with RAD Studio, Delphi, or C++Builder.
Design. Code. Compile. Deploy.
Start Free Trial   Learn More About Upgrading

Related posts
C++

What's New in the GetIt Package Manager - June 2020

C++

RAD Studio 10.4 Now Available, Learn More

C++NewsRAD Studio

Open for Business with 10.4! - May 2020 GM Update

C++DelphiNews

Embarcadero Open Source Project Sponsorship

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.

IN THE ARTICLES