sgcHTTP matriz de recursos

Tudo o que o sgcHTTP faz, mapeado no servidor HTTP, no cliente HTTP/2, no cliente gRPC e nos três clientes Google Cloud. Todo recurso funciona igual no Delphi e no C++ Builder, e toda licença entrega o código-fonte completo. As subpáginas de componente ainda não foram publicadas para este lançamento, cada item abaixo é autocontido nesta página.

Servidor HTTP

Endpoints, arquivos estáticos, sessões, TLS

Cliente HTTP/2

Streams multiplexados, HPACK, ALPN

Cliente gRPC

RPC unário & em streaming

Google Cloud

Pub/Sub, Calendar & FCM

Especificações & plataformas

Delphi 7 a 13, C++ Builder

O sgcHTTP é autossuficiente. Ele já vem com o runtime sgcWebSockets Core embutido, então não é um complemento. O servidor HTTP, TsgcHTTPServer, faz parte desse runtime.

HTTP/2 e gRPC precisam do sgcCustomIndy. As duas classes exigem ALPN para a negociação de protocolo TLS, o que a biblioteca Indy padrão não suporta, então são construídas sobre o sgcCustomIndy em vez disso. Ele sempre está incluído no seu pedido, e o preço do sgcHTTP exibido já o cobre. Os três clientes Google Cloud são HTTPS puro e não precisam dele.

Seis classes, duas units

Três componentes na página de paleta SGC HTTP e três classes apenas de código do Google Cloud. O servidor HTTP é declarado na unit sgcHTTP_Server do runtime Core incluído, e todo o resto na unit sgcHTTP.

ComponenteClasseNa paleta?Descrição
Servidor HTTPTsgcHTTPServerSimServidor HTTP: eventos de requisição, arquivos estáticos a partir de uma pasta raiz de documentos, compressão, keep-alive, sessões, uploads, TLS e autenticação. Vem com o runtime Core.
Cliente HTTP/2TsgcHTTP2ClientSimCliente HTTP/2 nativo: streams multiplexados, compressão de cabeçalhos HPACK, negociação ALPN. Precisa do sgcCustomIndy.
Cliente gRPCTsgcGRPCClientSimCliente gRPC construído sobre o cliente HTTP/2: RPC unário, server-streaming, client-streaming e bidirecional. Precisa do sgcCustomIndy.
Google Cloud Pub/SubTsgcHTTPGoogleCloud_PubSub_ClientNão, apenas códigoAPI REST do Google Cloud Pub/Sub: tópicos, assinaturas, snapshots, publicação e leitura. HTTPS puro sobre o Core.
Google Cloud CalendarTsgcHTTPGoogleCloud_Calendar_ClientNão, apenas códigoGoogle Calendar API v3: calendários e eventos, criar, atualizar, listar, excluir. HTTPS puro sobre o Core.
Google Cloud FCMTsgcHTTPGoogleCloud_FCM_ClientNão, apenas códigoAPI HTTP v1 do Firebase Cloud Messaging: envie um payload de notificação push com uma única chamada. HTTPS puro sobre o Core.

Endpoints, arquivos estáticos, sessões

TsgcHTTPServer publica endpoints HTTP e arquivos estáticos a partir da sua própria aplicação. É o mesmo motor do servidor WebSocket do sgcWebSockets, sem a parte de WebSocket, e vem com o runtime Core incluído.

RecursoAPIObservações
EscutaPort, Bindings, ActiveDefina a porta, ou vincule a endereços específicos, e depois ative o servidor.
RequisiçõesOnCommandGet, OnCommandOtherToda requisição chega ao seu código com os objetos de requisição e de resposta. OnCommandOther cobre verbos como PUT e DELETE.
Arquivos estáticosDocumentRootDevolve arquivos estáticos da pasta para a qual você o apontar.
CompressãoHTTPCompressionOpções de compressão das respostas.
ConexõesKeepAlive, MaxConnectionsMantém as conexões abertas entre requisições e limita quantas ficam abertas ao mesmo tempo.
SessõesSessionState, AutoStartSession, SessionTimeOut, OnSessionStart, OnSessionEndSessões no servidor com tempo limite, além de eventos de início e fim.
Limites de requisiçãoMaxRequestBodySizeLimita o tamanho do corpo de uma requisição.
UploadsHTTPUploadFilesSalva os arquivos enviados em um diretório que você escolher.
TLSSSL, SSLOptionsAtenda HTTPS com o seu próprio certificado.
AutenticaçãoAuthentication, OnAuthenticationValide as credenciais no seu próprio código antes de atender uma requisição.
ThreadsThreadPool, ThreadPoolOptionsReutiliza threads de trabalho de um pool em vez de criar uma por conexão.
RuntimesgcWebSockets CoreDeclarado na unit sgcHTTP_Server do runtime Core incluído, na página de paleta SGC HTTP.

