TsgcWebSocketHTTPServer › Eventos › OnCommandOther
Disparado quando o servidor HTTP recebe um método diferente de GET, POST ou HEAD (PUT, DELETE, OPTIONS, PATCH...).
property OnCommandOther: TIdHTTPCommandEvent;
// TIdHTTPCommandEvent = procedure(AContext: TIdContext; ARequestInfo: TIdHTTPRequestInfo; AResponseInfo: TIdHTTPResponseInfo) of object
—
OnCommandOther é gerado para métodos HTTP que não sejam GET, POST ou HEAD (PUT, DELETE, OPTIONS, PATCH, TRACE...). Inspecione ARequestInfo.Command para descobrir qual verbo foi utilizado e ARequestInfo.Document para a URI de destino; preencha AResponseInfo.ContentText/ContentStream, ContentType e ResponseNo, assim como em OnCommandGet. Tratar este evento é a forma usual de implementar endpoints REST que aceitam verbos além de GET/POST; utilize-o junto com OnBeforeCommand quando a requisição também precisar de triagem de autorização.
procedure OnCommandOther(AContext: TIdContext; ARequestInfo: TIdHTTPRequestInfo;
AResponseInfo: TIdHTTPResponseInfo);
begin
if SameText(ARequestInfo.Command, 'OPTIONS') then
begin
AResponseInfo.CustomHeaders.Add('Access-Control-Allow-Methods: GET, POST, PUT, DELETE');
AResponseInfo.ResponseNo := 204;
end;
end;