QuickStart
Especificação entra, cliente funcional sai
Uma linha de comando gera a unit. Uma chamada a usa. A terceira aba mostra as opções que vale conhecer no primeiro dia.
> sgcOpenAPI.exe -i "geolocation.json" -o "geolocation.pas"
File successfully created geolocation.pas
As duas opções são obrigatórias. -i recebe um arquivo local ou uma URL e aceita JSON e YAML, e -o é a unit Pascal a escrever. Há um assistente gráfico no mesmo executável, se você preferir clicar. Adicione o .pas gerado ao seu projeto e ele está pronto para uso.
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 é gerado dentro da unit e não recebe parâmetros. Um método por operação, nomeado a partir do id da operação. O objeto de resposta é seu para liberar, e é por isso que o demo usa um try finally. Em versões do Delphi anteriores ao XE7, o método gerado retorna uma string simples, e o demo que acompanha o pacote protege o caminho tipado com {$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
Em uma especificação grande, -x e -p juntos fazem a diferença entre uma unit que você consegue abrir na IDE e uma que não consegue. -r também existe, e fica desligado por padrão de propósito, porque envia a especificação inteira a um conversor de terceiros.
O comando de geração é a linha de uso impressa pela própria ajuda da ferramenta. A chamada é o demo que acompanha o pacote, Demos\20.Client\abstractapi.com\geolocation\fGeolocation.pas, com os controles do formulário substituídos por literais. Esse demo traz a especificação e espera que você gere a unit, e é por isso que o início rápido começa pelo gerador.