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

Sprache Format Link
🇬🇧 Englisch eBook Kaufen auf Leanpub
🇬🇧 Englisch Hardcover Kaufen auf Lulu
🇧🇷 Portugiesisch eBook Kaufen auf Leanpub
🇪🇸 Spanisch eBook Kaufen auf Leanpub

📖 Kostenloses Probekapitel lesen — In 5 Minuten loslegen!


Warum DMVCFramework wählen?

Vorteil Beschreibung
Bewährt im Produktionsbetrieb Seit 2010 in kleinen, mittleren und Enterprise-Projekten weltweit eingesetzt
Vollständiges Feature-Set REST, JSON-RPC, JWT, WebSocket, SSE, ORM – alles, was Sie brauchen
Blitzschnell Für hohe Leistung unter starker Last optimiert
Leicht erlernbar Intuitive 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 gepflegt Regelmäß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

Version Datum Highlights
3.4.3-aluminium Jan 2026 WebSocket, Rate Limiting, Repository Pattern, Delphi 13
3.4.2-magnesium Feb 2024 Middleware Sessions, Datenbank-Sessions
3.4.1-sodium Jan 2024 Sempare Templates, Delphi 12, foVersion
3.4.0-neon Sep 2023 Functional Actions, Named Queries, HTMX
3.3.0-fluorine Apr 2023 Delphi 11.3, Prometheus, Records in Swagger
3.2.3-radium Feb 2022 Integrierter Profiler, JSONRPC TObject
3.2.2-nitrogen Sep 2020 Delphi 11, TMVCRESTClient, LRU Cache
3.2.1-carbon Nov 2019 Referenz zum offiziellen Leitfaden, snake_case
3.2.0-boron Jul 2019 Delphi 10.4, Swagger, Nullable Types
3.1.0-lithium Mär 2019 Erweiterte Middleware
3.0.0-hydrogen 2018 MVCActiveRecord ORM, 3.x-Architektur
2.x 2015–2017 Foundation-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"

Beispiel Beschreibung
basicdemo_server Minimale Server-Einrichtung – hier beginnen
functional_actions_showcase Modernes Functional-Actions-Pattern
console_sample Einfache Konsolenanwendung

„Ich möchte eine REST API bauen"

Beispiel Beschreibung
simple_api_using_mvcactiverecord REST API mit ORM
simple_api_using_repository_with_injection Repository-Pattern + Dependency Injection
simple_api_using_datasets TDataSet als JSON zurückgeben
routing URL-Parameter, Pfadsegmente, Query-Strings
validators Eingebaute und benutzerdefinierte Eingabevalidatoren
file_upload multipart/form-data-Uploads verarbeiten

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

Beispiel Beschreibung
jsonwebtoken JSON Web Token Grundlagen
jsonwebtoken_roleauth Rollenbasierte Autorisierung mit JWT
middleware_jwtwithcookiehttponly Sicheres HTTP-only-Cookie für JWT
middleware_basicauthentication HTTP-Basic-Authentifizierung
custom_auth Eigenen Auth-Handler implementieren
middleware_cors Cross-Origin Resource Sharing
middleware_ratelimit_memory Anfragen drosseln (speicherbasiert)
middleware_ratelimit_redis Anfragen drosseln (Redis-gestützt)

„Ich möchte Echtzeitkommunikation"

Beispiel Beschreibung
websocket_primer WebSocket-Einführung
websocket_chat Multi-User-Chat-Anwendung
websocket_groups Kanalbasiertes Messaging
websocket_javascript_client_sample Browser-Client-Beispiel
serversentevents Server-Sent Events (Push-Benachrichtigungen)

„Ich möchte HTML-Seiten rendern"

Beispiel Beschreibung
serversideviews_templatepro HTML mit der TemplatePro-Engine
serversideviews_mustache HTML mit der Mustache-Engine
htmx Dynamisches HTML mit HTMX
htmx_website_with_templatepro Vollständige Website mit HTMX + TemplatePro
htmx_website_with_webstencils RAD Studio WebStencils-Integration

„Ich möchte mit Datenbanken arbeiten"

Beispiel Beschreibung
activerecord_showcase Vollständige ORM-Demo
activerecord_restful_crud RESTful API mit ActiveRecord
master_details Eltern-Kind-Beziehungen
repository_showcase Verwendung von IMVCRepository
ado Microsoft ADO Beispiel

„Ich möchte JSON-RPC verwenden"

Beispiel Beschreibung
jsonrpc JSON-RPC-2.0-Server-Implementierung

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

Beispiel Beschreibung
middleware Eigene Middleware erstellen
middleware_compression GZIP/Deflate-Antworten
middleware_etag HTTP-Caching mit ETags
middleware_staticfiles Statische Inhalte ausliefern
middleware_analytics Request-Logging/-Tracking
middleware_activerecord DB-Verbindung pro Request
action_filters Before/After-Action-Hooks
custom_exception_handling Benutzerdefinierte Fehlerantworten
renders Benutzerdefinierte JSON-Serialisierer

„Ich möchte in die Produktion deployen"

Beispiel Beschreibung
windows_service Als Windows-Dienst ausführen
apache_module Hinter Apache deployen
isapi Auf IIS deployen
ssl_server HTTPS-Konfiguration
tls13 Modernes TLS 1.3 Setup

„Ich möchte meine API dokumentieren"

Beispiel Beschreibung
swagger_primer OpenAPI-Dokumentation Grundlagen
swagger_ui Interaktiver API-Explorer
swagger_doc_extended Erweiterte Dokumentationsfunktionen

„Ich möchte erweiterte Funktionen nutzen"

Beispiel Beschreibung
mvcasync Asynchrone Actions
outputcachewithredis Redis-gestützter Antwort-Cache
prometheus Prometheus-Monitoring-Integration
services_injection Dependency Injection
dotenv_showcase Umgebungskonfiguration mit .env-Dateien
sqids_showcase Kurze eindeutige IDs (Sqids)

Verwandte Open-Source-Projekte

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

Projekt Beschreibung Verwendung mit DMVCFramework
LoggerPro Asynchrones Logging-Framework mit über 20 Appendern Strukturiertes Logging für APIs mit Datei-, Datenbank-, Redis- oder ElasticSearch-Appendern
TemplatePro Leistungsstarke Template-Engine mit Jinja-ähnlicher Syntax Serverseitiges HTML-Rendering mit dem Beispiel serversideviews_templatepro
DelphiRedisClient Vollständiger Redis-Client Caching, Session-Speicherung, Rate Limiting und Echtzeit-Features
DelphiGuard RAII-Speicherverwaltung Automatische Ressourcenbereinigung in Controllern und Middleware
Delphi Fake Data Utils Testdatengenerator Realistische Daten für API-Tests und Demos generieren
Expression Evaluator Laufzeit-Formelparser Dynamische Geschäftsregeln und berechnete Felder in Ihren APIs

Delphi-Versionskompatibilität

Delphi-Version Windows Linux
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

Ressource Link
📦 GitHub-Repository github.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 Probekapitel Auf 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

Comments

comments powered by Disqus