Wie SpringBoot GraphQL zur Entwicklung einer Web-API verwendet
Vorwort
Die traditionelle Restful-API weist viele Probleme auf. Erstens kann sie die zurückgegebenen Felder nicht steuern und das Front-End kann die Rückgabeergebnisse des Back-Ends nicht vorhersagen führt zu mehreren Anfragen. GraphQL ist eine API-Abfragesprache, die auf diesem Hintergrund basiert. Im Vergleich zur herkömmlichen Restful-API bietet sie die folgenden Vorteile:
Flexibilität: GraphQL kann im Gegensatz zu RESTful Daten flexibel entsprechend den Anforderungen des Clients abfragen. strukturierte Daten.
Netzwerkanfragen reduzieren: GraphQL ermöglicht es Clients, mehrere Ressourcen in einer Anfrage abzurufen, was dazu beiträgt, die Anzahl der Netzwerkanfragen zu reduzieren und die Leistung zu verbessern.
Starke Typisierung: GraphQL verfügt über ein starkes Typisierungssystem, das es Clients ermöglicht, Fehler in Abfragen zur Kompilierungszeit zu erkennen, was zur Reduzierung von Laufzeitfehlern beiträgt.
Cache-fähig: GraphQL ist zwischenspeicherbar, was bedeutet, dass der Server die Ergebnisse einer Abfrage zwischenspeichern kann, wodurch Leistung und Skalierbarkeit verbessert werden.
Dokumentation: GraphQL verfügt über die Fähigkeit zur Selbstdokumentation, sodass Entwickler die Struktur und Funktionen der API schnell verstehen können.
Implementierungslösung von GraphQL in Spring Boot
Wenn die Back-End-Sprache Java ist, dann ist GraphQL Java die Basisbibliothek für die Implementierung von GraphQL. Darüber hinaus hat Spring GraphQL integriert. Wenn Spring im Projekt verwendet wird, ist Spring GraphQL eher zu empfehlen.
Die Entwicklung von Spring GraphQL ist im Allgemeinen in die folgenden Schritte unterteilt:
Spring GraphQL-Abhängigkeiten hinzufügen
Spring GraphQL-Abhängigkeiten in Ihrem Projekt hinzufügen. Sie können Abhängigkeiten über Build-Tools wie Maven oder Gradle hinzufügen. Wenn Sie beispielsweise Maven verwenden, können Sie die folgende Abhängigkeit „GraphQL-Schema definieren“ in Ihrer Anwendung hinzufügen. Schema definiert abfragbare Typen und Felder. Sie können ein Schema mit SDL (Schema Definition Language) oder programmgesteuert definieren.
Für Spring Boot-Projekte wird die Schemadatei im Verzeichnis resources/graphql/ abgelegt und dem Dateinamen wird graphqls angehängt. Das Folgende ist ein einfaches schema.graphqls, das ich definiert habe.
Es gibt zwei Abfrageimplementierungen an: „author(id:Int)“ bedeutet die Abfrage des Autors anhand der ID, und „allAuthors“ bedeutet die Abfrage des Autor-Arrays.
schema {query: Query
}type Query {
}
author(id:Int): Author
allAuthors: [Author]lastName:String
type Author {
id:Int
firstName:StringE-Mail:String
Der RuntimeWiringConfigurer ähnelt der Serviceschicht in Spring, die den Kern der Implementierung grundlegender Daten darstellt.
Geburtsdatum:String
}
Die Implementierung von RuntimeWiringConfigurer ist der Kern der Implementierung von GraphQL zum Abrufen von Daten. Mit GraphQL können Persistenzschicht-Frameworks wie Mybatis/Jpa nicht direkt entfernt werden Daten aus der Datenbankunterstützung beziehen.
Das Folgende ist ein einfaches Beispiel:
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-graphql</artifactId> </dependency>
Hier werden zwei DataFetcher-Objekte innerhalb der configure-Methode definiert, um anzugeben, wie Autor und allAuthors Daten abfragen. Es ist ersichtlich, dass die Daten weiterhin über JPA abgefragt werden.
GraphQL-Controller definieren
Wir definieren GraphQLController, um Eingabeparameter von Webanfragen zu empfangen. Das Beispiel lautet wie folgt:
@Component public class AuthorWiring implements RuntimeWiringConfigurer { private final AuthorRepository authorRepository; public AuthorWiring(AuthorRepository authorRepository) { this.authorRepository = authorRepository; } @Override public void configure(RuntimeWiring.Builder builder) { builder.type("Query", typeWiring -> typeWiring .dataFetcher("allAuthors", environment -> authorRepository.findAll()) .dataFetcher("author", environment -> authorRepository.getReferenceById(environment.getArgument("id"))) } }
Das GraphQL-Objekt im Code ist der Einstiegspunkt für die Ausführung von Abfragen, aber GraphQL verfügt nur über einen privaten Konstruktor Es kann nicht direkt injiziert werden. GraphQL-Objekte müssen durch Injektion von GraphQlSource abgerufen werden.
Beachten Sie, dass wir in GraphQL nur String zum Empfangen von Parametern verwenden können und keine Modellobjekte verwenden können. Dies liegt daran, dass die Graph-Anforderungsparameter keine JSON-Strukturen sind.
Diagrammanfrage testen
Wir erstellen eine graphql.http-Datei, um HTTP-Anfragen in der Idee auszuführen
### POST-Anfrage mit JSON-Body sendenPOST http://localhost:8080/graphql/query
Inhaltstyp: application/json{Autor(id: 1) {id
Geburtsdatum
Vorname
Nachname}
allAuthors {
}
### POST-Anfrage mit JSON-Text senden
POST http://localhost:8080 /graphql/query
Content-Type: application/json
{id
Geburtsdatum
Vorname
Nachname}
}
Führen Sie die Abfrage von Autor (ID: 1) aus und Sie können die normalen Rückgabeergebnisse sehen. Wenn wir nur die Felder „Vorname“ und „Nachname“ benötigen, entfernen Sie einfach die ID und das Geburtsdatum aus den Eingabeparametern der Anfrage, ohne den Back-End-Code zu ändern.
Das obige ist der detaillierte Inhalt vonWie SpringBoot GraphQL zur Entwicklung einer Web-API verwendet. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



SpringBoot und SpringMVC sind beide häufig verwendete Frameworks in der Java-Entwicklung, es gibt jedoch einige offensichtliche Unterschiede zwischen ihnen. In diesem Artikel werden die Funktionen und Verwendungsmöglichkeiten dieser beiden Frameworks untersucht und ihre Unterschiede verglichen. Lassen Sie uns zunächst etwas über SpringBoot lernen. SpringBoot wurde vom Pivotal-Team entwickelt, um die Erstellung und Bereitstellung von Anwendungen auf Basis des Spring-Frameworks zu vereinfachen. Es bietet eine schnelle und einfache Möglichkeit, eigenständige, ausführbare Dateien zu erstellen

Wie kann ich Daten durch Aufrufen der API-Schnittstelle in einem PHP-Projekt crawlen und verarbeiten? 1. Einführung In PHP-Projekten müssen wir häufig Daten von anderen Websites crawlen und diese Daten verarbeiten. Viele Websites bieten API-Schnittstellen, und wir können Daten durch Aufrufen dieser Schnittstellen abrufen. In diesem Artikel wird erläutert, wie Sie mit PHP die API-Schnittstelle zum Crawlen und Verarbeiten von Daten aufrufen. 2. Ermitteln Sie die URL und die Parameter der API-Schnittstelle. Bevor Sie beginnen, müssen Sie die URL der Ziel-API-Schnittstelle und die erforderlichen Parameter ermitteln.

ReactAPI-Aufrufanleitung: So interagieren Sie mit der Backend-API und übertragen Daten an diese. Übersicht: In der modernen Webentwicklung ist die Interaktion mit und die Übertragung von Daten an die Backend-API eine häufige Anforderung. React bietet als beliebtes Front-End-Framework einige leistungsstarke Tools und Funktionen, um diesen Prozess zu vereinfachen. In diesem Artikel wird erläutert, wie Sie mit React die Backend-API aufrufen, einschließlich grundlegender GET- und POST-Anfragen, und es werden spezifische Codebeispiele bereitgestellt. Installieren Sie die erforderlichen Abhängigkeiten: Stellen Sie zunächst sicher, dass Axi im Projekt installiert ist

Oracle ist ein weltbekannter Anbieter von Datenbankmanagementsystemen und seine API (Application Programming Interface) ist ein leistungsstarkes Tool, das Entwicklern hilft, einfach mit Oracle-Datenbanken zu interagieren und diese zu integrieren. In diesem Artikel befassen wir uns mit dem Oracle API-Nutzungsleitfaden, zeigen den Lesern, wie sie die Datenschnittstellentechnologie während des Entwicklungsprozesses nutzen können, und stellen spezifische Codebeispiele bereit. 1.Orakel

In der Welt der datengesteuerten Anwendungen und Analysen spielen APIs (Application Programming Interfaces) eine entscheidende Rolle beim Abrufen von Daten aus verschiedenen Quellen. Wenn Sie mit API-Daten arbeiten, müssen Sie die Daten häufig in einem Format speichern, das leicht zugänglich und einfach zu bearbeiten ist. Ein solches Format ist CSV (Comma Separated Values), mit dem tabellarische Daten effizient organisiert und gespeichert werden können. In diesem Artikel wird der Prozess des Speicherns von API-Daten im CSV-Format mithilfe der leistungsstarken Programmiersprache Python erläutert. Indem wir die in diesem Leitfaden beschriebenen Schritte befolgen, erfahren wir, wie wir Daten aus der API abrufen, relevante Informationen extrahieren und sie zur weiteren Analyse und Verarbeitung in einer CSV-Datei speichern. Tauchen wir ein in die Welt der API-Datenverarbeitung mit Python und erschließen wir das Potenzial des CSV-Formats

Analyse der Oracle API-Integrationsstrategie: Um eine nahtlose Kommunikation zwischen Systemen zu erreichen, sind spezifische Codebeispiele erforderlich. Im heutigen digitalen Zeitalter müssen interne Unternehmenssysteme miteinander kommunizieren und Daten austauschen, und Oracle API ist eines der wichtigen Tools, um eine nahtlose Kommunikation zu erreichen Kommunikation zwischen Systemen. Dieser Artikel beginnt mit den grundlegenden Konzepten und Prinzipien von OracleAPI, untersucht API-Integrationsstrategien und gibt schließlich spezifische Codebeispiele, um den Lesern zu helfen, OracleAPI besser zu verstehen und anzuwenden. 1. Grundlegende Oracle-API

Titel: Wie man mit Laravel-API-Fehlerproblemen umgeht, sind spezifische Codebeispiele erforderlich. Bei der Entwicklung von Laravel treten häufig API-Fehler auf. Diese Fehler können verschiedene Ursachen haben, z. B. Logikfehler im Programmcode, Probleme bei Datenbankabfragen oder Fehler bei externen API-Anfragen. Der Umgang mit diesen Fehlerberichten ist ein zentrales Thema. In diesem Artikel wird anhand spezifischer Codebeispiele gezeigt, wie Laravel-API-Fehlerberichte effektiv verarbeitet werden. 1. Fehlerbehandlung in Laravel

So verwenden Sie MongoDB zum Entwickeln einer einfachen CRUDAPI. In der modernen Webanwendungsentwicklung sind CRUD-Operationen (Hinzufügen, Löschen, Ändern, Abfragen) eine der häufigsten und wichtigsten Funktionen. In diesem Artikel stellen wir die Entwicklung einer einfachen CRUD-API mithilfe der MongoDB-Datenbank vor und stellen spezifische Codebeispiele bereit. MongoDB ist eine Open-Source-NoSQL-Datenbank, die Daten in Form von Dokumenten speichert. Im Gegensatz zu herkömmlichen relationalen Datenbanken verfügt MongoDB nicht über ein vordefiniertes Schema
