


Erstellen Sie ein GraphQL -Gateway: Kombinieren, stechen oder fusionieren Sie eine Datenquelle
Kernpunkte
- GraphQL Gateway kombiniert die Vorteile herkömmlicher API-Gateways und GraphQL, sodass Software-Ingenieure Daten aus mehreren Datenquellen erhalten und gleichzeitig die Effizienz von Frontends beibehalten können.
- Backend, d. H. Front-End (BFF) -Architekturmuster kombiniert es.
- GraphQL bietet BFF viele Vorteile, einschließlich einer effizienten Datenerfassung, einem einzelnen Endpunkt für alle Anforderungen und flexiblen Abfragen, mit denen das Front-End nur die erforderlichen Daten für jede Anforderung auswählen kann.
- Zu den drei empfohlenen Frameworks zum Erstellen von GraphQL -Gateways gehören Hasura, Stepen und Graphweaver. Diese Frameworks bieten mehrere Funktionen wie mehrere Datenquellenverbindungen, Routing, Stapelverarbeitung, Sicherheit, Cross-Data-Quellfilterung und Skalierbarkeit.
In diesem Artikel wird erläutert, wie Daten aus mehreren Datenquellen abgerufen werden, während das Front-End schnell reagiert, und eine potenzielle Lösung: Verwenden von GraphQL-Gateway.
Als Software -Ingenieure stehen wir alle der Herausforderung, Daten aus mehreren Systemen zusammenzustellen. Sogar für eine einzelne Seite sind Daten aus mehreren Diensten zu erbringen.
Daten sind überall, von CRM über Finanzsysteme, von SaaS -Plattformen bis zu Datenbanken. Es ist unvermeidlich, dass jedes Unternehmen eine große Anzahl von SaaS -Plattformen kauft und dann hoffen, eine einheitliche Geschäfte auf allen zu erhalten. Wir müssen uns diesem Problem stellen und alles zusammenfügen.
GraphQL Gateway kombiniert die Vorteile herkömmlicher API -Gateways und GraphQL.
Wir werden zuerst die Vorteile von API -Gateways diskutieren und dann sehen, wie GraphQL in sie passt. Bitte lesen Sie diesen Artikel weiter, wir werden einige Frameworks für den Aufbau unserer eigenen API -Gateways abdecken.
Vorteile des API -Gateways
schützen öffentlich ausgerichtete APIs vor Hackern ist ein Allwetterjob. Im Laufe der Zeit haben sich Unternehmen entwickelt, um viele APIs von serviceorientierten Architekturen bis hin zu Microservices zu schaffen. Organisationen neigen dazu, eine zusätzliche Sicherheitsebene hinzuzufügen, anstatt diese APIs direkt ins Internet zu setzen, was all diesen APIs voraus ist und sicherzustellen, dass der Zugriff auf Daten immer denselben Authentifizierungsregeln folgt.
Sie verwenden das API -Gateway, um dies zu tun.
Produkte wie Kong oder Apigee enthüllen interne APIs von einem zentralen Ort. Sie fungieren als Reverse -Proxy mit Funktionen wie API -Schlüsselmanagement, Ratenbegrenzung und Überwachung.
MitAPI Gateway können wir steuern, wer und was auf jeden Dienst zugreifen, Verbindungen überwachen und Zugriff aufzeichnen können.
In letzter Zeit müssen Anwendungen Daten von API -Gateways und anderen externen SaaS -Anbietern kombinieren. Dies bedeutet, dass die alten zentralisierten Werkzeuge (sicherstellen, dass unsere Regeln befolgt werden) jetzt regelmäßig umgangen werden.
Angenommen, wir erstellen eine Webanwendung für das Unternehmen. Unsere Aufgabe ist es, Benutzerprofilseiten zu erstellen. Während des Anmeldungsprozesses müssen wir Daten aus mehreren Systemen kombinieren:
- Salesforce CRM: Sparen Sie allgemeine Kundendaten wie der erste und Nachname.
- Reihenfolge: Die neueste Bestelleinheit befindet sich im Auftragssystem innerhalb der Organisation.
- Benachrichtigungsdienst: Benachrichtigungseinstellungen und aktuelle Nachrichten befinden sich in einer anwendungsspezifischen Datenbank, die mit dem Node.js-Dienst verbunden ist.
Der Client muss drei separate Anforderungen ausstellen, um die Daten zu erhalten, wie in der folgenden Abbildung gezeigt.
im obigen Bild sendet der Web-Client drei separate API-Anfragen, und dann müssen die Ergebnisse im Front-End-Code kombiniert werden. Das Senden mehrerer Anfragen kann die Leistung Ihrer Anwendung beeinflussen und diese Daten kombinieren können die Komplexität Ihres Codes erhöhen. Wenn es mehrere Anwendungen gibt, müssen jetzt alle Anwendungen über alle Backends Bescheid wissen, und eine einzige API -Änderung in einem Dienst kann zu Aktualisierungen für alle unsere Anwendungen führen.
wir können es besser machen. Idealerweise möchten wir die Anfrage von drei auf eins reduzieren. Wir können dazu einen neuen Dienst erstellen - einen Dienst, der Anfragen nach Backend -Diensten koordiniert. Diese Idee hat einen Namen: BFF -Modus.
Das Backend, dh der Frontend -Architekturmodus (BFF), ermöglicht dem Frontend eine einzige Anfrage.
Aber wie funktioniert es? Schauen wir uns dieses Muster genauer an.
Vorteile des BFF -Modus
Verwenden des BFF -Modus sendet die Anwendung eine einzige Anforderung an das API -Gateway. Der BFF -Dienst fordert dann Daten von jedem Backend -Dienst an und kombiniert diese. Schließlich werden die Daten gefiltert und nur die vom Frontend erforderlichen Daten werden zurückgegeben, wodurch die Menge der über das Netzwerk übertragenen Daten verringert wird.
Wie im obigen Bild gezeigt, führen wir eine zusätzliche Ebene in den Stapel ein, um Anforderungen zu koordinieren.
Der Endpunkt des Benutzerprofils gibt die von der Anwendung auf der Profilseite erforderlichen Daten zurück. Die Reduzierung unserer drei Anfragen auf eins hat unsere vorherigen Leistungsprobleme gelöst.
Aber wir sind noch nicht fertig.
Das Unternehmen beschließt, eine mobile App zu veröffentlichen. Die mobile App verfügt auch über eine Profilseite, in diesem Bildschirm werden jedoch viel weniger Profilinformationen angezeigt.
Zu diesem Zeitpunkt hat das mobile Team zwei Optionen. Das Team kann die Endpunkte des Webteams verwenden, was bedeutet, dass wir Daten überfassen (mehr Daten erhalten, die die mobile App nicht benötigt). Eine weitere Möglichkeit besteht darin, Ihre eigenen BFFs im mobilen Team zu erstellen.
Nach den Erwartungen beschloss das mobile Team, seine eigenen BFFs zu erstellen, da es eine gute Leistung für seine Anwendungen wünschte.
Wie im obigen Bild gezeigt, werden die Dinge kompliziert und wir haben jetzt zwei neue Probleme:
- Jedes Team muss für jede von ihm erstellte Anwendung einen neuen BFF -Dienst erstellen, der jedes Team verlangsamt und es schwierig macht, zu standardisieren.
- Jedes BFF erfordert Penetrationstests, um sicherzustellen, dass es sicher ist.
Wie lösen wir diese Probleme?
Wir benötigen eine Lösung, bei der jede Anwendung die benötigten Daten auswählen kann, und es sollte eine einzige API sein, die von allen Anwendungen des Unternehmens verwendet wird.
Wie BFF reift, haben viele Entwickler begonnen, GraphQL anstelle von Ruhe zu verwenden.
Lassen Sie uns sehen, wie diese Technologie helfen kann.
Die Vorteile von GraphQL gegenüber BFF
GraphQL hat viele Vorteile, die es zu einer idealen Technologie für BFF machen:
- effiziente Datenerfassung. Mit GraphQL können Clients die erforderlichen Daten genau oder weniger genau anfordern. Dies verbessert die Leistung, indem die aus der API übertragenen Daten reduziert werden.
- einzelner Endpunkt. Anstatt viele Endpunkte durch das Gateway aufzuteilen, verwendet GraphQL einen einzelnen Endpunkt für alle Anforderungen. Dies vereinfacht den Bedarf an Wartung und Versionskontrolle.
- Flexible Abfrage. Kunden können Abfragen erstellen, indem sie Felder und Beziehungen zu einer einzigen Anfrage kombinieren. Auf diese Weise können Front-End-Entwickler die Datenerfassung optimieren und damit die Leistung verbessern. Wenn die Anforderungen der Front-End-Änderung auch aktualisiert werden können, um verschiedene Daten zu erhalten, ohne das Back-End in irgendeiner Weise zu ändern.
Das Front-End kann jetzt nur die erforderlichen Daten für jede Anforderung auswählen.
Wir können jetzt zwei unserer Anwendungen mit demselben GraphQL -Server verbinden, wodurch die Notwendigkeit eines zweiten BFF -Dienstes verringert wird.
Wir können jetzt BFF für jede Bewerbung in unserer Organisation teilen. Wir haben auch einen einzigen Endpunkt, der für die Penetration getestet werden muss.
Aber wir haben ein weiteres neues Problem vorgestellt! Wir müssen noch zwei Systeme verwalten - API Gateway und GraphQL BFF.
Was ist, wenn wir die beiden in ein GraphQL -Gateway verschmelzen?
Schauen wir uns als nächstes an, wie GraphQL Gateway funktioniert.
Was ist ein GraphQL -Gateway?
GraphQL Gateway kombiniert das API -Gateway mit GraphQL -API für die besten Ergebnisse beider Technologien.
Lassen Sie uns die Vorteile überprüfen:
- Entwickler haben einen einzelnen API -Endpunkt, um Daten anzufordern. Dies reduziert übermäßiges oder unzureichendes Abnehmen, da jede Anwendung nur die von ihnen benötigten Daten auswählt.
- GraphQL Gateway wird von vielen Anwendungen in Ihrer Organisation gemeinsam genutzt. Dies bedeutet, dass wir die Sicherheitsrisiken auf einen einzelnen API -Endpunkt reduziert haben.
- Wir haben jetzt nur einen Dienst, der verwaltet und bereitgestellt werden muss, da BFF mit dem Gateway zusammengeführt wird.
Das folgende Bild zeigt, wie Benutzerprofil -API -Anforderungen mit GraphQL Gateway funktionieren.
Im obigen Bild sendet der Client eine einzige Anforderung an das GraphQL -Gateway und fordert seine erforderlichen Daten an. Das Gateway stellt eine einzige Anfrage an jeden Dienst aus und kombiniert die Ergebnisse. Wir haben jetzt nur einen Dienst, der verwaltet und bereitgestellt werden muss.
Ich hoffe, Sie sind bereit, es selbst zu probieren. Lassen Sie uns als nächstes sehen, wie Sie ein GraphQL -Gateway erstellen.
bauen Sie GraphQL Gateway
Bei der Auswahl eines Gateway -Frameworks müssen wir nach wichtigen Funktionen suchen:
- Mehrere Datenquellen. Das Gateway muss mit vielen Datenquellen verbunden sein - von der Datenbank bis zu den SaaS - wir sollten in der Lage sein, unsere Verbindung herzustellen.
- Route. Das Gateway sollte in der Lage sein, Daten direkt aus dem zugrunde liegenden Dienst anzufordern.
- Batch -Verarbeitung. Mehrere an denselbe Dienst gesendete Abfragen werden in Chargen gesendet, wodurch die Anzahl der Anfragen reduziert wird.
- sicher. Die Authentifizierung und Autorisierung sollte steuern, wer auf die verbundenen Daten zugreifen kann.
- Filter über Datenquellen hinweg. Es sollten leistungsstarke Filter bereitgestellt werden, um die vom Client erforderlichen Daten zu vermeiden.
- Skalierbarkeit. Entwickler sollten in der Lage sein, den Code mithilfe von Middleware oder Funktionen zu erweitern, um ihre Anforderungen zu erfüllen.
Es stehen viele Frameworks zur Auswahl, aber ich empfehle, die folgenden drei Frameworks weiter zu untersuchen.
Hasura
Hasura ist im Laufe der Jahre immer beliebter geworden, zunächst als GraphQL-Over-Postgres-Server. Es erhöht jedoch die Fähigkeit, sich mit externen Systemen zu verbinden.
Wir können eine Verbindung zu einem "Remote -Modus" herstellen, der GraphQL von anderen Servern kombiniert.
Diese Methode hat einige Nachteile. Zunächst müssen wir unser Remote -Schema in einem separaten Dienst erstellen und verwalten, und dieser Dienst muss ein GraphQL -Endpunkt sein. Dies führt zu einem zweiten Problem: Wir können keine direkte Verbindung zur Datenquelle herstellen.
Zusätzlich erlaubt Hasura uns nicht, Daten in einer Datenquelle basierend auf den Werten in einer anderen Datenquelle zu filtern. Dies mag akademisch klingen, aber wir möchten oft so etwas wie "Gib mir eine Bestellung mit dem Namen" ABC "aus.
Dies bietet Flexibilität, aber auf Kosten des Ausführens mehrerer Dienste. Schauen wir uns eine Option an, die direkt angeschlossen werden kann.
Stepzen
Mitmit Stepen können wir über den GraphQL -Server direkt an die Datenquelle hergestellt werden. Dies reduziert die Notwendigkeit, mehrere Dienste auszuführen, um ein Gateway zu erstellen.
Um Schrittzahlen mit der Datenquelle zu verbinden, erstellen wir eine GraphQL -Schema -Datei wie unten gezeigt:
<code>type Query { anything(message: String): JSON @rest ( endpoint: "https://httpbin.org/anything" method: POST headers: [ {name: "User-Agent", value: "StepZen"} {name: "X-Api-Key", value: "12345"} ] postbody: """ { "user": { "id": "1000", "name": "The User" } } """ ) } </code>
In diesem Beispiel verwenden wir den benutzerdefinierten Modus, um den Server mit der Datenbank zu verbinden.
Es gibt eine andere Option, die Sie bevorzugen, nämlich der reine Codeansatz. Schauen wir uns als nächstes an.
Graphweaver
In den letzten Jahren habe ich ein Open -Source -Produkt namens GraphWeaver entwickelt, das als GraphQL -Gateway verwendet werden kann.
Es wird direkt mit unserer Datenquelle verbunden und erstellt eine sofortige GraphQL -API. Diese API enthält alle CRUD -Vorgänge, von denen wir möglicherweise erwarten, dass sie erstellen, lesen, aktualisieren und löschen. Es generiert automatisch Filter, Sortier- und Paging -Parameter und speichern Sie die Zeit. Wir können integrierte Vorgänge mit unserem Code für vollständige Flexibilität erweitern.
GraphWeaver bietet Datenverbindungen für Datenbanken wie Postgres und MySQL sowie SaaS -Anbieter wie Xero und Contentful.
Änderungen vornehmen oder eine Verbindung zu Datenquellen herstellen, beinhaltet das Schreiben von TypeScript -Code, sodass wir eine vollständige Anpassung vornehmen können.
Wenn Sie Ihre eigene GraphQL -API erstellen möchten, empfehle ich Ihnen dringend, den Github -Code von Graphweaver zu lesen.
Schlussfolgerung
In diesem Artikel untersuchen wir, wie unser aktuelles API -Gateway und BFF -Muster durch ein einzelnes GraphQL -Gateway ersetzt werden.
Wir haben die Vorteile von API -Gateways untersucht und warum Organisationen sie verwenden. Versioning, Ratenbeschränkung und Zugriffsmanagement sind einige Gründe.
Wir haben uns auch das BFF-Muster angesehen und wie es API-Anforderungen für Front-End-Anwendungen koordiniert.
Schließlich haben wir uns GraphQL angesehen und warum es eine vorteilhafte Technik für BFF ist.
Ende des Tages führte wir dazu, ein GraphQL -Gateway zu erstellen, und wir haben uns drei Optionen angesehen, um unsere eigenen zu erstellen: Hasura, Stepen und das Produktgrafikwwea, das ich entwickelt habe.
Ich hoffe, dieser Artikel überzeugt Sie, selbst zu versuchen, selbst GraphQL Gateway zu verwenden. Wenn Sie können, sollten Sie Graphweaver ausprobieren.
GraphQL Gateway FAQ (FAQ)
Was ist der Hauptzweck von GraphQL Gateway?
Das GraphQL -Gateway fungiert als einzelner Einstiegspunkt für alle GraphQL -Operationen. Es ist dafür verantwortlich, Anforderungen an den entsprechenden Dienst zu leiten, die Antworten zu aggregieren und an den Kunden zurück zu senden. Auf diese Weise können Sie mehrere GraphQL -Muster und -Dienste an einem einzigen Ort verwalten, sodass Ihre Anwendungen skalierbar und einfacher zu warten sind.
Wie ist der Unterschied zwischen GraphQL Gateway und traditionellem API -Gateway?
Das traditionelle API -Gateway ist für die Behandlung von erholsamen APIs ausgelegt, und sein Betriebsmodus unterscheidet sich von dem von GraphQL. Andererseits sind GraphQL -Gateways speziell für die Behandlung von GraphQL -Operationen ausgelegt. Es bietet Funktionen wie Musternähte und Verschmelzung, mit denen Sie mehrere GraphQL -Muster in einem kombinieren können. Dies ist etwas, was traditionelle API -Gateways nicht tun können.
Was ist das Musterspleißen im GraphQL -Gateway?
Modusstiche ist eine Funktion des GraphQL -Gateways, mit der Sie mehrere GraphQL -Muster in einem kombinieren können. Dies ist besonders nützlich, wenn Sie mehrere Dienste haben und jedes ein eigenes Schema hat und sie als einzelne API aufdecken. Musternähten sind für das Zusammenführen der Muster und die Lösung von Konflikten verantwortlich und bieten dem Kunden eine nahtlose Erfahrung.
Wie verbessert GraphQL Gateway die Leistung?
GraphQL -Gateways können die Leistung erheblich verbessern, indem die Anzahl der Rundreisen zwischen Clients und Servern verringert wird. Anstatt mehrere Anfragen an verschiedene Dienste zu stellen, stellt der Kunde einfach eine einzige Anfrage an das GraphQL -Gateway, der dann die Anforderungen an den entsprechenden Dienst weiterleitet, die Antworten aggregiert und an den Kunden zurücksendet. Dies reduziert die Netzwerklatenz und verbessert die Gesamtleistung.
Kann ich GraphQL Gateway in meinem Microservice verwenden?
Ja, GraphQL -Gateways sind besonders für Mikroservice -Architekturen geeignet. Jeder Mikroservice kann ein eigenes GraphQL -Muster haben, das das Gateway zusammenspleißt, um eine einheitliche API zu liefern. Auf diese Weise können Sie Microservices unabhängig verwalten und skalieren und gleichzeitig Ihren Kunden eine konsistente Schnittstelle zur Verfügung stellen.
Ist das GraphQL Gateway mit allen Programmiersprachen kompatibel?
GraphQL Gateway ist sprachfrei, dh es kann mit jeder Programmiersprache verwendet werden, die GraphQL unterstützt. Dies umfasst beliebte Sprachen wie JavaScript, Python, Ruby und Java.
Wie behandelt GraphQL Gateway Fehler?
GraphQL Gateway bietet leistungsstarke Fehlerbehandlungsfunktionen. Wenn in einem der Dienste ein Fehler auftritt, gibt das Gateway eine detaillierte Fehlermeldung an den Client zurück, einschließlich Informationen darüber, welcher Dienst den Fehler und welcher Fehler aufgetreten ist. Dies erleichtert die Diagnose und Behebung von Problemen.
Kann ich GraphQL Gateway in einer serverlosen Architektur verwenden?
Ja, GraphQL Gateway ist mit der serverlosen Architektur kompatibel. Sie können Ihr Gateway als serverlose Funktion bereitstellen, mit der Sie die Skalierbarkeit und Kosteneffizienz des serverlosen Computers nutzen können.
Wie handelt es sich bei GraphQL Gateway mit Sicherheit?
GraphQL Gateway bietet eine Vielzahl von Sicherheitsfunktionen, einschließlich Authentifizierung und Autorisierung, Ratenbegrenzung und Anforderungsüberprüfung. Diese Funktionen schützen Ihre Dienste vor nicht autorisierten Zugang und Missbrauch.
Kann ich das GraphQL -Gateway mit einer vorhandenen erholsamen API verwenden?
Ja, Sie können das GraphQL -Gateway mit Ihrer vorhandenen RESTful -API verwenden. Gateways können Ihre erholsame API in GraphQL -Muster einwickeln, sodass Sie GraphQL nutzen können, während Sie vorhandenen APIs verwenden.
Das obige ist der detaillierte Inhalt vonErstellen Sie ein GraphQL -Gateway: Kombinieren, stechen oder fusionieren Sie eine Datenquelle. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Die Kraft des JavaScript -Frameworks liegt in der Vereinfachung der Entwicklung, der Verbesserung der Benutzererfahrung und der Anwendungsleistung. Betrachten Sie bei der Auswahl eines Frameworks: 1. Projektgröße und Komplexität, 2. Teamerfahrung, 3. Ökosystem und Community -Unterstützung.

Einführung Ich weiß, dass Sie es vielleicht seltsam finden. Was genau muss JavaScript, C und Browser tun? Sie scheinen nicht miteinander verbunden zu sein, aber tatsächlich spielen sie eine sehr wichtige Rolle in der modernen Webentwicklung. Heute werden wir die enge Verbindung zwischen diesen drei diskutieren. In diesem Artikel erfahren Sie, wie JavaScript im Browser ausgeführt wird, die Rolle von C in der Browser -Engine und wie sie zusammenarbeiten, um das Rendern und die Interaktion von Webseiten voranzutreiben. Wir alle kennen die Beziehung zwischen JavaScript und Browser. JavaScript ist die Kernsprache der Front-End-Entwicklung. Es läuft direkt im Browser und macht Webseiten lebhaft und interessant. Haben Sie sich jemals gefragt, warum Javascr

Node.js zeichnet sich bei effizienten E/A aus, vor allem bei Streams. Streams verarbeiten Daten inkrementell und vermeiden Speicherüberladung-ideal für große Dateien, Netzwerkaufgaben und Echtzeitanwendungen. Die Kombination von Streams mit der TypeScript -Sicherheit erzeugt eine POWE

Die Unterschiede in der Leistung und der Effizienz zwischen Python und JavaScript spiegeln sich hauptsächlich in: 1 wider: 1) Als interpretierter Sprache läuft Python langsam, weist jedoch eine hohe Entwicklungseffizienz auf und ist für eine schnelle Prototypentwicklung geeignet. 2) JavaScript ist auf einen einzelnen Thread im Browser beschränkt, aber Multi-Threading- und Asynchronen-E/A können verwendet werden, um die Leistung in Node.js zu verbessern, und beide haben Vorteile in tatsächlichen Projekten.

