Become a member!

DMVCFramework — Delphi REST API, JSON-RPC & Web-App-Framework

🌐
Dieser Artikel ist auch in anderen Sprachen verfügbar:
🇬🇧 English  •  🇮🇹 Italiano  •  🇪🇸 Español

Das beliebteste Open-Source-Delphi-Framework auf GitHub · Produktionsreif seit 2010

TL;DR: DMVCFramework ist das #1 Delphi-Framework für den Aufbau von REST APIs und Webdiensten. Es ist kostenlos (Apache 2.0), seit 2010 produktionsreif, unterstützt JWT, WebSocket, ORM und läuft auf Windows/Linux. Von GitHub installieren, einen Controller mit [MVCPath]-Attributen anlegen und Objekte zurückgeben, die automatisch zu JSON serialisiert werden.

Was ist DMVCFramework?

DMVCFramework (DelphiMVCFramework) ist das beliebteste Open-Source-Framework für den Aufbau von Web-APIs und Webanwendungen in Delphi. Es ermöglicht die einfache Erstellung von RESTful-Diensten (RMM Level 3), JSON-RPC-Diensten, serverseitigen Webseiten, Mobile-Backends und Microservices.

Seit 2010 in der Produktion eingesetzt, betreibt DMVCFramework einige der meistgenutzten Delphi-Web-APIs der Welt. Es ist das #1 Delphi-Projekt auf GitHub nach Bewertung, mit einer lebendigen Community von über 5.000 aktiven Entwicklern.

DMVCFramework Logo

GitHub starsGitHub last commitLicense
⬇️ Neueste Version herunterladen ⭐ GitHub (1.300+ Sterne)

Einstieg: Der offizielle Leitfaden

DMVCFramework - The Official Guide

Der schnellste Weg, DMVCFramework zu meistern, ist der offizielle Leitfaden. Dieses umfassende Buch führt Sie von den Grundlagen bis zur professionellen Entwicklung mit praxisnahen Beispielen und bewährten Vorgehensweisen.

Verfügbare Ausgaben

SpracheFormatLink
🇬🇧 EnglischeBookKaufen auf Leanpub
🇬🇧 EnglischHardcoverKaufen auf Lulu
🇧🇷 PortugiesischeBookKaufen auf Leanpub
🇪🇸 SpanischeBookKaufen auf Leanpub

📖 Kostenloses Probekapitel lesen — In 5 Minuten loslegen!


Warum DMVCFramework wählen?

VorteilBeschreibung
Bewährt im ProduktionsbetriebSeit 2010 in kleinen, mittleren und Enterprise-Projekten weltweit eingesetzt
Vollständiges Feature-SetREST, JSON-RPC, JWT, WebSocket, SSE, ORM – alles, was Sie brauchen
BlitzschnellFür hohe Leistung unter starker Last optimiert
Leicht erlernbarIntuitive API mit über 50 Beispielen für schnellen Produktivitätseinstieg
Aktive CommunityÜber 6.000 Entwickler in der Facebook-Gruppe stehen mit Rat zur Seite
Aktiv gepflegtRegelmäßige Updates, semantische Versionierung, zukunftssicher

Was Entwickler sagen

„DMVCFramework ist ein großartiges Framework. Es ist sehr intuitiv, schnell, einfach zu bedienen – es gibt nichts mehr, was man sich wünschen könnte."

— Samir

„Ich bin immer noch begeistert vom Code und der Dokumentation von DelphiMVCFramework. Herzlichen Dank und ich bin beeindruckt von Ihrem schnellen Feedback."

— Benjamin Y., Director of SQLGate

„Wir haben mit der Migration unserer Systeme auf Microservices begonnen und lieben DMVCFramework dabei."

— E. Costa


Neu in DMVCFramework 3.4.3-aluminium

Das neueste Release bringt wichtige neue Features:

WebSocket-Unterstützung

Vollduplex-Echtzeitkommunikation mit TMVCWebSocketServer und TMVCWebSocketClient. Erstellen Sie Chat-Anwendungen, Live-Dashboards und kollaborative Tools mit kanalbasiertem Messaging und Gruppen.

Rate-Limiting-Middleware

