QuickStart
Spezifikation hinein, funktionierender Client heraus
Eine Kommandozeile generiert die Unit. Ein Aufruf verwendet sie. Der dritte Tab zeigt die Schalter, die am ersten Tag sinnvoll sind.
> sgcOpenAPI.exe -i "geolocation.json" -o "geolocation.pas"
File successfully created geolocation.pas
Beide Schalter sind Pflicht. -i nimmt eine lokale Datei oder eine URL entgegen und akzeptiert JSON und YAML, und -o ist die zu schreibende Pascal-Unit. Wenn du lieber klickst, gibt es in derselben ausführbaren Datei einen GUI-Assistenten. Füge die generierte .pas deinem Projekt hinzu, und sie ist einsatzbereit.
uses
geolocation;
procedure TfrmGeolocation.btnGeolocationClick(Sender: TObject);
var
oResponse: TsgcOpenAPI_Retrieve_the_location_of_an_IP_address_Response;
begin
oResponse := GetOpenAPIClient.Retrieve_the_location_of_an_IP_address(
txtAPIKey.Text, txtIPAddress.Text);
try
if oResponse.IsSuccessful then
memoResponse.Lines.Text :=
'country: ' + oResponse.Successful.Country + #13#10 +
'city: ' + oResponse.Successful.City
else
memoResponse.Lines.Text := oResponse.ResponseError;
finally
oResponse.Free;
end;
end;
GetOpenAPIClient wird in die Unit generiert und nimmt keine Parameter entgegen. Eine Methode je Operation, benannt nach der Operation-ID. Das Response-Objekt musst du selbst freigeben, weshalb die Demo ein try finally verwendet. Unter Delphi-Versionen vor XE7 liefert die generierte Methode stattdessen einen einfachen String, und die mitgelieferte Demo sichert den typisierten Pfad mit {$IF CompilerVersion >= 28.0} ab.
-s generate a server stub instead of a client
-a 3 add an OAuth2 flow to the generated client
(0 none, 1 basic, 2 token, 3 oauth2, 4 jwt)
-u <url> set the base url the generated client uses
-m 1 name methods from summary rather than operationid
(0 operationid, 1 summary, 2 endpoint)
-x <list|file> exclude operations, as "VERB endpoint"
-p generate only the classes the kept operations use
-nc do not create pascal classes
-l show progress messages (errors are always shown)
-user -password activate the licence on this machine
Bei einer großen Spezifikation machen -x und -p zusammen den Unterschied zwischen einer Unit, die du in der IDE öffnen kannst, und einer, die du nicht öffnen kannst. -r gibt es ebenfalls, und es ist absichtlich standardmäßig aus, weil es die gesamte Spezifikation an einen Konverter eines Dritten hochlädt.
Der Generierungsbefehl ist die Aufrufzeile aus der eigenen Hilfe des Werkzeugs. Der Aufruf ist die mitgelieferte Demo Demos\20.Client\abstractapi.com\geolocation\fGeolocation.pas, wobei die Formularsteuerelemente durch Literale ersetzt wurden. Diese Demo liefert die Spezifikation mit und erwartet, dass du die Unit generierst, weshalb der Schnellstart mit dem Generator beginnt.