JavaScript stammt aus dem Jahr 1995 und wurde von Brandon Ike erstellt und realisierte die Sprache in C. 1.C-Sprache bietet Programmierfunktionen auf hoher Leistung und Systemebene für JavaScript. 2. Die Speicherverwaltung und die Leistungsoptimierung von JavaScript basieren auf C -Sprache. 3. Die plattformübergreifende Funktion der C-Sprache hilft JavaScript, auf verschiedenen Betriebssystemen effizient zu laufen.

JavaScript wird in Browsern und Node.js -Umgebungen ausgeführt und stützt sich auf die JavaScript -Engine, um Code zu analysieren und auszuführen. 1) abstrakter Syntaxbaum (AST) in der Parsenstufe erzeugen; 2) AST in die Kompilierungsphase in Bytecode oder Maschinencode umwandeln; 3) Führen Sie den kompilierten Code in der Ausführungsstufe aus.

Zu den zukünftigen Trends von Python und JavaScript gehören: 1. Python wird seine Position in den Bereichen wissenschaftlicher Computer und KI konsolidieren. JavaScript wird die Entwicklung der Web-Technologie fördern. Beide werden die Anwendungsszenarien in ihren jeweiligen Bereichen weiter erweitern und mehr Durchbrüche in der Leistung erzielen.