Schützen Sie Ihre APIs vor Missbrauch mit integrierter Ratenbegrenzung – sowohl speicherbasiert für einzelne Server als auch Redis-gestützt für verteilte Umgebungen.

Repository-Pattern

Saubere Architektur mit IMVCRepository<T> und [MVCInject] für automatische Dependency Injection.

Ausdrücke in dotEnv

Dynamische Ausdrücke in .env-Konfigurationsdateien mit Variablensubstitution und Arithmetik.

Vollständige Neuerungen für 3.4.3-aluminium ansehen →


Versionshistorie

VersionDatumHighlights
3.4.3-aluminiumJan 2026WebSocket, Rate Limiting, Repository Pattern, Delphi 13
3.4.2-magnesiumFeb 2024Middleware Sessions, Datenbank-Sessions
3.4.1-sodiumJan 2024Sempare Templates, Delphi 12, foVersion
3.4.0-neonSep 2023Functional Actions, Named Queries, HTMX
3.3.0-fluorineApr 2023Delphi 11.3, Prometheus, Records in Swagger
3.2.3-radiumFeb 2022Integrierter Profiler, JSONRPC TObject
3.2.2-nitrogenSep 2020Delphi 11, TMVCRESTClient, LRU Cache
3.2.1-carbonNov 2019Referenz zum offiziellen Leitfaden, snake_case
3.2.0-boronJul 2019Delphi 10.4, Swagger, Nullable Types
3.1.0-lithiumMär 2019Erweiterte Middleware
3.0.0-hydrogen2018MVCActiveRecord ORM, 3.x-Architektur
2.x2015–2017Foundation-Serie

Hauptfunktionen

Web-API-Entwicklung

  • RESTful APIs – Vollständige RMM-Level-3-Konformität mit korrekten HTTP-Verben und Statuscodes
  • JSON-RPC 2.0 – Automatisches Object-Remoting für RPC-artige APIs
  • OpenAPI-Unterstützung – Automatische API-Dokumentationsgenerierung
  • Automatisches Routing – Attributbasiertes URL-Mapping mit Parameterbindung

Authentifizierung & Sicherheit

  • JWT-Authentifizierung – Branchenstandard JSON Web Tokens
  • HTTP-Basic-Authentifizierung – Einfache Benutzername/Passwort-Authentifizierung
  • Benutzerdefinierte Authentifizierung – Flexibles Framework für beliebige Auth-Schemata
  • CORS-Unterstützung – Konfiguration für Cross-Origin Resource Sharing

Echtzeitkommunikation

  • WebSocket-Unterstützung – Vollduplex-Kommunikationskanäle
  • Server-Sent Events (SSE) – Push-Benachrichtigungen an Clients
  • Messaging-Erweiterungen – Integrierte Pub/Sub-Muster

Daten & Persistenz

  • MVCActiveRecord – Leistungsstarkes ORM für Datenbankoperationen
  • JSON-Serialisierung – Automatisches Objekt-zu-JSON-Mapping
  • Benutzerdefinierte Serialisierer – Vollständige Kontrolle über die Datentransformation

Deployment-Flexibilität

  • Windows-Konsolenanwendung
  • Windows-Dienst
  • Linux-Konsole/Daemon
  • Apache-Modul (mod_proxy)
  • IIS (ISAPI DLL)
  • Load-Balanced-Umgebungen

Entwicklererfahrung

  • IDE-Assistent – Projektvorlagen für den schnellen Einstieg
  • 50+ Beispiele – Jedes Feature mit funktionierenden Codebeispielen erlernen
  • Middleware-System – Einfache Request/Response-Hooks
  • Controller-Vererbung – DRY-Prinzip für gemeinsame Logik
  • Integrierter REST-Client – APIs einfach testen und konsumieren

Schnellstart: Hello World

Starten Sie mit DMVCFramework in Minuten. Hier ist ein einfacher „Hello World"-Controller:

uses
  MVCFramework, MVCFramework.Commons;

