Inhaltsverzeichnis
Vorwort
Implementierungslösung von GraphQL in Spring Boot
Heim Java javaLernprogramm Wie SpringBoot GraphQL zur Entwicklung einer Web-API verwendet

Wie SpringBoot GraphQL zur Entwicklung einer Web-API verwendet

May 13, 2023 am 10:52 AM
api graphql springboot

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]

}


type Author {
id:Int
firstName:String

lastName:String

E-Mail:String
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.

Der RuntimeWiringConfigurer ähnelt der Serviceschicht in Spring, die den Kern der Implementierung grundlegender Daten darstellt.

Das Folgende ist ein einfaches Beispiel:

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-graphql</artifactId>
        </dependency>
Nach dem Login kopieren

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")))
    }
}
Nach dem Login kopieren

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 senden

POST http://localhost:8080/graphql/query

Inhaltstyp: application/json

{
Autor(id: 1) {

id
Vorname
Nachname

Geburtsdatum

}
}

### POST-Anfrage mit JSON-Text senden
POST http://localhost:8080 /graphql/query
Content-Type: application/json

{

allAuthors {

id
Vorname
Nachname

Geburtsdatum

}
}


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!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Vergleich und Differenzanalyse zwischen SpringBoot und SpringMVC Vergleich und Differenzanalyse zwischen SpringBoot und SpringMVC Dec 29, 2023 am 11:02 AM

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? Wie kann ich Daten durch Aufrufen der API-Schnittstelle in einem PHP-Projekt crawlen und verarbeiten? Sep 05, 2023 am 08:41 AM

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.

React API Call Guide: So interagieren und übertragen Sie Daten mit der Backend-API React API Call Guide: So interagieren und übertragen Sie Daten mit der Backend-API Sep 26, 2023 am 10:19 AM

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 API-Nutzungshandbuch: Erkundung der Datenschnittstellentechnologie Oracle API-Nutzungshandbuch: Erkundung der Datenschnittstellentechnologie Mar 07, 2024 am 11:12 AM

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

Speichern Sie API-Daten mit Python im CSV-Format Speichern Sie API-Daten mit Python im CSV-Format Aug 31, 2023 pm 09:09 PM

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: Erreichen einer nahtlosen Kommunikation zwischen Systemen Analyse der Oracle API-Integrationsstrategie: Erreichen einer nahtlosen Kommunikation zwischen Systemen Mar 07, 2024 pm 10:09 PM

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

So gehen Sie mit Laravel-API-Fehlerproblemen um So gehen Sie mit Laravel-API-Fehlerproblemen um Mar 06, 2024 pm 05:18 PM

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 entwickeln Sie eine einfache CRUD-API mit MongoDB So entwickeln Sie eine einfache CRUD-API mit MongoDB Sep 19, 2023 pm 12:32 PM

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

See all articles