Sowohl Python als auch JavaScripts Entscheidungen in Entwicklungsumgebungen sind wichtig. 1) Die Entwicklungsumgebung von Python umfasst Pycharm, Jupyternotebook und Anaconda, die für Datenwissenschaft und schnelles Prototyping geeignet sind. 2) Die Entwicklungsumgebung von JavaScript umfasst Node.JS, VSCODE und WebPack, die für die Entwicklung von Front-End- und Back-End-Entwicklung geeignet sind. Durch die Auswahl der richtigen Tools nach den Projektbedürfnissen kann die Entwicklung der Entwicklung und die Erfolgsquote der Projekte verbessert werden.


Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Heiße Werkzeuge

mPDF
mPDF ist eine PHP-Bibliothek, die PDF-Dateien aus UTF-8-codiertem HTML generieren kann. Der ursprüngliche Autor, Ian Back, hat mPDF geschrieben, um PDF-Dateien „on the fly“ von seiner Website auszugeben und verschiedene Sprachen zu verarbeiten. Es ist langsamer und erzeugt bei der Verwendung von Unicode-Schriftarten größere Dateien als Originalskripte wie HTML2FPDF, unterstützt aber CSS-Stile usw. und verfügt über viele Verbesserungen. Unterstützt fast alle Sprachen, einschließlich RTL (Arabisch und Hebräisch) und CJK (Chinesisch, Japanisch und Koreanisch). Unterstützt verschachtelte Elemente auf Blockebene (wie P, DIV),

Sicherer Prüfungsbrowser
Safe Exam Browser ist eine sichere Browserumgebung für die sichere Teilnahme an Online-Prüfungen. Diese Software verwandelt jeden Computer in einen sicheren Arbeitsplatz. Es kontrolliert den Zugriff auf alle Dienstprogramme und verhindert, dass Schüler nicht autorisierte Ressourcen nutzen.

MantisBT
Mantis ist ein einfach zu implementierendes webbasiertes Tool zur Fehlerverfolgung, das die Fehlerverfolgung von Produkten unterstützen soll. Es erfordert PHP, MySQL und einen Webserver. Schauen Sie sich unsere Demo- und Hosting-Services an.

SAP NetWeaver Server-Adapter für Eclipse
Integrieren Sie Eclipse mit dem SAP NetWeaver-Anwendungsserver.

VSCode Windows 64-Bit-Download
Ein kostenloser und leistungsstarker IDE-Editor von Microsoft
