Auch ...
Du willst doch etwas
konkretes frmHddCrawler.Analyze
erledigen und übergibst dafür
irgendwas TJSONObject
.
Delphi-Quellcode:
ICrawlHdd = interface
function Analyze( request : THddCrawlerRequest ) : THddCrawlerResponse;
end;
function TServerMethods1.updateHddCrawler(Key: string; aJSONObject: TJSONObject): TJSONObject;
var
request: THddCrawlerRequest;
response: THddCrawlerResponse;
error : TErrorResponse;
begin
// Prüfung ob die Daten im Json zum Aufruf passen
request := TJson.JsonToObject<THddCrawlerRequest>( aJSONObject );
try
if KeyValidation(Key) then
begin
// Dienst fragen
response := HddCrawlerService.Analyze( request );
try
// Ergebnis in Json umwandeln
Result := TJson.ObjectToJsonObject( response );
finally
response.Free;
end;
end
else
begin
error := TErrorResponse.Create( 'invalid key' );
try
Result := TJson.ObjectToJsonObject( error );
finally
error.Free;
end;
end;
finally
request.Free;
end;
end;
Wer jetzt den
ICrawlHdd
genau ausführt, kann dir egal sein. Und ob die Daten irgenwann mal per JSON gekommen sind, ist dem Service jetzt auch egal. Der brauchst also kein JSON mehr zu kennen.
Als Service kannst du auch eine Form verwenden:
Delphi-Quellcode:
THddCrawlerForm = class( TForm, ICrawlHdd )
private { ICrawlHdd }
function Analyze( request: THddCrawlerRequest ): THddCrawlerResponse;
end;
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ea 0a 4c 14 0d b6 3a a4 c1 c5 b9
dc 90 9d f0 e9 de 13 da 60)