Fournisseur de service (administration)
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 :
- 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.