Classe TDmxScroller_Form_Rest_Client
Unit
mi.web.dmxscroller.form.rest.client
Declaração
type TDmxScroller_Form_Rest_Client = class(TDmxScroller_Form)
Descrição
A class TDmxScroller_Form_Rest_Client
é uma extensão da classe TDmxScroller_Form
, projetada para integrar operações de requisições HTTP em um formulário usando um cliente REST (TMi_FpHttpClient
). Esta classe facilita a manipulação de registros remotos por meio de uma API REST, permitindo operações CRUD e navegação entre os registros de forma eficiente.
Hierarquia
- TDmxScroller_Form
- TDmxScroller_Form_Rest_Client
Visão Geral
Métodos
 |
constructor Create(aOwner:TComponent); Override; |
 |
Destructor Destroy; Override; |
 |
Procedure DoOnNewRecord; reintroduce; |
 |
Function AddRec:Boolean; Override; |
 |
function Locate(const KeyFields: string; const KeyValues: Variant; Options: TLocateOptions) : boolean; override; overload; |
 |
Function PutRec:Boolean; Override; |
 |
Function DeleteRec:Boolean; Override; |
 |
Function FirstRec: Boolean; overload; Override; |
 |
Function NextRec: Boolean; overload; Override; |
 |
Function PrevRec: Boolean; overload; Override; |
 |
Function LastRec: Boolean; overload; Override; |
 |
function EventRequest_pDmxFieldRec(aComando: TEn_OnEvent_DmxFieldRec): Boolean; |
 |
procedure DoOnEnterField(aField: pDmxFieldRec); |
 |
procedure DoOnExitField(aField: pDmxFieldRec); |
Propriedades
 |
property Mi_FpHttpClient: TMi_FpHttpClient Read _Mi_FpHttpClient write _Mi_FpHttpClient; |
Descrição
Métodos
 |
constructor Create(aOwner:TComponent); Override; |
|
 |
Destructor Destroy; Override; |
|
 |
Procedure DoOnNewRecord; reintroduce; |
O método DoOnNewRecord é responsável por criar um novo registro através de uma requisição HTTP GET, utilizando o cliente Mi_FpHttpClient . Caso a requisição seja bem-sucedida, o novo registro é processado e atribuído ao formulário para edição.
Fluxo de Execução
Envia uma requisição HTTP do tipo GET com o comando CmNewRecord .
Se a resposta for recebida (Response for atribuído), chama o método herdado DoOnNewRecord e armazena a resposta em JSONObject .
Libera a memória de Response no final, se alocado.
Parâmetros Locais
Response: TJSONObject : -Objeto JSON que contém a resposta da requisição HTTP.
Exceções
Ver Também
Exemplo de uso
var
RestClient: TDmxScroller_Form_Rest_Client;
begin
RestClient := TDmxScroller_Form_Rest_Client.Create(nil);
try
RestClient.DoOnNewRecord;
if Assigned(RestClient.JSONObject) then
ShowMessage('Novo registro criado com sucesso.');
finally
RestClient.Free;
end;
end;
|
 |
Function AddRec:Boolean; Override; |
O método AddRec adiciona o buffer DataSource.dataSet no arquivo.
Descrição
O método AddRec tem a função de adicionar um novo registro à base de dados remota, utilizando a funcionalidade REST do cliente HTTP. Se um registro estiver selecionado e o estado for de adição (Appending ), ele envia os dados do registro para o servidor via requisição HTTP POST. Após a confirmação da resposta, o método atualiza a chave primária do registro e realiza uma busca pelo novo registro, utilizando as chaves atualizadas.
Parâmetros Locais
Params: TJSONObject
KeyFields: string
KeyValues: Variant
Response: TJSONObject
Fluxo de Execução
Verifica se há um registro selecionado com RecordSelected .
Caso o registro esteja sendo adicionado (Appending ), realiza a adição chamando Inherited AddRec .
Envia a requisição HTTP POST para o servidor com a ação CmUpdateRecord e os dados do registro.
Se a resposta tiver um código diferente de 200 ou 201 , o método falha e chama DoOnNewRecord .
Ao finalizar, verifica se houve uma resposta do servidor e processa os campos-chave atualizados, chamando ParseServerResponse .
Caso o registro seja adicionado com sucesso, gera os parâmetros de busca e envia a requisição HTTP GET para localizar o registro recém-adicionado.
O resultado da busca é armazenado em JSONObject e a atualização do registro é concluída com Inherited PutRec .
Exceções
Ver Também
Mi_FpHttpClient.SendRequest : Método utilizado para enviar requisições HTTP.
ParseServerResponse : Método responsável por processar a resposta do servidor e atualizar os campos-chave.
Inherited AddRec : Método herdado responsável por adicionar um registro localmente.
Inherited UpdateRec : Método herdado responsável por atualizar um registro localmente.
|
 |
