Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Web API in ein Programm einbinden (https://www.delphipraxis.net/194148-web-api-ein-programm-einbinden.html)

MSiMaxx 22. Okt 2017 18:00

Delphi-Version: 5

Web API in ein Programm einbinden
 
Guten Abend,

zu allererst, Ich habe mich mit Delphi in der 9. Klasse ein wenig befasst, und nun ein paar Jahre später wieder einen kleinen Rechner auf die Beine gestellt.
Dabei handelt es sich um ein Hilfstool um für ein Computerspiel (Arma3) auszurechnen, wie viel man bei einer Farmtour an Geld bekommt.
Dabei gibt man die Größe des Autos, die Größe des Rucksackes den man bei sich trägt, das Gewicht von einer Einheit eines Rohstoffes (z.B. 1 Einheit kupfer wiegt 4 KG) und den Preis, welcher eine Einheit eines Rohstoffes gerade bringt.
-> Kofferraum 40 kg, Rucksack 20 kg, 1 Einheit 4kg ->> 60/4 - man kann 15 Einheiten mitnehmen. Der Einzelpreis pro Einheit beträgt z.B. 10 $, dann würde man auf der gesamten Route 150$ machen.
Hab das soweit schon mal in das ServerForum gepackt und bekam das Feedback, dass es doch vielleicht gehen würde wenn man die Preise in Echtzeit direkt angezeigt bekommt, man sozusagen nur noch den Rohstoff auswählen muss und das Programm gibt einen den Preis schon vor..
Der Server hat ein dynamisches Marktsystem, wodurch sich die Preise aller 10 min ändern.

Da ich ziemlich neu bin, weiß ich absolut nicht, wie ich diese API einbinden kann, damit sich das Programm selber zieht, dass 1 Einheit Kupfer um 19:00 Uhr z.B. 10$ bringt und aber 19:10 nur noch 9$.

Sorry für das lange Beispiel aber Ich hoffe dass ich nun alle Unklarheiten beseitigt habe :)
Wäre sehr nett wenn mir jemand das mit der API erklären würde ;)

Aviator 22. Okt 2017 18:45

AW: Web API in ein Programm einbinden
 
Es wäre ganz interessant wenn du schreiben würdest um welche API es sich handelt. Link zum Forum/Shop oder sonst was? :roll:

MSiMaxx 22. Okt 2017 19:34

AW: Web API in ein Programm einbinden
 
Das ist ja mein 2. Problem, das weiß ih nicht. Man sieht es nicht im Forum sondern im Spie (welcher über einen server läuft).. frag ich mal noch bei nem admin nach :)

MSiMaxx 22. Okt 2017 20:04

AW: Web API in ein Programm einbinden
 
Habe jetzt mal nen Admin gefragt, der hat mir die die ganzen APIs für den Server freigegeben.

https://api.realliferpg.de/

Nun hab ich eben das Problem, dass ich die

https://api.realliferpg.de/v1/market/1

in das Programm einbinden möchte, damit das Programm sich von dort die Preise für Äpfel, Kupfer, Glas etc. nimmt

Wie gesagt, ich bin ein blutiger Anfänger, also Entschuldigung schon mal wenn ich vielleicht dumme Fragen stelle :)

mquadrat 23. Okt 2017 07:24

AW: Web API in ein Programm einbinden
 
Google Stichwort wäre REST Client.

Towmuz 23. Okt 2017 07:32

AW: Web API in ein Programm einbinden
 
Moin,

da musst du nicht viel einbinden, du sendest HTTP GET Anfragen an den Server und der liefert dir JSON zurück.

Hier nur mal so als Denkanstoß...(Umgebautes Bsp. von Emba)

Delphi-Quellcode:
uses
  IdHTTP, JSON;

procedure Form1.Button1Click(Sender: TObject);
var
  res: string;
  val: TJSONValue;
  HTTP: TIdHTTP;
begin
  HTTP := TIdHTTP.Create(nil);
  HTTP.Request.UserAgent := 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:56.0) Gecko/20100101 Firefox/56.0'; // *
  res  := HTTP.Get('https://api.realliferpg.de/v1/market/1');
  val  := TJSONObject.ParseJSONValue(res);

  if val is TJSONObject then
  begin
    ShowMessage(val.GetValue<string>('data[0].price'));
  end;
end;
* Den Standarduseragent der in TIdHttp hinterlegt ist, hat er bei mir eben mit 403 abgelehnt (Mozilla/3.0 glaub ich und den akzeptiert der Server mit der API nicht).

Ich schätze aber mal, in deiner Delphi Version gibt´s den ganzen JSON Kram noch nicht und du müsstest wahrscheinlich mal nach Delphi JSON googlen :) oder du holst dir die momentan (?) kostenlose Starterversion von Embarcadero.

MSiMaxx 23. Okt 2017 18:10

AW: Web API in ein Programm einbinden
 
Danke für die hilfe :)
Die startversion hab ich, ich konnte sie hier nur irgendwie nicht angeben :gruebel:
Ich versuch das ganze morgen mal umzusetzen und dann geb ich nochmal ne rückmeldung :)

MSiMaxx 23. Okt 2017 18:39

AW: Web API in ein Programm einbinden
 
Verstehe nur noch nicht so ganz, wie ich mir eine best. Variable ziehen kann, also in meinem fall den Preis.. könntest du mir da vllt wenn du zeit hättest nen kleinen code als beispiel schrieben, so dass ich den preis dann als variable habe die ich in ein edit einfügen kann?
Ich wäre dir unendlich dankbar ♥️

Aviator 23. Okt 2017 20:27

AW: Web API in ein Programm einbinden
 
Zitat:

Zitat von MSiMaxx (Beitrag 1383974)
Verstehe nur noch nicht so ganz, wie ich mir eine best. Variable ziehen kann, also in meinem fall den Preis.. könntest du mir da vllt wenn du zeit hättest nen kleinen code als beispiel schrieben, so dass ich den preis dann als variable habe die ich in ein edit einfügen kann?
Ich wäre dir unendlich dankbar ♥️

Er hat doch bereits ein Beispiel gepostet. :cyclops:


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:18 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz