AGB  ·  Datenschutz  ·  Impressum  







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

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

Ein Thema von mjustin · begonnen am 23. Feb 2012 · letzter Beitrag vom 15. Mär 2019
Antwort Antwort
Seite 2 von 4     12 34   
mjustin
Registriert seit: 14. Apr 2008
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/

Geändert von mjustin (20. Mär 2016 um 05:38 Uhr)
 
mjustin

 
Delphi 2009 Professional
 
#11
  Alt 22. Apr 2012, 07: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

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

 
Delphi 2009 Professional
 
#12
  Alt 16. Jun 2012, 09:09
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.
Miniaturansicht angehängter Grafiken
habari_webcomponents_demo.png   apidocs.png  
Michael Justin

Geändert von mjustin (16. Jun 2012 um 09:20 Uhr)
  Mit Zitat antworten Zitat
mjustin

 
Delphi 2009 Professional
 
#13
  Alt 11. Jul 2012, 19: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
  Mit Zitat antworten Zitat
mjustin

 
Delphi 2009 Professional
 
#14
  Alt 20. Jul 2012, 06: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

Geändert von mjustin (20. Jul 2012 um 14:57 Uhr)
  Mit Zitat antworten Zitat
mjustin

 
Delphi 2009 Professional
 
#15
  Alt 4. Aug 2012, 16:50
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
Miniaturansicht angehängter Grafiken
step2.png  
Michael Justin
  Mit Zitat antworten Zitat
mjustin

 
Delphi 2009 Professional
 
#16
  Alt 10. Aug 2012, 13:18
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.
Miniaturansicht angehängter Grafiken
bildschirmfoto-vom-2012-08-10-14-10-39.png  
Michael Justin
  Mit Zitat antworten Zitat
mjustin

 
Delphi 2009 Professional
 
#17
  Alt 5. Dez 2012, 13:13
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
Michael Justin

Geändert von mjustin ( 8. Dez 2012 um 11:00 Uhr)
  Mit Zitat antworten Zitat
mjustin

 
Delphi 2009 Professional
 
#18
  Alt 18. Dez 2012, 18:28
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.
Miniaturansicht angehängter Grafiken
screenshot.png  
Michael Justin
  Mit Zitat antworten Zitat
Benutzerbild von RWarnecke
RWarnecke

 
Delphi XE8 Enterprise
 
#19
  Alt 18. Dez 2012, 19:39
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.
Rolf Warnecke
  Mit Zitat antworten Zitat
mjustin

 
Delphi 2009 Professional
 
#20
  Alt 18. Dez 2012, 21:58
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!
Michael Justin
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 10:33 Uhr.
Powered by vBulletin® Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2019 by Daniel R. Wolf