So erstellen Sie eine REST-API mit SpringMVC in Java

Inhaltsverzeichnis

Dieses Tutorial wird lehren So erstellen Sie eine kurze REST-API in Java mit SpringMVC. Wir werden die GET- und POST-Anweisungen, die DELETE- und PUT-Operationen sehen, es wäre praktisch für Sie, sie zu üben. Bevor Sie beginnen, empfehle ich Ihnen, Eclipse STS herunterzuladen, eine gute IDE zum Programmieren in Spring, die uns die Erstellung unserer Projekte erheblich erleichtert:

ECLIPSE STS HERUNTERLADEN

NotizSie müssen Java installiert haben, wenn Sie die Version 1.8 besser wählen.

Einige allgemeine Dinge, die Sie beachten sollten

  • Wir haben einen Controller, der für die Bearbeitung der gestellten Anfragen verantwortlich ist, die Klasse, die als Controller fungiert, muss mit angegeben werden @RestController.
  • Für jede URL müssen wir eine Methode implementieren. Jede Methode muss mit der Anmerkung einhergehen @RequestMapping mit der URL, an die es weitergeleitet wird, und der Methode der Anfrage und gibt auch das gewünschte Objekt zurück.

Jetzt werden wir ein Beispiel sehen, darin haben wir eine Person-Klasse und einen Controller für die PersonController-Person.

1. Starten Sie das Projekt
Wir öffnen STS und geben ein neues Projekt "Frühlingsprojektstarter“, Wir konfigurieren die Optionen und den Namen und geben Nächste, ich werde es belassen, wie Sie im folgenden Bild sehen können:

VERGRÖSSERN

[color = rgb (169,169,169)] Zum Vergrößern auf das Bild klicken [/color]

Auf dem nächsten Bildschirm, der angezeigt wird, müssen wir die Optionen auswählen, die wir verwenden möchten, wir werden alles unberührt lassen und klicken auf Fertig und wir das Projekt bereits erstellt haben, haben wir die folgende Struktur (Beachten Sie, dass ich die 2 Klassen, die wir verwenden werden, bereits erstellt habe und die Erfassung nicht von STS stammt):

Das werden wir in sehen src / main / java Innerhalb des Pakets ist bereits eine Klasse erstellt und sie enthält den folgenden Code:

 @SpringBootApplication public class ExampleApiApplication {public static void main (String [] args) {SpringApplication.run (Application.class, args); }} 
Wir lassen diese Klasse unverändert, sie hilft uns, unser Beispiel auszuführen. Jetzt lass uns in die Klasse gehen pom.xml und wir prüfen, ob wir den folgenden Code haben, wenn nicht, fügen wir ihn einfach hinzu:
 org.springframework.boot spring-boot-starter-parent 1.3.3.RELEASE org.springframework.boot spring-boot-starter-web 
NotizMöglicherweise müssen Sie Ihr Projekt beim Speichern dieser Datei mit Maven aktualisieren, in STS haben Sie die Möglichkeit dazu (ALT + F5).

Jetzt werden wir die Klassen sehen, die wir erstellen, wie sie aussehen.

2. Personenklasse
Zuerst setzen wir den Code und dann wird er erklärt.

 öffentliche Klasse Perona {private lange ID = -1; privater String-Name; privates Alter; öffentliche Person () {} öffentliche Person (String name, int age) {super (); this.name = Name; this.age = Alter; } public String getName () {Rückgabename; } public void setName (Stringname) {this.name = name; } public int getAge () {Rückgabealter; } public void setAge (int e) {age = e; } public long getId () {Rückgabe-ID; } public void setId (lange ID) {this.id = id; }} 
Diese Klasse ist nicht schwer zu verstehen, Sie müssen nur wissen, dass wir das Get und Set jedes Attributs und auch den Konstruktor ohne Parameter benötigen, da sie vom Controller verwendet werden, daher vermeiden wir die Arbeit mit vielen Parametern und Spring wird diese injizieren und das Objekt erstellen.

3. PersonaController-Klasse
Auch hier ist der erste Teil der Code und dann die Erklärung.

 @RestController öffentliche Klasse PersonController {private Map people = new ConcurrentHashMap (); privat Lange usedID = 0; @RequestMapping (value = "/ people", method = RequestMethod.GET) public Collection damePeople () {return people.values ​​(); } @RequestMapping (value = "/ people", method = RequestMethod.POST) @ResponseStatus (HttpStatus.CREATED) öffentliche Person addPersona (@RequestBody Person p) {idUsado ++; p.setId (idUsado); people.put (idUsado, p); Rückkehr p; } @RequestMapping (value = "/ people / {id}", method = RequestMethod.GET) public ResponseEntity getPersona (@PathVariable lange ID) {Person p = people.get (id); if (p! = null) return new ResponseEntity (p, HttpStatus.OK); neue ResponseEntity zurückgeben (HttpStatus.NOT_FOUND); }}
