Fournisseur de service (administration)

De Wiki1000

Les fournisseurs de service peuvent être configurés à partir du menu d'administration.

Lorsqu'une requête http est émise à partir du code métier un fournisseur de service correspondant est recherché en se basant sur l'url de la requête. Si un fournisseur de service est trouvé la requête est paramétrée en conséquence.

Il existe plusieurs méthode d'authentification pour les services connectés, les principales sont basées

  • soit sur l'utilisation d'un jeton d'authentification passé dans l'entête de requête Authorization
  • soit par l'utilisation d'une clé API passé en paramètre de requête ou dans l'entête X-API-KEY de la requête.

Exemple :

Utilisation de la géolocalisation

Les fonctions de géolocalisation à partir des adresses utilisent le service geocode de Google, ce service requière de passer une clé API dans la requête :

//Procedure Geolocalize;
var http:THttpClient; json:TJson; lat,long:Double; AStr:string;
begin
  AStr := _TP('L''adresse renseignée ne permet pas de faire une géolocalisation');
  http := ThttpClient.Create(nil);
  http.URL := 'https://maps.googleapis.com/maps/api/geocode/json?sensor=false&address='+GeocodeAddress;
  try
    http.Execute;
    json := TJson.Create(http.ResponseStr);
 
    if (json.status='REQUEST_DENIED') or (json.Exists('error_message')) then
     begin
       AStr :=  _TP('Accès non autorisé')+#13+json.error_message;
       raise Erule.Create(AStr);
     end
     else
     begin 
       if ClassManager.TranCount = 0 then ClassManager.BeginTran;
       geoloc.lat := StrToFloat(json.results[0].geometry.location.lat);
       geoloc.long := StrToFloat(json.results[0].geometry.location.lng);
       //ShowMessage(Format('%0.5f,%0.5f',[lat,long]));
     end;
 
  except
    if not varNoErreurGeoloc then
     raise Erule.Create(AStr);
  end;
end;

Google requière qu'une clé API soit renseignée dans l'url de la requête, pour cela configurez un fournisseur de service de la façon suivante :

800

  • Jeton d'accès
Ce jeton sera placé dans l'entête Authorization de la requête.
  • Clé API
Cette clé sera placée dans l'entête X-API-KEY si la valeur n'est pas sous la forme d'un paramètre ou bien dans l'url de la requête sinon.
Outils personnels