Amazon AWS, más de 280 servicios
SDK de servicios REST que cubren S3, EC2, Lambda, DynamoDB, SQS, SNS, CloudFormation y más. Añade la unidad al proyecto y llama al servicio con clases tipadas de petición y respuesta.
Ver los SDK de AWS →Apunta sgcOpenAPI a un documento OpenAPI 3.x. El analizador lo lee, el generador emite un SDK nativo en Object Pascal y el componente de servidor OpenAPI vuelve a publicar tus propios endpoints como una especificación viva.
Entra una especificación, sale Pascal, y hay un servidor en cualquiera de los dos extremos. Con narración y subtítulos. No se descarga nada hasta que pulsas reproducir.
Convierte una especificación en código Delphi y convierte código Delphi en un servidor en marcha.
No tienes que generar nada para empezar. Las cuatro plataformas de nube más grandes se incluyen en sgcOpenAPI como SDK Pascal listos para usar, generados a partir de las especificaciones oficiales y mantenidos al día.
SDK de servicios REST que cubren S3, EC2, Lambda, DynamoDB, SQS, SNS, CloudFormation y más. Añade la unidad al proyecto y llama al servicio con clases tipadas de petición y respuesta.
Ver los SDK de AWS →El conjunto más grande de la biblioteca. Máquinas virtuales de Azure, Blob Storage, Functions, Cosmos DB, Key Vault y el resto del plano de control de Azure, cada uno como un cliente Pascal generado.
Ver los SDK de Azure →Compute Engine, Cloud Storage, BigQuery, Pub/Sub, Cloud Functions y más.
Ver los SDK de Google →Office 365, Microsoft Teams, OneDrive, Outlook y Active Directory, a través de la API Graph.
Ver los SDK de Microsoft →Si la API publica un documento OpenAPI o Swagger, el generador lo convierte en el mismo tipo de unidad Pascal tipada. No hay lista de APIs permitidas.
Características del generador →Single, Team y Site incluyen el analizador, el generador de código, el componente de servidor OpenAPI y toda la biblioteca de SDK preconstruidos. No se vende nada por separado.
Todos los SDK preconstruidos →Guías prácticas, desde una especificación pública hasta un cliente Delphi que compila
Cinco pasos, todos dentro del IDE. Sin Node.js, sin generador de código en Java, sin motor de plantillas que aprender.
# one input, one output, and you have a unit
> sgcOpenAPI.exe -i "api.github.com.json" -o "github.pas" -a 2
File successfully created github.pas
# -a 2 wires up token auth -u sets the base url
# -x drops operations -p prunes the classes they used
# -s emits a server stub instead of a client
# exit 0 ok, 5 bad input, 6 bad output, 7 not convertible
uses
github; // the unit you just generated
procedure TForm1.btnReposClick(Sender: TObject);
var
oResponse: TsgcOpenAPI_reposlistforauthenticateduser_Response;
oRepo: TsgcOpenAPI_repository_Class;
begin
GetOpenAPIClient.Authentication.Token.BearerToken := 'ghp_...';
oResponse := GetOpenAPIClient.reposlistforauthenticateduser(
'private', 'owner', 'all', 'full_name', '', 100, 1);
try
if oResponse.IsSuccessful then
for oRepo in oResponse.Successful.Items do
Memo1.Lines.Add(oRepo.Full_name)
else
Memo1.Lines.Add(IntToStr(oResponse.ResponseCode) + ' ' +
oResponse.ResponseError);
finally
oResponse.Free;
end;
end;
uses
sgcHTTP_Server, sgcHTTP_OpenAPI_Server, sgcWebSocket_Server_API_OpenAPI;
procedure TForm1.btnStartClick(Sender: TObject);
begin
FServer := TsgcHTTPServer.Create(Self);
FServer.Port := 8080;
FOpenAPI := TsgcWSAPIServer_OpenAPI.Create(Self);
FOpenAPI.OpenAPIOptions.Endpoint.ServeSpec := True;
FOpenAPI.OpenAPIOptions.Endpoint.ServeSwaggerUI := True;
FOpenAPI.OpenAPIOptions.Validation.ValidateRequest := True;
FOpenAPI.LoadFromFile('petstore.json');
FOpenAPI.OnRequest := OnOpenAPIRequest;
FOpenAPI.Server := FServer;
FServer.Active := True;
end;
// one event, dispatched by operation id
procedure TForm1.OnOpenAPIRequest(Sender: TObject;
const aOperationId: string;
const aContext: TsgcOpenAPIServerContext;
var Handled: Boolean);
begin
Handled := True;
if aOperationId = 'getPetById' then
aContext.RespondJSON(200,
FPets.Values[aContext.PathParamAsString('petId')])
else
Handled := False;
end;
-i a un fichero local o a una URL, en JSON o YAML. Ambos se leen en local, y un documento Swagger 2.0 también se convierte a OpenAPI 3 en local.TsgcOpenAPI lee el documento en Paths, Components, Security, Servers, Tags y Info, y deja constancia en Warnings de todo lo que no ha podido respetar. Los $ref externos se incorporan de antemano con TsgcOpenAPI_Bundle.TsgcOpenAPI_Parser_Client_Pascal desciende de ese lector y escribe una unidad Pascal: un método por operación, una clase de respuesta por método y una clase por cada esquema, con las descripciones del documento como comentarios.Source de sgcOpenAPI, de Delphi 7 a RAD Studio 13. Las respuestas tipadas requieren XE7 o posterior.GetOpenAPIClient, establece las credenciales en Authentication, y llama a la operación. La URL base ya viene incorporada desde la entrada servers del documento.El generador desciende del lector, así que también puedes crear TsgcOpenAPI tú mismo, recorrer el modelo analizado y construir tus propias herramientas sobre él. El componente analizador →
TsgcWSAPIServer_OpenAPI se acopla a un TsgcHTTPServer, enruta las peticiones entrantes según el documento cargado, las valida antes de que se ejecute tu manejador y sirve el documento y una Swagger UI desde el mismo puerto.