Was Wir werden keine Datenbank verwenden Wir erstellen eine Karte, wenn wir eine Datenbank hätten, würde diese durch ihr Repository ersetzt, und die Variable idUsado wäre nicht erforderlich, aber das Hinzufügen von DB ist nicht das Ziel des Tutorials.
Innerhalb der Anmerkung RequestMapping Wir sehen, dass wir auch die Methode haben, standardmäßig ist es GET, also wäre es in diesen Methoden nicht notwendig, sie hinzuzufügen, aber es schadet nicht.

Wir haben 3 Methoden
gib mir LeuteWas es tun wird, ist, alle Leute zurückzugeben, die wir auf unserer Karte haben (people.values ​​()). Es hat keine größeren Komplikationen.

Person hinzufügenEs wird verwendet, um eine Person zu unserer Sammlung hinzuzufügen. Sie können sehen, dass der Parameter, den wir haben, mit Anmerkungen versehen ist @RequestBody, ist das, was wir vom Client erhalten (der Hauptteil der Anfrage). Die Anmerkung

 @ResponseStatus (HttpStatus.CREATED)
Es ist so eingestellt, dass es eine 201 als Antwortcode zurückgibt. Im Rumpf ist zu sehen, wie sich die id bei jedem Aufruf um eins erhöht, so dass sie eindeutig ist und wir sie der Person zuordnen, dann fügen wir sie der Karte hinzu und schließlich ist der Antwortkörper der Funktion gleich Person.

getPersonDie angefragte Person wird über die ID an uns zurückgesendet. Hier haben wir, dass die Funktion zurückgibt

 AntwortEntität
Dies ist so, um a . zurückzugeben Okay und die Person, falls vorhanden oder a NICHT GEFUNDEN. Der Parameter hier ist mit annotiert @PfadVariable, dieser Parameter hat den Wert {Ich würde} die Sie in RequestMapping sehen und die wir in die URL einfügen, zum Beispiel / people / 1 ruft diese Funktion mit der ID in 1 auf.

NotizSie können die RequestMapping-Anmerkung direkt über der Klasse platzieren, wie ich unten zeige:

 @RestController @RequestMapping ("/ people") öffentliche Klasse PersonaController {…}
Wenn Sie dies tun, vermeiden Sie, dass Personen in jeder Methode wiederholt werden, und Sie können einfach Folgendes angeben:
 @RequestMapping (Wert = "/", Methode = RequestMethod.GET) 
Wenn es wenige Methoden gibt, lohnt es sich vielleicht nicht, aber für viele ist es sicherlich die beste Option.

Nun, wir haben diese kleine API fertiggestellt.

4. So führen Sie das Projekt durch
Um das Projekt auszuführen, wählen Sie Ihr Projekt aus, in der Menüleiste sehen Sie ein weißes Dreieck in einem grünen Kreis (der übliche Ablauf in elclipse), klicken Sie auf das kleine schwarze Dreieck rechts, gehen Sie zu Runen und klicke auf Spring Boot-App.

VERGRÖSSERN

[color = # a9a9a9] Zum Vergrößern auf das Bild klicken [/color]

Wenn Sie nun das Beispiel erweitern möchten, empfehle ich, die Methoden zum Bereitstellen von Anfragen hinzuzufügen. STELLEN Ja LÖSCHEN, müssen Sie die ID der zu ändernden Person kennen, damit Sie sie wie in der letzten Funktion erhalten und in PUT müssen Sie auch die Daten senden, wie wir es in der POST-Funktion getan haben.

Falls Sie es wollen Testen Sie Ihre REST-API ohne einen Client programmieren zu müssen, um Anfragen zu stellen du kannst postbote benutzen, es ist ein Google Chrome-Plug-in:

Hier können Sie die gewünschte Art der Anfrage auswählen, die Kopfzeilen und den zu sendenden Text eingeben, falls eine Authentifizierung erforderlich ist usw. Es ist ein sehr komplettes Programm.

VERGRÖSSERN

[color = # a9a9a9] Zum Vergrößern auf das Bild klicken [/color]

Zum Beispiel eine Get-Anfrage, um alle Personen in der API auf localhost laufen zu lassen und Port 80 abzuhören:

Hat dir dieses Tutorial gefallen und geholfen?Sie können den Autor belohnen, indem Sie diesen Knopf drücken, um ihm einen positiven Punkt zu geben

Sie werden die Entwicklung der Website helfen, die Seite mit Ihren Freunden teilen

wave wave wave wave wave