type
  [MVCPath('/api')]  // Basispfad für alle Actions in diesem Controller
  TMyController = class(TMVCController)
  public
    [MVCPath('/hello')]           // Route: GET /api/hello
    [MVCHTTPMethods([httpGET])]   // Erlaubte HTTP-Methode
    function GetHello: String;

    [MVCPath('/hello/($Name)')]   // Route: GET /api/hello/{Name}
    [MVCHTTPMethods([httpGET])]   // ($Name) erfasst das URL-Segment
    function GetHelloName(const Name: String): String;
  end;

implementation

function TMyController.GetHello: String;
begin
  Result := 'Hello, World!';  // Automatisch zu JSON serialisiert
end;

function TMyController.GetHelloName(const Name: String): String;
begin
  Result := 'Hello, ' + Name + '!';  // Name wird automatisch aus der URL extrahiert
end;

Das war’s! Rufen Sie GET /api/hello auf und erhalten Sie "Hello, World!". Rufen Sie GET /api/hello/John auf und erhalten Sie "Hello, John!".

DMVCFramework serialisiert Ihre Rückgabewerte automatisch zu JSON – Strings, Objekte, Arrays, Records, Datasets – alles funktioniert einfach.


Erweitertes Beispiel: REST API mit Datenbank

Für reale Anwendungen unterstützt DMVCFramework das MVCActiveRecord-ORM und das Repository-Pattern mit Dependency Injection:

uses
  MVCFramework, MVCFramework.Commons, MVCFramework.ActiveRecord,
  MVCFramework.Repository, System.Generics.Collections;

type
  // Entity-Klasse, die einer Datenbanktabelle zugeordnet ist
  [MVCTable('customers')]
  TCustomer = class(TMVCActiveRecord)
  private
    [MVCTableField('id', [foPrimaryKey, foAutoGenerated])]  // Auto-Increment PK
    FID: NullableInt32;
    [MVCTableField('name')]    // Zuordnung zur Spalte 'name'
    FName: string;
    [MVCTableField('email')]   // Zuordnung zur Spalte 'email'
    FEmail: string;
  public
    property ID: NullableInt32 read FID write FID;
    property Name: string read FName write FName;
    property Email: string read FEmail write FEmail;
  end;

  [MVCPath('/api/customers')]
  TCustomerController = class(TMVCController)
  protected
    fRepository: IMVCRepository<TCustomer>;  // Repository-Interface
  public
    [MVCInject]  // Dependency Injection – Repository wird automatisch bereitgestellt
    constructor Create(Repository: IMVCRepository<TCustomer>); reintroduce;

    [MVCPath]                     // Route: GET /api/customers
    [MVCHTTPMethods([httpGET])]
    function GetAllCustomers: IMVCResponse;

    [MVCPath('/($ID)')]           // Route: GET /api/customers/{ID}
    [MVCHTTPMethods([httpGET])]
    function GetCustomerByID(const ID: Integer): IMVCResponse;

    [MVCPath]                     // Route: POST /api/customers
    [MVCHTTPMethods([httpPOST])]  // [MVCFromBody] deserialisiert JSON-Body zu TCustomer
    function CreateCustomer([MVCFromBody] const Customer: TCustomer): IMVCResponse;

    [MVCPath('/($ID)')]           // Route: DELETE /api/customers/{ID}
    [MVCHTTPMethods([httpDELETE])]
    function DeleteCustomerByID(const ID: Integer): IMVCResponse;
  end;

implementation

constructor TCustomerController.Create(Repository: IMVCRepository<TCustomer>);
begin
  inherited Create;
  fRepository := Repository;  // Injiziiertes Repository speichern
end;

function TCustomerController.GetAllCustomers: IMVCResponse;
begin
  Result := OKResponse(fRepository.GetAll);  // Gibt HTTP 200 mit JSON-Array zurück
end;

function TCustomerController.GetCustomerByID(const ID: Integer): IMVCResponse;
begin
  Result := OKResponse(fRepository.GetByPK(ID));  // Gibt HTTP 200 mit JSON-Objekt zurück
end;

function TCustomerController.CreateCustomer(const Customer: TCustomer): IMVCResponse;
begin
  fRepository.Store(Customer);  // Einfügen oder Aktualisieren anhand des PK
  Result := CreatedResponse('/api/customers/' + Customer.ID.Value.ToString);  // HTTP 201
end;

