Einzelnen Beitrag anzeigen

Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#25

AW: RestServer Antwort Json ohne "[" Klammern

  Alt 3. Feb 2016, 14:08
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)

Geändert von Sir Rufo ( 3. Feb 2016 um 14:11 Uhr)
  Mit Zitat antworten Zitat