uses
sgcHTTP_REST_Server, sgcHTTP_REST_Server_Stats;
var
RESTServer: TsgcHTTPRESTServer;
Stats: TsgcHTTPServerStats;
begin
RESTServer := TsgcHTTPRESTServer.Create(nil);
Stats := TsgcHTTPServerStats.Create(nil);
Stats.Endpoints.Health.Enabled := True;
RESTServer.Port := 8080;
RESTServer.CORSOptions.Enabled := True;
RESTServer.CORSOptions.AllowOrigins := 'https://app.example.com';
RESTServer.ServerStats := Stats;
RESTServer.OnCommandGet := RESTServerCommandGet;
RESTServer.Active := True;
end;
procedure TForm1.RESTServerCommandGet(AContext: TIdContext;
ARequestInfo: TIdHTTPRequestInfo; AResponseInfo: TIdHTTPResponseInfo);
begin
AResponseInfo.ContentText := '{"status":"ok"}';
end;
uses
sgcWebSocket_Server_API_OpenAPI, sgcHTTP_Server;
var
OpenAPIServer: TsgcWSAPIServer_OpenAPI;
begin
OpenAPIServer := TsgcWSAPIServer_OpenAPI.Create(nil);
OpenAPIServer.Server := sgcHTTPServer1;
OpenAPIServer.LoadFromFile('petstore.json');
OpenAPIServer.OnRequest := OpenAPIServerRequest;
sgcHTTPServer1.Port := 8080;
sgcHTTPServer1.Active := True;
end;
procedure TForm1.OpenAPIServerRequest(Sender: TObject;
const aOperationId: string; const aContext: TsgcOpenAPIServerContext;
var Handled: Boolean);
begin
if aOperationId = 'getPetById' then
begin
aContext.RespondJSON(200,
'{"id":"' + aContext.PathParamAsString('petId') + '","name":"Rex"}');
Handled := True;
end;
end;
uses
sgcHTTP_OpenAPI_Client;
var
APIClient: TsgcOpenAPI_Client;
Request: TsgcOpenAPIRequest;
Response: TsgcOpenAPIResponse;
begin
APIClient := TsgcOpenAPI_Client.Create(nil);
APIClient.SetBaseURL('https://api.example.com');
APIClient.Authentication.Basic.Enabled := True;
APIClient.Authentication.Basic.Username := 'apiuser';
APIClient.Authentication.Basic.Password := '...';
Request := TsgcOpenAPIRequest.Create;
Response := TsgcOpenAPIResponse.Create;
APIClient.HTTP_REQUEST(Request, Response);
end;