function TCustomerController.DeleteCustomerByID(const ID: Integer): IMVCResponse;
var
  lCustomer: TCustomer;
begin
  lCustomer := fRepository.GetByPK(ID);  // Entity anhand des Primärschlüssels laden
  fRepository.Delete(lCustomer);          // Aus der Datenbank löschen
  Result := OKResponse;                   // Gibt HTTP 200 zurück
end;

Wesentliche Vorteile:

  • Functional Actions: Rückgabe von IMVCResponse mit Hilfsfunktionen wie OKResponse(), CreatedResponse()
  • Dependency Injection: [MVCInject] am Constructor für automatische Repository-Injektion
  • MVCActiveRecord: ORM mit Tabellenzuordnung über Attribute
  • Repository-Pattern: IMVCRepository<T> für sauberen, testbaren Datenzugriff
  • Auto-Serialisierung: Objekte, Records, Listen und Datasets werden automatisch serialisiert

Mit Beispielen lernen: 100+ Beispielprojekte

Der beste Weg, DMVCFramework zu erlernen, ist das Erkunden von funktionierendem Code. Das Projekt enthält über 100 Beispielprojekte, die jedes Feature und jeden Anwendungsfall abdecken. Jedes Beispiel ist eigenständig und sofort kompilierbar.

Finden Sie das Beispiel, das Ihrem Vorhaben entspricht, öffnen Sie es in Delphi und fangen Sie an zu experimentieren!

📦 Alle Beispiele: github.com/danieleteti/delphimvcframework/tree/master/samples


„Ich möchte mein erstes DMVCFramework-Projekt erstellen"

BeispielBeschreibung
basicdemo_serverMinimale Server-Einrichtung – hier beginnen
functional_actions_showcaseModernes Functional-Actions-Pattern
console_sampleEinfache Konsolenanwendung

„Ich möchte eine REST API bauen"

BeispielBeschreibung
simple_api_using_mvcactiverecordREST API mit ORM
simple_api_using_repository_with_injectionRepository-Pattern + Dependency Injection
simple_api_using_datasetsTDataSet als JSON zurückgeben
routingURL-Parameter, Pfadsegmente, Query-Strings
validatorsEingebaute und benutzerdefinierte Eingabevalidatoren
file_uploadmultipart/form-data-Uploads verarbeiten

„Ich möchte Authentifizierung und Sicherheit hinzufügen"

BeispielBeschreibung
jsonwebtokenJSON Web Token Grundlagen
jsonwebtoken_roleauthRollenbasierte Autorisierung mit JWT
middleware_jwtwithcookiehttponlySicheres HTTP-only-Cookie für JWT
middleware_basicauthenticationHTTP-Basic-Authentifizierung
custom_authEigenen Auth-Handler implementieren
middleware_corsCross-Origin Resource Sharing
middleware_ratelimit_memoryAnfragen drosseln (speicherbasiert)
middleware_ratelimit_redisAnfragen drosseln (Redis-gestützt)

„Ich möchte Echtzeitkommunikation"

BeispielBeschreibung
websocket_primerWebSocket-Einführung
websocket_chatMulti-User-Chat-Anwendung
websocket_groupsKanalbasiertes Messaging
websocket_javascript_client_sampleBrowser-Client-Beispiel
serversenteventsServer-Sent Events (Push-Benachrichtigungen)

„Ich möchte HTML-Seiten rendern"

BeispielBeschreibung
serversideviews_templateproHTML mit der TemplatePro-Engine
serversideviews_mustacheHTML mit der Mustache-Engine
htmxDynamisches HTML mit HTMX
htmx_website_with_templateproVollständige Website mit HTMX + TemplatePro
htmx_website_with_webstencilsRAD Studio WebStencils-Integration

„Ich möchte mit Datenbanken arbeiten"

BeispielBeschreibung
activerecord_showcaseVollständige ORM-Demo
activerecord_restful_crudRESTful API mit ActiveRecord
master_detailsEltern-Kind-Beziehungen
repository_showcaseVerwendung von IMVCRepository
adoMicrosoft ADO Beispiel

„Ich möchte JSON-RPC verwenden"

BeispielBeschreibung
jsonrpcJSON-RPC-2.0-Server-Implementierung

