Einzelnen Beitrag anzeigen

Benutzerbild von Codehunter
Codehunter

Registriert seit: 3. Jun 2003
Ort: Thüringen
2.272 Beiträge
 
Delphi 10.4 Sydney
 
#16

AW: Basiert TRESTClient WIRKLICH auf Indy?

  Alt 29. Okt 2018, 19:42
Ich persönlich mache um den REST-Client einen großen Bogen und erstelle mir einen Client für eine REST-API nach folgendem Schema.

Den internen Http-Client kann man auch noch abstrahieren und per Injection hineingeben. Dann wird es komplett testbar und ist offen für jede Http-Library die morgen dann der Hype ist.
Ich finde es immer wieder interessant, wie viele Wege es gibt um ein Problem anzugehen Prinzipiell mache ich genau das selbe. Nur dass ich zwei Ebenen tiefer ansetze und eine Klassenstruktur gebaut habe, die sowohl mit XML als auch JSON und einem proprietären Format umgehen und die einzelnen Nodes über einen simplen XPath ansprechen kann. So habe ich dann auf der Anwendungsebene eine einheitliche Schnittstelle, egal ob der Server nun REST oder SOAP spricht. Die Kommunikationsebene könnte ich eigentlich auch beliebig austauschen.

Ich habe es jedoch auch mit Bestandscode zu tun, der über eine lange Zeit gewachsen ist und entsprechend bunt ist das Angebot an verwendeten Schnittstellenkomponenten. Und in dem Fall hat mich und die Kollegen diese TRESTClient-Komponente viel Zeit gekostet, weil sie keine Exceptions auf HTTP-Protokollebene wirft und der Server in dem beschriebenen Szenario mehr oder weniger kommentarlos die Verbindung verworfen hat (bei Indy das bekannte Connection closed gracefully). Und wieso Emba hier bei Windows < 10 nur die älteren Transportverschlüsselungen aktiviert obwohl die neueren verfügbar sind, das muss mir auch noch jemand erklären.
Ich mache grundsätzlich keine Screenshots. Schießen auf Bildschirme gibt nämlich hässliche Pixelfehler und schadet der Gesundheit vom Kollegen gegenüber. I und E zu vertauschen hätte den selben negativen Effekt, würde aber eher dem Betriebsklima schaden
  Mit Zitat antworten Zitat