function Locate(const KeyFields: string; const KeyValues: Variant; Options: TLocateOptions) : boolean; override; overload; |
O método Locate Localiza o registro no servidor e adicone no BufDataSet local caso exista.
Descrição
Parâmetros
Retorno
Exceções
Detalhes de Implementação
Converte os parâmetros KeyFields , KeyValues e Options para um JSON utilizando o método LocateParamsToJson .
Envia uma requisição HTTP do tipo GET para localizar o registro correspondente, utilizando o endpoint 'Cmlocate' .
Se a resposta HTTP contém dados:
O método tenta localizar o registro chamando o método inherited Locate .
Se o registro for localizado, a resposta JSON é atribuída à propriedade JSONObject .
Caso o registro não seja localizado, o método chama inherited DoOnNewRecord e atribui o JSON da resposta ao JSONObject , permitindo a criação de um novo registro.
Atualiza o registro chamando inherited UpdateRec .
Libera os objetos Params e Response para evitar vazamento de memória.
Exemplo de Uso
procedure teste;
var
Found: boolean;
begin
Found := MyDmxScrollerFormRestClient.Locate('ID', 123, []);
if Found
then ShowMessage('Registro localizado com sucesso!')
else ShowMessage('Registro não encontrado.');
end;
|
 |
Function PutRec:Boolean; Override; |
O método PutRec tem a função de atualizar um registro existente na base de dados remota usando uma requisição HTTP PUT. Caso o registro esteja selecionado, ele utiliza as chaves do registro para localizar e atualizar o registro no servidor. Se as chaves não estiverem disponíveis, o processo de atualização é interrompido e uma exceção é lançada.
Parâmetros Locais
Response: TJSONObject
Params: TJSONObject
wJSONObject: TJSONObject
KeyFields: string
KeyValues: Variant
Fluxo de Execução
Verifica se um registro foi selecionado com RecordSelected .
Se o registro estiver selecionado, chama Inherited PutRec para realizar a atualização local.
Obtém os campos-chave do registro através do método getFieldsKeys .
Se as chaves estiverem presentes, monta os parâmetros de localização com LocateParamsToJson e envia uma requisição HTTP PUT com a ação CmUpdateRecord .
Verifica o código de status da resposta. Se não for 200 , restaura o valor original de JSONObject e interrompe a operação.
Se não houver campos-chave, uma exceção é lançada informando que não é possível atualizar o registro no servidor sem chaves de pesquisa.
Caso nenhum registro tenha sido selecionado, lança uma exceção informando que o registro não foi selecionado.
Exceções
Ver Também
Mi_FpHttpClient.SendRequest : Método utilizado para enviar requisições HTTP.
LocateParamsToJson : Método responsável por criar os parâmetros de localização do registro.
Inherited PutRec : Método herdado responsável por atualizar o registro localmente.
|
 |
Function DeleteRec:Boolean; Override; |
O método DeleteRec tem como objetivo excluir um registro da base de dados remota através de uma requisição HTTP. Ele identifica o registro a ser excluído com base em suas chaves primárias, monta os parâmetros da requisição e envia uma operação HTTP DELETE ao servidor. Se não houver um registro selecionado ou se as chaves não estiverem disponíveis, o método gera uma exceção.
Parâmetros Locais
Response: TJSONObject
Params: TJSONObject
KeyFields: string
KeyValues: Variant
Fluxo de Execução
Verifica se existe um registro selecionado usando RecordSelected .
Obtém os campos-chave do registro com o método getFieldsKeys .
Se as chaves forem encontradas, monta os parâmetros da requisição com LocateParamsToJson e envia uma solicitação HTTP PUT com a ação CmDeleteRecord .
Verifica o código de resposta do servidor:
Sucesso se o código for 200 (OK) ou 204 (No Content).
Se o código for diferente, o método define Result como False .
Se não houver campos-chave disponíveis, o método lança uma exceção, impedindo a exclusão do registro no servidor.
Caso nenhum registro tenha sido selecionado, uma exceção é lançada informando que não há registro selecionado para exclusão.
Exceções
Ver Também
Mi_FpHttpClient.SendRequest : Método responsável por enviar a requisição HTTP para excluir o registro.
LocateParamsToJson : Método que cria os parâmetros para localizar o registro no servidor.
getFieldsKeys : Método que obtém os campos-chave de um registro.
|
 |
Function FirstRec: Boolean; overload; Override; |
|
 |
Function NextRec: Boolean; overload; Override; |
|
 |
Function PrevRec: Boolean; overload; Override; |
|
 |
Function LastRec: Boolean; overload; Override; |
|
 |
function EventRequest_pDmxFieldRec(aComando: TEn_OnEvent_DmxFieldRec): Boolean; |
|
 |
procedure DoOnEnterField(aField: pDmxFieldRec); |
|
 |
procedure DoOnExitField(aField: pDmxFieldRec); |
|
Propriedades
 |
property Mi_FpHttpClient: TMi_FpHttpClient Read _Mi_FpHttpClient write _Mi_FpHttpClient; |
A propiedade Mi_FpHttpClient usanda para fazer requisições http ao servidor
|
Gerado por PasDoc 0.16.0.