GET /pets/{petId} llega a tu manejador OnRequest con aOperationId igual a getPetById. GET /openapi.json devuelve el documento que cargaste y GET /docs abre Swagger UI, ambos activados con Endpoint.ServeSpec y Endpoint.ServeSwaggerUI. Endpoint.BasePath mueve el par bajo un prefijo.

Carga un contrato JSON con LoadFromFile y despacha según el id de operación, o anota una clase Pascal con sgcServiceContract, sgcHttpGet, sgcRoute y sgcFromBody y deja que TsgcOpenAPICodeFirstScanner construya el documento. Code-First requiere Delphi XE7 o posterior. Ambas demos se incluyen en Demos\30.Server\.

Validation.ValidateRequest, ValidateRequired y ValidateRequestBody comprueban la petición entrante contra el documento antes de que se ejecute tu manejador. OnValidationError te entrega el id de operación y la lista de fallos, y un indicador Continue que decide si se rechaza la petición.

Las entradas securityScheme del documento activan OnValidateAPIKey, OnValidateBasic y OnValidateBearer. Tú escribes la búsqueda de credenciales, el componente analiza la petición y responde con el estado correcto cuando la búsqueda dice que no.
El servidor se ejecuta sobre el mismo servidor HTTP de sgcWebSockets que aloja tus endpoints WebSocket y tus ficheros estáticos. Un puerto, un certificado TLS, un flujo de registro. El componente de servidor OpenAPI →
Un único producto para Delphi y C++ Builder: un analizador de OpenAPI 3.x, un generador de SDK Pascal nativo, un componente de servidor OpenAPI y más de 1.195 SDK de nube preconstruidos. Código fuente completo y distribución libre de royalties. Elige según el tamaño del equipo.
Un desarrollador. Analizador, generador, componente de servidor y todos los SDK preconstruidos.
Dos desarrolladores. El mismo producto completo que Single.
Desarrolladores ilimitados. El mismo producto completo que Single.
sgcOpenAPI se licencia por separado. El analizador, el generador de código, el componente de servidor y los más de 1.195 SDK preconstruidos se incluyen en todos los niveles.
Compara niveles y preciosLa confianza de desarrolladores de Delphi, C++ Builder, Lazarus y .NET en todo el mundo.
Vuestra librería sgcWebSockets es muy útil y fácil de configurar. ¡Seguid así!
sgcWebSockets es increíble y vuestro soporte es el mejor.
Muchas gracias por vuestra ayuda y soporte, me encantan vuestros componentes.
Analizador, generador de código, componente de servidor OpenAPI y los más de 1.195 SDK de nube preconstruidos, con una sola licencia. Código fuente completo, distribución libre de royalties, de Delphi 7 a RAD Studio 13.
Primeros pasosCaracterísticasAnalizadorServidorSDK preconstruidosComparativa
sgcOpenAPI es una de las bibliotecas de componentes de eSeGeCe para Delphi, C++ Builder y .NET. Comparten convenciones, incluyen el código fuente completo y se distribuyen libres de royalties.
WebSocket, HTTP/2, MQTT, AMQP, WebRTC, IA y más de 30 integraciones de API. El servidor HTTP sobre el que se ejecuta el componente de servidor OpenAPI.
Componentes de servidor REST, servidor OpenAPI y cliente OpenAPI para Delphi y C++ Builder. Publica APIs REST a partir de un contrato OpenAPI 3.x o consume cualquier API descrita con OpenAPI. Independiente, con el runtime de sgcWebSockets Core incluido.
Componentes HTML y de interfaz de usuario en el servidor sobre Bootstrap 5 y htmx. Crea la interfaz de administración o el panel para los clientes REST que generes, sin un front end en JavaScript.
Transporte QUIC en bruto y un cliente y servidor HTTP/3, con WebTransport. Expón los clientes REST que generes sobre un transporte QUIC/HTTP-3 para reducir la latencia de conexión.
XAdES, PAdES, CAdES y ASiC para documentos; Authenticode, ClickOnce, NuGet y VSIX para código. Firma los cuerpos de petición y respuesta que intercambia tu API.
Crea, edita, visualiza, firma, redacta y valida ficheros PDF en Object Pascal puro, sin DLL que distribuir. Se licencia por separado.
Componentes Indy TCP/IP actualizados con TLS moderno, IPv6 y HTTP/2 para Delphi 7 a 13. La capa de transporte bajo los clientes generados.
Paquetes, complementos y más