Requisições multiplexadas, HPACK, ALPN

TsgcHTTP2Client fala HTTP/2 (RFC 9113) sobre uma única conexão TLS, negociada com ALPN, razão pela qual é construído sobre o sgcCustomIndy.

RecursoAPIObservações
ConexãoHost, Port, ActiveUma conexão TLS carrega todo stream de requisição multiplexado.
ConnectConnect, ConnectAsyncAbre a conexão e emite uma requisição opcional na mesma chamada.
LeituraGet, GetAsyncChamada síncrona ou dispare-e-esqueça com a resposta entregue por evento.
EscritaPost, PostAsync, Put, PutAsync, Patch, PatchAsyncOs corpos de requisição são streams, então uploads não precisam caber na memória.
Delete & OptionsDelete, DeleteAsync, Options, OptionsAsyncO restante do conjunto de verbos HTTP, com o mesmo pareamento síncrono/assíncrono.
RespostasOnHTTP2ResponseEntrega os objetos de requisição e resposta juntos, incluindo Response.DataString e o status.
Corpos em chunksOnHTTP2ResponseFragmentDispara a cada fragmento de uma resposta em chunks que chega, antes do OnHTTP2Response final.
Server pushOnHTTP2PushPromiseExpõe recursos enviados por server push do HTTP/2 conforme chegam.
Ciclo de vida da conexãoOnHTTP2Connect, OnHTTP2Disconnect, OnHTTP2GoAway, OnHTTP2RSTStreamOs sinais de conexão, desconexão e reset de stream definidos pelo HTTP/2.
SettingsHTTP2Options, SettingsOs valores do frame local HTTP/2 SETTINGS enviados ao peer.
ConfiabilidadeWatchDog, HeartBeat, ThrottleReconexão automática, keep-alive e limitação de requisições, compartilhados com o restante da pilha HTTP do sgc.
Auth & TLSAuthentication, TLSOptions, OnHTTP2AuthorizationEsquemas de autenticação padrão e configuração de TLS, mais um gancho para cabeçalhos de autorização personalizados.
DependênciasgcCustomIndyO ALPN negocia o protocolo h2 durante o handshake TLS; a biblioteca Indy padrão não consegue fazer isso.

Streaming unário, server, client e bidirecional

TsgcGRPCClient carrega payloads Protocol Buffers sobre os streams multiplexados do cliente HTTP/2, então cobre as quatro formas de chamada do gRPC.

RecursoAPIObservações
TransporteClientUma instância de TsgcHTTP2Client; o cliente gRPC roda sobre ela em vez de abrir a sua própria conexão.
RPC unárioCall, CallAsync, CallStringUma requisição, uma resposta. Call bloqueia e retorna um TsgcGRPCResponse; CallAsync a entrega através de OnGRPCResponse.
Server streamingServerStreamingCallUma requisição, um stream de respostas entregue através de OnGRPCStreamMessage até OnGRPCStreamEnd.
Client streamingOpenClientStream, SendStreamMessage, CloseClientStream, CloseClientStreamAsyncUm stream de requisições, uma resposta final quando o stream é fechado.
Streaming bidirecionalOpenBidiStream, SendBidiMessage, CloseBidiStreamOs dois lados fazem streaming de forma independente sobre a mesma chamada.
CancelamentoCancelCallCancela uma chamada em andamento pelo seu id de stream.
RespostasOnGRPCResponse, OnGRPCStreamMessage, OnGRPCStreamEndTsgcGRPCResponse carrega StatusCode, Data/DataString, Headers e Trailers.
ErrosOnGRPCError, OnGRPCExceptionErros de status-code do gRPC e exceções em nível de transporte, entregues separadamente.
MetadadosDefaultMetadata, OnGRPCBeforeRequestCabeçalhos de metadados do gRPC por chamada e padrão.
ResiliênciaRetryPolicy, Interceptors, ServiceConfigComportamento de retry, uma cadeia de interceptors transversal, e configuração de serviço, sem tocar nos pontos de chamada individuais.
ObservabilidadeMetricsCollectorColeta métricas de chamadas do cliente.
DependênciasgcCustomIndyHerdada do cliente HTTP/2 sobre o qual é construído; o ALPN é exigido da mesma forma.