„Ich möchte die Request/Response-Verarbeitung anpassen"

BeispielBeschreibung
middlewareEigene Middleware erstellen
middleware_compressionGZIP/Deflate-Antworten
middleware_etagHTTP-Caching mit ETags
middleware_staticfilesStatische Inhalte ausliefern
middleware_analyticsRequest-Logging/-Tracking
middleware_activerecordDB-Verbindung pro Request
action_filtersBefore/After-Action-Hooks
custom_exception_handlingBenutzerdefinierte Fehlerantworten
rendersBenutzerdefinierte JSON-Serialisierer

„Ich möchte in die Produktion deployen"

BeispielBeschreibung
windows_serviceAls Windows-Dienst ausführen
apache_moduleHinter Apache deployen
isapiAuf IIS deployen
ssl_serverHTTPS-Konfiguration
tls13Modernes TLS 1.3 Setup

„Ich möchte meine API dokumentieren"

BeispielBeschreibung
swagger_primerOpenAPI-Dokumentation Grundlagen
swagger_uiInteraktiver API-Explorer
swagger_doc_extendedErweiterte Dokumentationsfunktionen

„Ich möchte erweiterte Funktionen nutzen"

BeispielBeschreibung
mvcasyncAsynchrone Actions
outputcachewithredisRedis-gestützter Antwort-Cache
prometheusPrometheus-Monitoring-Integration
services_injectionDependency Injection
dotenv_showcaseUmgebungskonfiguration mit .env-Dateien
sqids_showcaseKurze eindeutige IDs (Sqids)

Verwandte Open-Source-Projekte

DMVCFramework lässt sich nahtlos mit anderen Open-Source-Projekten desselben Autors integrieren:

ProjektBeschreibungVerwendung mit DMVCFramework
LoggerProAsynchrones Logging-Framework mit über 20 AppendernStrukturiertes Logging für APIs mit Datei-, Datenbank-, Redis- oder ElasticSearch-Appendern
TemplateProLeistungsstarke Template-Engine mit Jinja-ähnlicher SyntaxServerseitiges HTML-Rendering mit dem Beispiel serversideviews_templatepro
DelphiRedisClientVollständiger Redis-ClientCaching, Session-Speicherung, Rate Limiting und Echtzeit-Features
DelphiGuardRAII-SpeicherverwaltungAutomatische Ressourcenbereinigung in Controllern und Middleware
Delphi Fake Data UtilsTestdatengeneratorRealistische Daten für API-Tests und Demos generieren
Expression EvaluatorLaufzeit-FormelparserDynamische Geschäftsregeln und berechnete Felder in Ihren APIs

Delphi-Versionskompatibilität

Delphi-VersionWindowsLinux
Delphi 13 Florence✅✅
Delphi 12 Athens✅✅
Delphi 11 Alexandria✅✅
Delphi 10.4 Sydney✅✅
Delphi 10.3 Rio✅✅
Delphi 10.2 Tokyo✅✅
Delphi 10.1 Berlin✅-
Delphi 10 Seattle✅-

Das Projekt unterstützen

🎁 Werden Sie Patron-Unterstützer

DMVCFramework ist kostenlos und Open Source, aber die Pflege und Weiterentwicklung erfordert erheblichen Aufwand. Als Patron erhalten Sie:

  • Zugang zu Premium-Inhalten – Exklusive Tutorials, erweiterte Beispiele und Vorabvorschauen
  • Direkter Entwicklerzugang – Prioritätssupport und direkte Kommunikation mit dem Entwicklungsteam
  • Mitgestaltung der Zukunft – Beeinflussen Sie die Roadmap und Prioritäten neuer Features
  • Open Source unterstützen – Helfen Sie, DMVCFramework für alle kostenlos zu halten

Auf Patreon beitreten →


Professionelle Dienstleistungen

Benötigen Sie Enterprise-Grade-Support? bit Time Professionals, das Unternehmen hinter DMVCFramework, bietet:

  • Schulungen – Präsenz- oder Remote-Schulungen für Ihr Team
  • Beratung – Architekturüberprüfung, Performance-Optimierung, Best Practices
  • Individuelle Entwicklung – Feature-Entwicklung, Integration, Migration

