QuickStart
Entra una especificación, sale un cliente funcional
Una línea de comandos genera la unit. Una llamada la usa. La tercera pestaña muestra los parámetros que conviene conocer el primer día.
> sgcOpenAPI.exe -i "geolocation.json" -o "geolocation.pas"
File successfully created geolocation.pas
Ambos parámetros son obligatorios. -i acepta un archivo local o una URL, y admite JSON y YAML, y -o es la unit de Pascal que se escribe. Hay un asistente gráfico en el mismo ejecutable si prefieres hacer clic. Añade el .pas generado a tu proyecto y ya está listo para usar.
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 se genera en la unit y no recibe parámetros. Un método por operación, con el nombre tomado del id de operación. El objeto de respuesta lo liberas tú, y por eso la demo usa un try finally. En versiones de Delphi anteriores a XE7 el método generado devuelve en su lugar una cadena simple, y la demo incluida protege la ruta tipada con {$IF CompilerVersion >= 28.0}.
-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
En una especificación grande, -x y -p juntos son la diferencia entre una unit que puedes abrir en el IDE y una que no. También existe -r, y está desactivado por defecto a propósito porque sube toda la especificación a un conversor de terceros.
El comando de generación es la línea de uso que imprime la propia ayuda de la herramienta. La llamada es la demo incluida Demos\20.Client\abstractapi.com\geolocation\fGeolocation.pas, con los controles del formulario sustituidos por literales. Esa demo incluye la especificación y espera que generes la unit, y por eso el inicio rápido empieza por el generador.