Pub/Sub, Calendar e notificações push

Três classes apenas de código, autenticadas com uma conta de serviço Google e alcançadas sobre HTTPS puro. Nenhuma delas precisa do sgcCustomIndy.

RecursoAPIObservações
AutenticaçãoGoogleCloudOptions.JWT, OnAuthToken, OnAuthTokenErrorJWT de conta de serviço: id de projeto, e-mail de cliente e chave privada. Forma compartilhada pelos três clientes.
Pub/Sub: publicar & lerPublish, Pull, Acknowledge, SeekTsgcHTTPGoogleCloud_PubSub_Client. Envie mensagens para um tópico, leia e confirme de uma assinatura.
Pub/Sub: tópicosCreateTopic, DeleteTopic, GetTopic, ListTopicsGerencie tópicos diretamente pelo código.
Pub/Sub: assinaturasCreateSubscription, DeleteSubscripton, ListSubscriptions, ModifyAckDeadlineSubscriptionCiclo de vida completo de assinaturas, incluindo alterações de prazo de confirmação e configuração de push.
Pub/Sub: snapshotsCreateSnapshot, DeleteSnapshot, ListSnapshotsTire um snapshot do estado de confirmação de uma assinatura para reprodução posterior.
Calendar: calendáriosNewCalendar, UpdateCalendar, DeleteCalendar, LoadCalendarsTsgcHTTPGoogleCloud_Calendar_Client. Encapsula a lista de calendários da Google Calendar API v3.
Calendar: eventosNewEvent, UpdateEvent, DeleteEvent, LoadEventsCrie, altere e remova eventos em um determinado calendário.
Calendar: sincronizaçãoLoadCalendarsChanged, LoadEventsChanged, OnGetCalendar, OnGetCalendarEventGanchos de sincronização incremental para calendários e eventos alterados desde a última sincronização.
FCM: pushSendMessageTsgcHTTPGoogleCloud_FCM_Client. Uma chamada envia um payload v1 do Firebase Cloud Messaging para um projeto.
TLS e logTLSOptions, LogFileCompartilhado pelos três clientes Google Cloud.

APIs, compiladores e destinos

Especificações públicas no wire, e o mesmo código-fonte em todo compilador compatível.

ÁreaDetalhe
Servidor HTTPRequisições e respostas HTTP, arquivos estáticos, sessões e HTTPS por meio do TsgcHTTPServer.
HTTP/2RFC 9113, com compressão de cabeçalhos HPACK e negociação de protocolo ALPN.
gRPCPayloads Protocol Buffers sobre streams HTTP/2, seguindo o protocolo de wire do gRPC.
Google CloudA API REST do Pub/Sub, a Google Calendar API v3, e a API HTTP v1 do Firebase Cloud Messaging, todas autenticadas com uma conta de serviço Google.
PlataformasWindows Win32, Windows Win64, Linux64, macOS, iOS e Android para as cinco classes.
DependênciaOs clientes HTTP/2 e gRPC precisam do sgcCustomIndy para o ALPN. Os clientes Google Cloud precisam apenas do runtime Core embutido.
CompiladoresDelphi e C++ Builder 7 até 13.
EdiçõesO HTTP/2 e o gRPC também vêm dentro do sgcWebSockets a partir da Enterprise, e os clientes Google Cloud a partir da Standard. O servidor HTTP faz parte do runtime Core, então toda edição do sgcWebSockets também o inclui.
LicenciamentoAutônomo. O runtime sgcWebSockets Core vem embutido e o código-fonte completo está incluído.
Melhor custo-benefício: All-AccessTodos os produtos da eSeGeCe, com Suporte Premium incluído, a partir de €1,059/ano.
Ver preços do All-Access

Construa com o sgcHTTP

Baixe a avaliação gratuita, publique o seu primeiro endpoint HTTP e faça a sua primeira chamada HTTP/2 ou gRPC a partir do Delphi ou do C++ Builder.