📧 Kontakt: dmvcframework@bittime.it | 🌐 bittimeprofessionals.it


Community & Ressourcen

RessourceLink
📦 GitHub-Repositorygithub.com/danieleteti/delphimvcframework
📕 Offizieller Leitfaden (Buch)leanpub.com/delphimvcframework
👥 Facebook-Gruppe (5.000+ Mitglieder)facebook.com/groups/delphimvcframework
🎁 Patreon (Premium-Inhalte)patreon.com/delphimvcframework
📖 Kostenloses ProbekapitelAuf Leanpub lesen

FAQ: Häufig gestellte Fragen

Was ist DMVCFramework?

DMVCFramework (DelphiMVCFramework) ist ein Open-Source-Framework für den Aufbau von Web-APIs, RESTful-Diensten und Webanwendungen in Delphi. Es ist das beliebteste Delphi-Web-Framework, seit 2010 im Produktionseinsatz, und das #1 Delphi-Projekt auf GitHub nach Sternebewertung.

Was ist das beste Framework für REST APIs in Delphi?

DMVCFramework ist das beliebteste und funktionsreichste Framework für den Aufbau von REST APIs in Delphi. Es unterstützt RESTful APIs (RMM Level 3), JSON-RPC, WebSocket, Server-Sent Events, JWT-Authentifizierung und enthält ein leistungsstarkes ORM namens MVCActiveRecord.

Wie erstelle ich eine REST API in Delphi?

Verwenden Sie DMVCFramework: Erstellen Sie eine Controller-Klasse, die von TMVCController erbt, fügen Sie [MVCPath]- und [MVCHTTPMethods]-Attribute zur Routendefinition hinzu und geben Sie Daten direkt aus Ihren Methoden zurück (Functional Actions). Das Framework serialisiert Objekte, Arrays und Records automatisch zu JSON. Sehen Sie sich die über 100 enthaltenen Beispiele an.

Wie gebe ich JSON aus einer Delphi-REST-API zurück?

Mit DMVCFramework geben Sie einfach ein Objekt, einen Record oder eine TObjectList<T> aus Ihrer Controller-Methode zurück. Das Framework serialisiert es automatisch zu JSON. Für mehr Kontrolle verwenden Sie die Hilfsfunktionen OKResponse(data) oder CreatedResponse(location).

Unterstützt DMVCFramework JWT-Authentifizierung?

Ja, DMVCFramework verfügt über integrierte JWT-Unterstützung (JSON Web Token) für zustandslose Authentifizierung. Es unterstützt Token-Generierung, Validierung, rollenbasierte Autorisierung und sichere HTTP-only-Cookies. Sehen Sie sich die Beispiele jsonwebtoken und jsonwebtoken_roleauth an.

Kann ich DMVCFramework unter Linux einsetzen?

Ja, DMVCFramework unterstützt Linux-Deployment ab Delphi 10.2 Tokyo vollständig. Sie können als Konsolenanwendung oder Daemon deployen, mit vollständiger Unterstützung aller Features einschließlich WebSocket und SSL/TLS.

Ist DMVCFramework kostenlos?

Ja, DMVCFramework ist kostenlos und Open Source unter der Apache-2.0-Lizenz. Sie können es in kommerziellen Projekten ohne Einschränkungen oder Anforderungen zur Namensnennung verwenden.

Wie erhalte ich Support für DMVCFramework?

Es stehen mehrere Support-Möglichkeiten zur Verfügung: Treten Sie der Facebook-Gruppe (5.000+ Mitglieder) bei, erkunden Sie die über 100 enthaltenen Beispiele, lesen Sie den offiziellen Leitfaden oder werden Sie Patron für Prioritätssupport und exklusive Inhalte.

Unterstützt DMVCFramework WebSocket?

Ja, DMVCFramework enthält vollständige WebSocket-Unterstützung für bidirektionale Echtzeitkommunikation. Zu den Features gehören kanalbasiertes Messaging, Gruppen und JavaScript-Client-Beispiele. Außerdem werden Server-Sent Events (SSE) für Server-zu-Client-Push-Benachrichtigungen unterstützt.

Was ist MVCActiveRecord?

MVCActiveRecord ist das integrierte ORM (Object-Relational Mapper) von DMVCFramework, das Datenbankoperationen vereinfacht. Es verwendet Attribute für Tabellen-/Spaltenzuordnung, unterstützt CRUD-Operationen, Beziehungen und RQL (Resource Query Language) für flexible Abfragen.

Wie deploye ich DMVCFramework in die Produktion?

DMVCFramework unterstützt mehrere Deployment-Optionen: Windows-Konsolenanwendung, Windows-Dienst, Linux-Daemon, Apache-Modul (mod_proxy), IIS (ISAPI DLL) und Load-Balanced-Umgebungen. Sehen Sie sich die Deployment-Beispiele für jedes Szenario an.

Unterstützt DMVCFramework OpenAPI/Swagger?

Ja, DMVCFramework kann automatisch OpenAPI-Dokumentation (Swagger) für Ihre APIs generieren. Verwenden Sie die Beispiele swagger_primer und swagger_ui, um Ihrem Projekt eine interaktive API-Dokumentation hinzuzufügen.

Wie verarbeite ich Datei-Uploads in DMVCFramework?

Verwenden Sie das Context.Request-Objekt, um auf hochgeladene Dateien zuzugreifen. Das Beispiel file_upload demonstriert die Verarbeitung von multipart/form-data-Anfragen mit einzelnen oder mehreren Datei-Uploads.

Kann ich DMVCFramework mit FireDAC verwenden?

Ja, DMVCFramework funktioniert mit jeder Datenbankzugriffsschicht, einschließlich FireDAC, ADO und anderen. MVCActiveRecord verwendet standardmäßig FireDAC, Sie können aber jede beliebige Verbindung verwenden.

Wie implementiere ich CORS in DMVCFramework?

Verwenden Sie die integrierte CORS-Middleware. Fügen Sie TMVCCORSMiddleware zu Ihrer Server-Konfiguration hinzu, um Cross-Origin-Anfragen zu ermöglichen. Sehen Sie sich das Beispiel middleware_cors für Konfigurationsoptionen an.

Welche Delphi-Versionen unterstützt DMVCFramework?

DMVCFramework unterstützt Delphi 10 Seattle bis Delphi 13 Florence, einschließlich vollständiger Linux-Unterstützung ab Delphi 10.2 Tokyo.

Wie behandle ich Fehler und Ausnahmen in DMVCFramework?

DMVCFramework konvertiert Ausnahmen automatisch in geeignete HTTP-Fehlerantworten mit JSON-Body. Für benutzerdefinierte Fehlerbehandlung verwenden Sie raise EMVCException.Create() mit spezifischen HTTP-Statuscodes oder implementieren Sie benutzerdefinierte Exception-Handler.

Unterstützt DMVCFramework Dependency Injection?

Ja, DMVCFramework verfügt über integrierte Dependency Injection. Verwenden Sie das [MVCInject]-Attribut an Constructoren oder Methodenparametern, um Services und Repositories automatisch zu injizieren. Sehen Sie sich das Beispiel services_injection an.


DMVCFramework – Das #1 Delphi-Framework für Web APIs
Kostenlos. Open Source. Produktionsreif seit 2010.

⭐ Auf GitHub mit Stern bewerten 📖 Den offiziellen Leitfaden holen
Kernfakten

DMVCFramework (DelphiMVCFramework) is the most popular open-source framework for building REST APIs and web applications in Delphi/Object Pascal.

  • License: Apache 2.0 (free for commercial use)
  • Production use: Since 2010
  • GitHub: #1 Delphi project by stars (1,300+)
  • Features: REST API (RMM Level 3), JSON-RPC 2.0, JWT auth, WebSocket, SSE, MVCActiveRecord ORM, dependency injection
  • Platforms: Windows (console, service, IIS, Apache), Linux (console, daemon)
  • Delphi versions: 10 Seattle through 13 Florence
  • Documentation: Official guide book available in English, Portuguese, Spanish
  • Community: 6,000+ developers in Facebook group
  • Author: Daniele Teti (bit Time Professionals)
  • Use cases: REST APIs, microservices, mobile backends, real-time apps, web applications

Comments