Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Software-Projekte der Mitglieder (https://www.delphipraxis.net/26-software-projekte-der-mitglieder/)
-   -   HTTP Server Framework für Object Pascal - nun auf GitHub (https://www.delphipraxis.net/166642-http-server-framework-fuer-object-pascal-nun-auf-github.html)

mjustin 23. Feb 2012 07:23


Daraja HTTP Framework für Object Pascal
 
Zur einfachen Erstellung von HTTP Webserveranwendungen zum Beispiel für kleine Web Services kann dieses Server Framework (ab Delphi 2009) und Free Pascal (2.6.0) eingesetzt werden. Es umfasst

* Basisklassen zur Requestverarbeitung: "Web Komponenten" und "Handler"
* eine HTTP Serverumgebung, basierend auf Internet Direct (Indy) 10.6
* Demoanwendungen, Unit Tests, API Dokumentation im HTML Format und eine "Getting Started" Dokumentation

Hello World! Beispiel
Für eine einfache Anwendung, die auf HTTP GET Anforderungen antworten soll, wird eine Klasse von der Basisklasse TdjWebComponent abgeleitet und darin OnGet überschrieben:

Delphi-Quellcode:
type
  THelloPage = class(TdjWebComponent)
  public
    procedure OnGet(Request: TIdHTTPRequestInfo; Response:
      TIdHTTPResponseInfo); override;
  end;

{ THelloPage }

procedure THelloPage.OnGet;
begin
  Response.ContentText := '<html>Hello world!</html>';
end;
Konfiguration
Um von der neuen Klasse nur Anfragen auf die URL http://127.0.0.1/example/hello.html zu beantworten, sind zwei Quelltextzeilen erforderlich:

Delphi-Quellcode:
    Context := TdjWebAppContext.Create('example');
    Context.Add(THelloPage, '/hello.html');
Mit dieser Anweisung wird die Klasse (THelloPage) im Kontext 'example' der absoluten URL /hello.html zugeordnet. Der 'Dateiname', hier hello.html, ist völlig frei wählbar, es gibt also keine zugeordnete hello.html Datei im Dateisystem.

Unter einem Kontext können beliebig viele Registrierungen für Klassen und ihre URI angelegt werden. Einem Server können beliebig viele Kontexte hinzugefügt werden.

Kontextbezogene statische Resourcen
Jeder Kontext hat ein eigenes Verzeichnis für statische Resourcen. Dadurch kann ein Server für jeden Kontext auch unterschiedliche CSS oder JS Dateien bereitstellen.

Projekt:
https://darajaframework.com/

Quelltext auf GitHub:
https://github.com/michaelJustin/daraja-framework

"Getting Started" PDF
https://darajaframework.com/docs/1.0...ingStarted.pdf

API Dokumentation:
https://darajaframework.com/docs/1.0/

mjustin 26. Feb 2012 11:27

AW: Web Component Server Framework für Delphi Webanwendungen
 
Liste der Anhänge anzeigen (Anzahl: 2)
Die erste und noch relativ kleine Demoversion "Kitchen Sink" des Web Component Server Frameworks ist nun erhältlich.
  • Indexseite mit Verzeichnis der vorhandenen Web Component Beispiele
  • Einfaches HTML Formular mit GET, POSTund Redirect (gegen doppeltes Submit)
  • Anzeige des Delphi Quelltextes der Web Component direkt im Browser
  • Vollständiger Quelltext der Web Components ist enthalten
  • Verwendung statischer Resourcen (CSS und JavaScript)

Weitere Informationen und Screenshots im Blog (Englisch):

http://mikejustin.wordpress.com/web-...er-for-delphi/

mschaefer 26. Feb 2012 13:24

AW: Web Component Server Framework für Delphi Webanwendungen
 
werde das Projekt mal weiter verfolgen...

Grüße // Martin

ConstantGardener 26. Feb 2012 21:34

AW: Web Component Server Framework für Delphi Webanwendungen
 
...jupp ich auch

mjustin 6. Mär 2012 17:41

AW: Web Component Framework für Delphi Webanwendungen
 
Eine neue Demoversion ist erschienen. Sie zeigt weitere Features, darunter die Verwendung des integrierten Log4D Logging Frameworks aus einer Web Component heraus.

http://mikejustin.wordpress.com/web-...er-for-delphi/

Da innerhalb des Servers mehrere 'Kontexte' gleichzeitig ausgeführt werden können (zum Beispiel Seiten zum Thema Delphi unter http://localhost/delphi/*.* und andere Seiten unter http://localhost/allesandere/*.*), unterstützt das Framework auch getrennte Logging-Ausgaben.
Delphi-Quellcode:
procedure TLoggingWebComponent.OnGet(Request: TIdHTTPRequestInfo; Response: TIdHTTPResponseInfo);
begin
  // build the HTML response
  Response.ContentText := Bind('logging.html');

  // messages go to logger with the same name as the context path
  Config.GetContext.Log('Message from TLoggingWebComponent.OnGet');
end;
Vom Framework wird je Kontext ein Log4D Logger angelegt, der über die Konfigurationsdatei config\log4d.props getrennt konfiguriert werden kann. Damit läßt sich zum Beispiel eine getrennte Logdatei je Kontext erzeugen.

ConstantGardener 6. Mär 2012 20:19

AW: Web Component Framework für Delphi Webanwendungen
 
...nette Demo. Gibt es denn das Framework selbst/oder Teile schon irgendwo zum probieren?

Welche Lizenz soll das dann haben?

cu cg

mjustin 11. Mär 2012 06:33

AW: Web Component Framework für Delphi Webanwendungen
 
Zitat:

Zitat von ConstantGardener (Beitrag 1154869)
...nette Demo. Gibt es denn das Framework selbst/oder Teile schon irgendwo zum probieren?

Welche Lizenz soll das dann haben?

Danke für das Feeedback! Die erste Version des Web Components Server Frameworks wird im Laufe dieses Monats offiziell erscheinen. Wer schon vorher einen Code-Schnappschuss ausprobieren möchte, kann unter http://www.habarisoft.com/habari_webcomponents.html bereits eine Lizenz erhalten. Die Web Components Single Developer Lizenz gilt für die Verwendung auf beliebig vielen Servern.

Eine andere Möglichkeit, den Code zu erhalten ist die Teilnahme am Beta Test, siehe (folgendes) Posting.

mjustin 11. Mär 2012 06:58

AW: Web Component Framework für Delphi Webanwendungen
 
Liste der Anhänge anzeigen (Anzahl: 1)
Habari Web Components - Update:
  • neue Demo einschliesslich VisualMM Speichermonitoring
  • Unterstützung von Logging pro Kontext
  • neue Web Component für statische Resourcen (TdjDefaultWebComponent)
  • HTTP Session Unterstützung aktivierbar je Kontext (weniger Resourcenverbrauch, weniger Cookies)
  • komplette API Dokumentation erstellt mit doxygen
  • Lizenzen ab sofort erhältlich
  • neue Webseite


Logging pro Kontext
: vor allem zur Diagnose im Echtbetrieb ist es aus Performancegründen vorteilhaft, nur den zu untersuchenden Webanwendungskontext mit "Trace" Level protokollieren zu lassen, und die anderen Webanwendungen unverändert mit dem Default Level ("Info" oder "Warn").



Screenshot

Screenshot der aktuellen Demo:

mjustin 19. Mär 2012 18:47

AW: Web Component Framework für Delphi Webanwendungen
 
Neues Demo

Der Demodownload enthält jetzt drei Serverdemos und ein PDF (Getting Started):

* "Kitchen Sink" Demo
* Datenbank (erfordert InterBase XE Standardinstallation)
* VisualMM (erfordert ActiveMQ Message Broker)

Neu in der Kitchen Sink Demo: eine Ajax-Demo, in der ein Formular einen POST Request sendet, dessen Inhalt vom Server beantwortet und nicht als neue Seite, sondern innerhalb der aktuellen eingebettet wird.

Neues Feature: mehrere Konnektoren (Portmapping)

Ein Server kann jetzt auf mehreren Ports gleichzeitig aktiv sein. Beispiel:

Code:
http://127.0.0.1:8080/public/index.html -> Konnektor A mit Kontext "public" ist auf Port 8080 erreichbar
http://127.0.0.1:7777/admin/index.html -> Konnektor B mit Kontext "admin" ist auf Port 7777 erreichbar
Damit sind zum Beispiel gesicherte Administrationsseiten möglich, die nur auf einem bestimmten Port erreichbar sind. Über Firewalls kann man damit den Zugriff auf diese Seiten blockieren.

mjustin 25. Mär 2012 11:04

AW: Web Component Framework für Delphi Webanwendungen
 
Unterstützung von IPv6, einfachere API

Die Unterstützung von IPv6 ist in der ersten Version des Frameworks enthalten. Es wird anhand der Doppelpunkte im Hoststring die Nutzung des IPv6 Protokolls aktiviert. Ausserdem wurde die API etwas vereinfacht, um einen Kontext und eine Web Component zu registrieren ist jetzt weniger Quelltext nötig. Hier ist das Hello World Beispiel, mit IPv6 Konnektor:

Delphi-Quellcode:
procedure Demo;
var
  Server: TdjServer;
  Context: TdjWebAppContext;

begin
  Server := TdjServer.Create;

  try
    Server.AddConnector('::1');
   
    Context := TdjWebAppContext.Create('web');
 
    Context.Add(THelloPage, '/hello.html');
 
    Server.Add(Context);
   
    Server.Start;
     
    ShellExecute(0, 'open', 'http://[::1]/web/hello.html', '', '', 0);
   
    WriteLn('Hit any key to terminate.');
    ReadLn;

  finally
    Server.Free;

  end;

end;
Die THelloPage Klasse ist wie folgt aufgebaut:

Delphi-Quellcode:
type
  THelloPage = class(TdjWebComponent)
  public
    procedure OnGet(Request: TIdHTTPRequestInfo; Response:
      TIdHTTPResponseInfo); override;
  end;

  { THelloPage }

procedure THelloPage.OnGet(Request: TIdHTTPRequestInfo;
  Response: TIdHTTPResponseInfo);
begin
  Response.ContentText := 'Hello world!';
end;

mjustin 22. Apr 2012 07:54

AW: Web Component Framework für Delphi Webanwendungen
 
RESTful Anwendungen erstellen


Version 1.1 der Habari Web Components enthält nun auch eine Web Component, auf deren Basis RESTful Anwendungen erstellt werden können. Die Konfiguration erfolgt in Delphi Code. Neben anonymen Methoden für die Requesthandler wird eine Syntax ähnlich der von Custom Attributes verwendet, um die Resource-URL und Request/Response Content-Typen zu definieren.

Beispiel:

dieser Konfigurationscode registriert unter der Resource-URL /<context>/hello einen Handler für HTTP GET Requests, der nur verwendet wird wenn der HTTP Request den Content-Typ "text/html" anfordert:

Delphi-Quellcode:
Path('hello');
&Produces('text/html');
GET
(procedure(Request: TRequest; Response: TResponse)
begin
  Response.ContentText := '<html>Hello world!</html>';
end);
Weitere Informationen und Beispiele zu TdjRestfulComponent:

http://www.delphipraxis.net/165882-d...er-delphi.html

http://mikejustin.wordpress.com/dwf/

mjustin 16. Jun 2012 09:09

AW: Web Component Framework für Delphi Webanwendungen
 
Liste der Anhänge anzeigen (Anzahl: 2)
Neu in der kommenden Version 1.5 ist nun die Unterstützung von Free Pascal 2.6.0 im Delphi Kompatibilitätsmodus.

Eine neue, mit Free Pascal 2.6 erstellte Demoanwendung "Kitchen Sink" ist ab sofort erhältlich, auf CodeCentral und auf der Projekthomepage (ca. 900 KB).

Für registrierte Anwender ist die aktuelle Betaversion im Downloadbereich ab der kommenden Woche zum Download abrufbar.

Artikel (englischsprachig) im Free Pascal Forum: ANN: Habari Web Components for Free Pascal (beta), mit Informationen zum aktuellen Einführungsangebot (der Coupon Code gilt natürlich auch für Delphi Anwender).

Das Logging Framework Log4D wird auch von der Free Pascal Version unterstützt.

Die TdjRestFulWebComponent wird von der Free Pascal Version nicht unterstützt, da sie anonymen Funktionen erfordert.

mjustin 11. Jul 2012 19:12

AW: Web Component Framework für Delphi + Free Pascal Webanwendungen
 
Version 1.5 erschienen - mit Free Pascal Unterstützung (Windows)

Die Version 1.5 enthält Unterstützung für Free Pascal 2.6 (Windows Plattform). Der gleiche Quellcode kann damit für die Erstellung von HTTP (Web Server) Anwendungen in beiden Umgebungen verwendet werden. Free Pascal 2.6 ist aufgrund des Einsatzes von Generics erforderlich. Auch wurde der Preis der Single Developer License gesenkt.

mjustin 20. Jul 2012 06:55

AW: Web Component Framework für Delphi + Free Pascal Webanwendungen
 
Version 1.5.1 der Habari Web Components ist erschienen. Wesentliche Änderungen:
  • Workaround für einen Absturz der mit älteren Indy 10.5.8 Versionen (bis r4773) auftritt wenn der gewählte HTTP Port bereits belegt ist

Neu in der "Kitchen Sink" Demo:
  • HTML <form> basierter Dateiupload (mit <form enctype="multipart/form-data" ...>): demonstriert klassischen Dateiupload für eine einzelne Datei und den neuen HTML5 basierten Upload, der mehrere ausgewählte Dateien auf einmal überträgt (HTML5 fähige Browser erforderlich)

mjustin 4. Aug 2012 16:50

AW: Web Component Framework für Delphi + Free Pascal Webanwendungen
 
Liste der Anhänge anzeigen (Anzahl: 1)
Neu in der kommenden Version 2.0 der Habari Web Components:

Mobile Web App Demo

Die 'Flightplan' Demoanwendung zeigt eine für Smartphones gestaltete Anwendung zur Auswahl eines Fluges nach Auswahl des Abflugs- und Zielflughafens. Der angehängte Screenshot zeigt die App in einem normalen Webbrowser. Sie wurde komplett ohne Einsatz von Sessions realisiert, was den Speicherbedarf bei vielen gleichzeitigen Nutzern minimiert.

ReCAPTCHA Demo

Eine funktionsfähinge Implementierung zur Zugriff auf die ReCAPTCHA API ist in Version 2.0 enthalten.

Sonstiges

Verbesserte Unterstützung für Free Pascal

mjustin 10. Aug 2012 13:18

AW: Web Framework für Win + Linux Web Anwendungen
 
Liste der Anhänge anzeigen (Anzahl: 1)
Neu in der kommenden Version 2.0:


Linux Unterstützung (Free Pascal 2.6 / Indy 10.5.9)


Der Screenshot zeigt die Kitchensink Demo auf Ubuntu 12.04.

mjustin 5. Dez 2012 13:13

AW: Indy basiertes Web Framework für Delphi u. Free Pascal
 
Version 2.1 enthält unter anderem diese neuen Funktionen:

* HTTP keep-alive: durch Wiederverwendung der geöffneten Netzwerkverbindungen ist ein höherer Durchsatz (Requests pro Sekunde) möglich, bei 50 Clients über 1400 Requests pro Sekunde - getestet auf einem Mobile Core 2 Duo mit 2.1 GHz, Client und Server auf gleichem System, 50% CPU Last
* WebSocket: experimentelle WebSocket Unterstützung basierend auf Code von André Mussche (asmprofiler)
* API Dokumentation erstellt mit doxygen Version 1.8.2
* Getestet mit Indy 10.5.9 r 4877
* Bootstrap aktualisiert auf 2.2.1

Die Demoversion und die vollständigen Release Notes der Version 2.1 (Englisch) sind auf CodeCentral:

http://cc.embarcadero.com/Item/28784

p.s.: 50 Euro Discount ist noch bis Ende 2012 erhältlich.

Home Page: http://www.habarisoft.com/habari_webcomponents.html

mjustin 18. Dez 2012 18:28

AW: Indy basiertes Web Framework für Delphi u. Free Pascal
 
Liste der Anhänge anzeigen (Anzahl: 1)
Die kommende Version 2.2 der Habari Web Components enthält verbesserte Linux-Unterstützung.

Eine Live Demo der Version 2.2 ist im Internet unter der Adresse

http://www.habariwebcomponents.de:8080/demo/index.html

erreichbar, in dem unter anderem Ajax (jQuery), HTML5 Formulare mit Multidateiupload, und dynamische QRCode Erzeugung gezeigt werden.

Die Live Demo wurde mit Lazarus 1.0.4 / Free Pascal 2.6.0 erstellt und läuft auf Ubuntu 12.04.

RWarnecke 18. Dez 2012 19:39

AW: Indy basiertes Web Framework für Delphi u. Free Pascal
 
Also irgendwie funktioniert die Seite mit einem aktuellen Chrome nicht. Jedesmal kommt, dass die Seite nicht angezeigt werden kann. Egal ob ich auf Show oder auf Source klicke.

mjustin 18. Dez 2012 21:58

AW: Indy basiertes Web Framework für Delphi u. Free Pascal
 
Zitat:

Zitat von RWarnecke (Beitrag 1195958)
Also irgendwie funktioniert die Seite mit einem aktuellen Chrome nicht. Jedesmal kommt, dass die Seite nicht angezeigt werden kann. Egal ob ich auf Show oder auf Source klicke.

Ich habe den Serverprozess neu gestartet, und teste es morgen auch mit Chrome auf Windows (FireFox/Windows und Chrome auf Android funktionierte). Vielen Dank für den Hinweis!

Sir Rufo 19. Dez 2012 10:41

AW: Indy basiertes Web Framework für Delphi u. Free Pascal
 
Zitat:

Zitat von mjustin (Beitrag 1195976)
Zitat:

Zitat von RWarnecke (Beitrag 1195958)
Also irgendwie funktioniert die Seite mit einem aktuellen Chrome nicht. Jedesmal kommt, dass die Seite nicht angezeigt werden kann. Egal ob ich auf Show oder auf Source klicke.

Ich habe den Serverprozess neu gestartet, und teste es morgen auch mit Chrome auf Windows (FireFox/Windows und Chrome auf Android funktionierte). Vielen Dank für den Hinweis!

Irgendwie scheint es jetzt den Server komplett zerlegt zu haben ... :gruebel:

mjustin 19. Dez 2012 14:56

AW: Indy basiertes Web Framework für Delphi u. Free Pascal
 
Zitat:

Zitat von Sir Rufo (Beitrag 1196022)
Irgendwie scheint es jetzt den Server komplett zerlegt zu haben ... :gruebel:

:xmas: ... Ursache war ein ReadLn; bei Ausführung auf der Konsole wird damit gewartet, bis das Programm mit einer beliebigen Taste beendet wird. Sehr wahrscheinlich wurde auf dem Linux Server jetzt (unerwartet) ein Zeichen an die Standardeingabe gesendet, und das Programm damit beendet. Jetzt ist es stabil(er).

mjustin 8. Jan 2013 15:04

AW: Indy basiertes Web Framework für Delphi u. Free Pascal
 
Liste der Anhänge anzeigen (Anzahl: 1)
Die Habari Web Components - Online Demo läuft nun stabil unter Ubuntu Linux 12.04. Herzlichen Dank an Remy Lebeau für die threadsichere Implementierung der iconv Encoding Routinen in Indy 10.5.9!

Die Demoanwendung ist auch für die Windows Plattform als "offline" Webserver erhältlich (erstellt mit Delphi 2009).

Neu hinzugekommen in dieser Demo ist die Möglichkeit, Request Statistiken darzustellen, die von einer Instanz der Klasse TdjStatisticsHandler aufgezeichnet werden. TdjStatisticsHandler basiert auf TdjHandlerWrapper, mit deren Nachfahren das Decorator Entwurfmuster realisiert werden kann.

Direkter Link zur aktuellen Request-Statistik:

http://www.habariwebcomponents.de/demo/stats.html

Das final release 2.2 wird in Kürze erscheinen. (Die Linux Plattform wird darin aber noch nicht "offiziell" unterstützt).

mjustin 16. Jan 2013 19:37

AW: Web Application Framework für Delphi und Free Pascal
 
Liste der Anhänge anzeigen (Anzahl: 1)
Das Habari Web Framework ist nun in Version 2.2 erschienen.

Neu hinzugekommen im Offline Demo Download ist eine Demo für Long Polling. Bei Long Poling handelt es sich um eine Ajax-Technik, in der eine ständige HTTP Verbindung vom Client zum HTTP Server genutzt wird, um die Webseite nahezu verzögerungsfrei - ohne Reload - zu aktualisieren. Die Demo setzt Long Polling ein, um die aktuelle Requeststatistik (Anzahl der verarbeiteten HTTP Requests insgesamt, zusätzlich aufgeschlüsselt nach HTTP Statuscode sowie gestarteten und noch nicht beendeten Requests) laufend anzuzeigen. Datenformat zwischen Server und Client ist JSON. Der Server stellt den aktuellen Status mit einer Verzögerung von einer Sekunde bereitg, dadurch zeigen alle Clients annähernd im Sekundentakt neue Werte an.

Neu ist ferner eine Demo für "Form Based Authentication". Diese hat gegenüber "HTTP Basic Authentication" den Vorteil, dass der Anwender die Session auch gezielt - zum Beispiel durch einen Logout-Button oder Link - schliessen kann, statt den Browser neu starten zu müssen.

Die Online Demo ist nun an dieser Adresse erreichbar:

http://www.habariwebcomponents.de/demo/index.html

mjustin 23. Apr 2013 13:57

AW: Web Application Framework für Delphi und Free Pascal
 
Die Version 2.3 des kleinen HTTP Service Frameworks ist nun erschienen und enthält als neues Feature einen Exception-Stacktrace, der im Log und auch in der Response dargestellt wird (erfordert madExcept). Bei einem auftretenden Fehler in der Webanwendung - genauer gesagt, bei der Ausführung der Service Methode einer WebComponent - wird das Programm nicht beendet. Das Debuggen und Testen wird dadurch erleichtert. Die Fehlermeldung sowie der Stacktrace sind als HTML Response zu sehen.
Neu hinzugekommen ist auch eine Beispielimplementierung des NCSA Log Formats, eines Standardformats für HTTP Server Logdateien, die sich daher auch leicht mit Tools statistisch auswerten lassen. Der Logger ist als HandlerWrapper implementiert, man kann eine bereits bestehende Anwendung um Logging erweitern indem man den Logger einfach in die Handlerchain des Servers einträgt - mit einer Zeile Code erhält man so Logging aller HTTP Anforderungen.

Homepage und Offline-Demo: http://www.habarisoft.com/habari_webcomponents.html

Online-Demo: http://www.habariwebcomponents.de/demo/index.html

Android Demo: https://play.google.com/store/apps/d...ft.webcompdemo

mjustin 27. Aug 2013 09:30

AW: Web Application Framework für Delphi und Free Pascal
 
Version 2.5 der Habari Web Components bringt als Verbesserungen:

* Unterstützung von Free Pascal "mixed mode" Quelltexten
* NCSA Logger auch unter Linux verwendbar
* Bootstrap 3.0, jQuery 1.10.2, jQuery mobile 1.3.2 in den Beispielapplikationen
* Zusätzliche Dokumentation
* Getestet mit Indy 10.6 (revision 5044) und Free Pascal 2.6.2
* Pflege und Verbesserungen der Demoanwendungen

Demoanwendungen (mit Quelltext der Beispielwebkomponenten):
* "Kitchen sink" (online Version)
* Flight Plan (jQuery mobile)
* ReCaptcha

Download:

http://cc.embarcadero.com/Item/28784

oder

http://www.habarisoft.com/download/H...onentsDemo.zip

Die mit doxygen erstellte API Dokumentation der Version 2.5 ist online unter http://www.habarisoft.com/habari_web.../2.5/docs/api/ zu finden.

mjustin 3. Mai 2014 07:41

AW: Web Application Framework für Delphi und Free Pascal
 
In der am 2. Mai erschienenen Version 2.8 der Habari Web Components ist jetzt die Unterstützung von Unit Tests für Lazarus / Free Pascal enthalten.

Die bereits bestehenden DUnit Tests wurden zum FPCUnit Framework kompatibel gemacht und sind über ein eigenes Lazarus-Projekt im FPCUnit GUI Testrunner ausführbar.

Weitere Veränderungen in Version 2.8:
  • neue Tutorials für die Erstellung von Webanwendungen
  • Validierung der Kontext- und Resourcemappingpfade
  • Workarounds im Log4D Framework zur Unterstützung von Free Pascal

Die "Flightplan" Beispielanwendung wurde auf Version 1.4.2 des jQuery Mobile Frameworks aktualisiert.

mjustin 20. Mär 2016 05:36

AW: HTTP Server Framework für Delphi und Free Pascal
 
Das HTTP Server Framework ist auf GitHub umgezogen und wird unter dem neuen Namen "Daraja Framework" als Open Source weiterentwickelt:

Projekt:
https://darajaframework.com/

Quelltext und Wiki auf GitHub:
https://github.com/michaelJustin/daraja-framework

"Getting Started" PDF
DarajaFrameworkGettingStarted.pdf

API Dokumentation:
https://darajaframework.com/docs/1.0/

RWarnecke 20. Mär 2016 07:30

AW: HTTP Server Framework für Delphi und Free Pascal
 
Zitat:

Zitat von mjustin (Beitrag 1333383)

Der Link funktioniert nicht, gibt ein 404.

mjustin 20. Mär 2016 07:35

AW: HTTP Server Framework für Delphi und Free Pascal
 
Zitat:

Zitat von RWarnecke (Beitrag 1333385)
Der Link funktioniert nicht, gibt ein 404.

Danke! Den Link habe ich korrigiert, er müsste nun den HTTP Code 200 zurückgeben :)

ConstantGardener 20. Mär 2016 08:45

AW: HTTP Server Framework für Object Pascal - nun auf GitHub
 
...sehr schön. Ich setze den Vorgänger (Habari Web Components) schon länger kommerziell ein und kann ihn nur empfehlen! Ein Blick lohnt sich in jedem Fall und ist jetzt ja sehr "schmerzfrei" (sprich kostenlos) möglich. Da bekommt man direkt Lust mal eine kleine DEMO zusammenzuschrauben.

Danke Dir erstmal für die bisherige Arbeit!

cu cg

mjustin 2. Jul 2016 13:28

AW: HTTP Server Framework für Object Pascal - nun auf GitHub
 
Die RESTful Erweiterung des Daraja Framework ist nun als Version 2.0 auf GitHub verfügbar:

https://github.com/michaelJustin/daraja-restful

Sie enthält als wesentliche Neuerung Unterstützung von Free Pascal.

Da in Free Pascal Anonyme Funktionen bisher nicht unterstützt werden, muss stattdessen eine Referenz auf eine Methode übergeben werden.

Beispiel: Delphi ...
Delphi-Quellcode:
   &Path('hello');
   &Produces('text/html');
   GET
    (procedure(Request: TRequest; Response: TResponse)
     begin
       Response.ContentText := '<html>Hello world!</html>';
     end);
...Free Pascal:
Delphi-Quellcode:
   &Path('hello');
   &Produces('text/html');
   GET
    (MyGetMethod);

...


   procedure TMyRestComponent.MyGetMethod(Request: TRequest; Response: TResponse);
   begin
     Response.ContentText := '<html>Hello world!</html>';
   end;
Unittests sind nun für Delphi (DUnit) und Free Pascal (FPCUnit) enthalten.

Feedback ist wie immer herzlich willkommen.

mjustin 21. Jul 2017 09:08

AW: HTTP Server Framework für Object Pascal - nun auf GitHub
 
Das Release Version 1.2 ist zwar schon eine Weile her, hier aber dennoch eine Zusammenfassung der Änderungen

https://github.com/michaelJustin/dar...leases/tag/1.2

* Struktur der Unittests überarbeitet
* Neue HTTP Hilfsklassen für Unittests
* Die Typen TdjRequest und TdjResponse werden auch in Demoprogrammen und Unittests verwendet
* Das SLF4P Logging Framework wird auch in Demoprogrammen und Unittests verwendet
* Das Bootstrap Demo wurde aktualisiert
* Free Pascal 2.x Support wurde entfernt, Free Pascal 3.0.2 oder neuer kann verwendet werden

Allen Anwender des Frameworks wird empfohlen die neue Version zu testen und Verbesserungswünsche sind willkommen (Adresse siehe https://www.habarisoft.com/daraja_framework.html)

mjustin 15. Mär 2019 12:22

AW: HTTP Server Framework für Object Pascal - nun auf GitHub
 
Release 1.2.9 des auf Indy basierenden Open Source Frameworks ist nun erschienen.

Neu im Daraja HTTP Framework seit Version 1.2:

Beispiele für Authentication und Authorization mit OpenID Connect und OAuth 2.0:
* GitHub API Zugang mit OAuth 2.0 Authorization (Tutorial 10) Blogartikel
* Google OpenID Connect Authentication (Tutorial 9)
* Google API Zugang mit Zugriff auf die Google Drive API und OAuth 2.0 Authorization (Tutorial 8) Blogartikel
* Google Sign In mit JavaScript (Tutorial 7)

Verbesserte UTF-8 Unterstützung
* Für In Free Pascal ist ein Patch enthalten mit dem das Einbinden der LazUTF8 Unit verbesserte UTF-8 Unterstützung erreicht wird (utf8helper Unit im demo/common Verzeichnis)

Twitter Bootstrap Demo
* Das Demoprojekt wurde auf Bottstrap 4 aktualisiert

Formularbasierte Anmeldung
* Tutorial 6 und 7 demonstrieren formularbasierte Anmeldung

HTTPS
* Demoanwendung für HTTPS (erfordert TLS Zertifikate)

Die vollständigen Release Notes auf GitHub: https://github.com/michaelJustin/dar...ework/releases

Getting Started PDF: https://www.habarisoft.com/daraja_fr...ingStarted.pdf

API Dokumentation: http://michaeljustin.github.io/daraja-framework/

mjustin 22. Apr 2023 11:59

AW: HTTP Server Framework für Object Pascal - nun auf GitHub
 
Daraja HTTP Framework 2.6.beta.1

Das Daraja HTTP Server framework enthält in der kommenden Version 2.6 eine vieseitig verwendbare funktionale Neuerung in Form der WebFilter.
Mit einem WebFilter können HTTP Request und HTTP Response vor- und nachbearbeitet werden.
Einsatzbereiche für Filter sind zum Beispiel:
* Prüfen, Setzen und Entfernen von HTTP Header-Parametern
* Ersetzen von Texten auf oder Hinzufügen von Kopf- oder Fusszeilen
* Weiterleitung auf Login-Seiten
* Schreiben von Logdateien.

Source Code der Version 2.6.beta.1 ist hier zu finden:

https://github.com/michaelJustin/dar...tag/2.6-beta.1

Die Tests für Delphi (DUnit) und Lazarus / Free Pascal (FPCUnit) enthalten bereits einige Anwendungsbeispiele.

Ein Filter, der alle Requests verarbeitet (Path /*) und an das Ende des Dokuments den Text " filtered" anhängt, wird in diesem Unittest verwendet:

Delphi-Quellcode:
procedure TAPIConfigTests.TestCatchAllWebFilter;
var
  Server: TdjServer;
  Context: TdjWebAppContext;
begin
  // configure
  Context := TdjWebAppContext.Create('web');
  Context.AddWebComponent(TExamplePage, '*.txt');
  Context.AddFilterWithMapping(TTestFilter, '/*');

  // run
  Server := TdjServer.Create;
  try
    Server.Add(Context);
    Server.Start;

    CheckGETResponseEquals('example (filtered)', '/web/anypage.txt');
  finally
    Server.Free;
  end;
end;
Filterdefinition:

Delphi-Quellcode:
TTestFilter = class(TdjWebFilter)
public
  procedure DoFilter(Context: TdjServerContext; Request: TdjRequest;
    Response: TdjResponse; const Chain: IWebFilterChain); override;
end;

procedure TTestFilter.DoFilter(Context: TdjServerContext; Request: TdjRequest;
  Response: TdjResponse; const Chain: IWebFilterChain);
begin
   Chain.DoFilter(Context, Request, Response);
   Response.ContentText := Response.ContentText + ' (filtered)';
end;


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:57 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz