AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Projekte HTTP Server Framework für Object Pascal - nun auf GitHub
Thema durchsuchen
Ansicht
Themen-Optionen

HTTP Server Framework für Object Pascal - nun auf GitHub

Ein Thema von mjustin · begonnen am 23. Feb 2012 · letzter Beitrag vom 22. Apr 2023
Antwort Antwort
Seite 1 von 3  1 23      
mjustin

Registriert seit: 14. Apr 2008
3.008 Beiträge
 
Delphi 2009 Professional
 
#1

Daraja HTTP Framework für Object Pascal

  Alt 23. Feb 2012, 08:23
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/
Michael Justin

Geändert von mjustin (22. Apr 2023 um 12:44 Uhr) Grund: Namensänderung
  Mit Zitat antworten Zitat
mjustin

Registriert seit: 14. Apr 2008
3.008 Beiträge
 
Delphi 2009 Professional
 
#2

AW: Web Component Server Framework für Delphi Webanwendungen

  Alt 26. Feb 2012, 12:27
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/
Miniaturansicht angehängter Grafiken
habari_webcomponents_demo.png   formcmp.png  
Michael Justin
habarisoft.com

Geändert von mjustin (10. Mär 2012 um 17:40 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von mschaefer
mschaefer

Registriert seit: 4. Feb 2003
Ort: Hannover
2.032 Beiträge
 
Delphi 12 Athens
 
#3

AW: Web Component Server Framework für Delphi Webanwendungen

  Alt 26. Feb 2012, 14:24
werde das Projekt mal weiter verfolgen...

Grüße // Martin
Martin Schaefer
  Mit Zitat antworten Zitat
ConstantGardener

Registriert seit: 24. Jan 2006
Ort: Halberstadt
376 Beiträge
 
Delphi 10.4 Sydney
 
#4

AW: Web Component Server Framework für Delphi Webanwendungen

  Alt 26. Feb 2012, 22:34
...jupp ich auch
Andreas Schachtner
  Mit Zitat antworten Zitat
mjustin

Registriert seit: 14. Apr 2008
3.008 Beiträge
 
Delphi 2009 Professional
 
#5

AW: Web Component Framework für Delphi Webanwendungen

  Alt 6. Mär 2012, 18:41
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.
Michael Justin
habarisoft.com

Geändert von mjustin ( 6. Mär 2012 um 18:45 Uhr)
  Mit Zitat antworten Zitat
ConstantGardener

Registriert seit: 24. Jan 2006
Ort: Halberstadt
376 Beiträge
 
Delphi 10.4 Sydney
 
#6

AW: Web Component Framework für Delphi Webanwendungen

  Alt 6. Mär 2012, 21:19
...nette Demo. Gibt es denn das Framework selbst/oder Teile schon irgendwo zum probieren?

Welche Lizenz soll das dann haben?

cu cg
Andreas Schachtner
  Mit Zitat antworten Zitat
mjustin

Registriert seit: 14. Apr 2008
3.008 Beiträge
 
Delphi 2009 Professional
 
#7

AW: Web Component Framework für Delphi Webanwendungen

  Alt 25. Mär 2012, 12:04
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;
Michael Justin
habarisoft.com

Geändert von mjustin (29. Mär 2012 um 13:01 Uhr)
  Mit Zitat antworten Zitat
mjustin

Registriert seit: 14. Apr 2008
3.008 Beiträge
 
Delphi 2009 Professional
 
#8

AW: Web Component Framework für Delphi Webanwendungen

  Alt 22. Apr 2012, 08:54
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/
Michael Justin
habarisoft.com

Geändert von mjustin (22. Apr 2012 um 08:57 Uhr)
  Mit Zitat antworten Zitat
mjustin

Registriert seit: 14. Apr 2008
3.008 Beiträge
 
Delphi 2009 Professional
 
#9

AW: Web Component Framework für Delphi + Free Pascal Webanwendungen

  Alt 11. Jul 2012, 20:12
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.
Michael Justin
habarisoft.com
  Mit Zitat antworten Zitat
mjustin

Registriert seit: 14. Apr 2008
3.008 Beiträge
 
Delphi 2009 Professional
 
#10

AW: Web Component Framework für Delphi + Free Pascal Webanwendungen

  Alt 20. Jul 2012, 07:55
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)
Michael Justin
habarisoft.com

Geändert von mjustin (20. Jul 2012 um 15:57 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:21 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz