[JAVA] Ich habe im Frühjahr einen Restful-Server und -Client erstellt.

Ich habe versucht, etwas namens API ein wenig zu studieren.

Es scheint in letzter Zeit eine wichtige Kommunikationsmethode für die Kommunikation zwischen Servern zu sein. Nun, in letzter Zeit vertreibt jeder große Dienst API, also habe ich ein wenig studiert.

Ich habe eine Stunde lang nicht gelernt, also akzeptiere ich die Bearbeitung!

Über das Ding namens API

Die API kann die folgenden Anforderungen an den Server senden.

Methode Was du tun kannst
GET Ressourcen abrufen
POST Erstellen untergeordneter Ressourcen, Hinzufügen von Daten zu Ressourcen und andere Verarbeitung
PUT Ressourcen aktualisieren, Ressourcen erstellen
DELETE Ressource löschen
HEAD Ressourcenkopf(Metadaten abrufen)
OPTIONS Holen Sie sich Methoden, die von einer Ressource unterstützt werden
TRACE Bestätigung des Proxy-Betriebs
CONNECT Wechseln Sie zur Tunnelverbindung mit Proxy-Verhalten

Persönlich ist das einzige, was ich dabei benutze, GET POST. Wenn Sie mehr über das Geschäft erfahren möchten, überprüfen Sie bitte mehr.

Stellen Sie die API bereit.

Dieses Mal erstellen wir die einfachste API, die API, um JSON mit der GET-Methode abzurufen.

Zunächst von dem Dienst, der JSON bereitstellt.

(Ich werde den Spring MVC-Controller nicht mehr erklären. ヾ (.> ﹏ <.) ノ)

APIServiceController.java




import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import com.TsugaruInfo.formmodel.RegisterForm;

@RequestMapping(value = "/APITransport")
@RestController
public class APIServiceController {
	
	@RequestMapping(value="APIAccessParametors",produces="application/json;charset=UTF-8")
	public String APIAccessParametors() {
		String APIResponseJson = 
			"{\"user\": [\"AtsuAtsuUdon\", \"user\", true],"
			+ " \"toot\": [\"Es ist ein heißer Udon!\"]"
			+ "CWInfo: {CWSituationIs:[true, \"Etwas, das ich verstecken möchte\"], \"publicToot\", \"something\"]}";
		
		return APIResponseJson;
	}
}

Wie Sie sehen können, wird nur die Zeichenfolge zurückgegeben. Wenn Sie zwingen, Punkte zu erhöhen ** @RestController und geben Sie eindeutig an, dass es sich um einen Restful-Service handelt. ** ** ** Da japanische Zeichenketten geliefert werden, @RequestMapping produces="application/json;charset=UTF-8" Es ist angegeben als.

RestClient erstellen.

Rufen wir nun den Client ab, der dies über die HTTP-Kommunikation empfängt. Anscheinend hat Java eine Standard-JAX-RS-API ** Rest Service und Client-Spezifikationen. Als Implementierung gibt es eine praktische Bibliothek namens ** jersey **.

Natürlich wird diese Bibliothek auch von der ** Spring IO Platform ** versioniert. Wenn Sie es nicht wissen, ggt (ry) Lassen Sie uns diese Bibliothek sofort installieren. ** [20190115] Nachtrag Die Spring IO Platform hat die Entwicklung abgeschlossen (T_T) Bitte verwenden Sie Spring Boot, um die Spring-Bibliothek zu lösen **

pom.xml


		<!-- jersey -->
		<dependency>
			<groupId>org.glassfish.jersey.core</groupId>
			<artifactId>jersey-client</artifactId>
		</dependency>
		<dependency>
			<groupId>org.glassfish.jersey.ext</groupId>
			<artifactId>jersey-spring3</artifactId>
		</dependency>
		
		<!-- Jackson -->
		<dependency>
			<groupId>com.fasterxml.jackson.core</groupId>
			<artifactId>jackson-databind</artifactId>
		</dependency>

Die folgende Bibliothek ist eine JSON- und XML-Parser-Bibliothek namens Jackson. Es konvertiert die empfangene JSON-Zeichenfolge in ein Objekt.

Nun erstellen wir die Client-Seite.

APIRecieverController.java


@RequestMapping(value = "/APITransport")
@Controller
public class APIRecieverController {

	@RequestMapping(value="recieverClient")
	public ModelAndView recieverClient(Model model) {
		ModelAndView mv = new ModelAndView("APIRecieverView");
		
//Geben Sie die HTTP-Kommunikationseinstellungen und die URL an
//Wenn es sich um eine Post-Methode handelt, fügen Sie den Anforderungshauptteil hier ein
//HTTP-Header können ebenfalls enthalten sein
		Client client = ClientBuilder.newClient();
		WebTarget target = client.target("http://localhost:8080")
			    .path("/WebAquarium3.1/APITransport/APIAccessParametors");
			 
		String result = "";
//Versuchen Sie die HTTP-Kommunikation
			try {
			    result = target.request().get(String.class);
			} catch (BadRequestException e) {
			    System.out.println("Empfang fehlgeschlagen > <");
			    throw e;
			}
//Senden Sie den empfangenen JSON an die Ansicht, wie sie ist.
//Ich werde diesmal nicht mit Jackson wickeln
		mv.addObject("APIMessage", result);
		return mv;
	}
}

Grundsätzlich ist es wie im Kommentar geschrieben. ** 1. Geben Sie die API-URL an ** ** 2. Werfen Sie eine Anfrage **

Verwenden Sie die API in der Prozedur. Erstellen Sie abschließend eine Ansicht, in der dies angezeigt wird. Es heißt HTML, aber das ist natürlich .jsp

APIRecieverView.html


<%@ page contentType="text/html;charset=UTF-8" pageEncoding="UTF-8" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="sec" uri="http://www.springframework.org/security/tags" %>
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>

<head>
<meta content="ja" http-equiv="Content-Language" />
<meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
<title>HTTPReciever</title>

<body>

<p>Die empfangene Nachricht der API lautet</p>
<p>${APIMessage}</p>
<p>ist.</p>

</body>

</html>

Erhalten Sie einfach den Wert mit **% APIMessage% **. Es ist einfach. Lass es uns laufen.

image.png

Ich konnte die API mithilfe der HTTP-Kommunikation ordnungsgemäß verwenden.

Zusammenfassung

Um ehrlich zu sein, kann das allein nicht so auffällig sein. Wenn es darum geht, Anmeldeinformationen in Kombination mit OAuth2 und Spring Security zu erwerben, wird dies meiner Meinung nach eine ziemlich leistungsfähige Funktion. (Es scheint, dass das Lernen in diesem Ausmaß das erste sein wird)

Derzeit erfolgt die HTTP-Kommunikation in Java. Es war eine Studie, die das Gefühl hatte, die Grundlagen festzuhalten.

Referenz-URL Jersey Client API: So erstellen Sie einen Web API Client in Java http://www.techscore.com/blog/2016/09/20/jersey-client-api/ POST in Jersey Client https://qiita.com/noobar/items/a96e07e441241b1e0215

Recommended Posts

Ich habe im Frühjahr einen Restful-Server und -Client erstellt.
[Ruby] Ich habe einen einfachen Ping-Client erstellt
Ich habe eine Funktion zum Registrieren von Bildern bei der API in Spring Framework erstellt. Teil 2 (Client Edition)
Ich habe ein Programm zur Beurteilung von Primzahlen in Java erstellt
Ich habe eine Ruby-Erweiterungsbibliothek in C erstellt
Ich habe ein einfaches Berechnungsproblemspiel in Java gemacht
[Ruby] Ich habe einen Crawler mit Anemone und Nokogiri gemacht.
Was ich beim Erstellen eines Servers in Java gelernt habe
Ich habe eine Funktion zum Registrieren von Bildern bei der API in Spring Framework erstellt. Teil 1 (API Edition)
Ich habe ein Roulette in Java gemacht.
Ich habe eine Chat-App erstellt.
Hat die Serverseite des Online-Kartenspiels gemacht ⑤
Ich habe die Serverseite des Online-Kartenspiels gemacht made
[Anfänger] Ich habe ein Programm zum Verkauf von Kuchen in Java erstellt
Ich habe die Serverseite des Online-Kartenspiels gemacht made
Ich habe JAX-RS ausprobiert und mir das Verfahren notiert
Ich habe die Serverseite des Online-Kartenspiels gemacht made
Ich habe die Serverseite des Online-Kartenspiels gemacht made
Ich habe einen RESAS-API-Client in Java erstellt
Ich habe mit Spring Boot ein einfaches MVC-Beispielsystem erstellt
Ich habe das Spring Boot-Einführungshandbuch [Erstellen eines RESTful-Webdiensts] ausprobiert.
Ich habe versucht, ein Formular mit Spring MVC und Jasper Reports 1/3 (Jasper Reports-Einstellungen) zu drucken.
Ich habe ein PDF mit Java erstellt.
Ich habe eine shopify App @java erstellt
Ich habe am JJUG CCC 2019 Spring teilgenommen
Ich habe mit Swing eine GUI erstellt
Ich habe kürzlich eine JS-App in der gemunkelten Dart-Sprache erstellt
[Wire Mock] Ich möchte einen Stub / Mock-Server in Java einrichten und E2E-Tests durchführen.
Ich habe ein einfaches Suchformular mit Spring Boot + GitHub Search API erstellt.
Implementieren Sie den gRPC-Client in Ruby
Ich habe ein Routensuchprogramm in TDD geschrieben und versucht, es umzugestalten
Ich habe eine einfache Empfehlungsfunktion erstellt.
Ich habe eine Anmerkung in Java gemacht.
Spring Boot Erste Schritte [Konsumieren eines RESTful-Webdienstes]
Ich habe eine passende App erstellt (Android App)
Ich habe ein Tool zur Generierung von package.xml erstellt.
[Android] Ich habe eine Schrittzähler-App erstellt.
Erstellen Sie mit Intellij ein Spring Boot-Projekt und beenden Sie es sofort nach dem Start
Ich habe versucht, ein Formular mit Spring MVC und Jasper Reports 2/3 (Formularvorlagenerstellung) zu drucken.
Ich hatte Probleme bei der Arbeit und habe ein IntelliJ-Plug-In erstellt
Ich kann Pivotal tc server Developer Edition in Spring Tool Suite nicht finden
Server mit Spring Gradle ausführbar So erstellen Sie JAR und WAR
Ich habe eine Lambda-Funktion in Java geschrieben und mit SAM bereitgestellt
Ich habe eine Klasse erstellt, die JUMAN und KNP aus Java verwenden kann
[LINE BOT] Ich habe einen Ramen BOT mit Java (Maven) + Heroku + Spring Boot (1) gemacht.
"Lehrer, ich möchte im Frühjahr eine Anmeldefunktion implementieren" ① Hallo Welt
Ich habe ein Kalenderproblem mit Ruby versucht
Ich habe einen Öko-Server mit Scala gemacht
Ich habe mit Ruby einen riskanten Würfel gemacht
Ich habe ein Plug-In für IntelliJ IDEA erstellt
Ich habe eine Janken App mit Kotlin gemacht
Ich habe eine Taschenrechner-App für Android erstellt
Ich war süchtig nach Spring's @Transactional
Ich habe ein neues Java-Bereitstellungstool erstellt
Ich habe eine Janken App mit Android gemacht
[* Java *] Ich habe am JJUG CCC 2019 Spring teilgenommen
Ich habe versucht, eine Formel in Javadoc einzubetten
Als ich in Spring Boot eine Sitzungsbereichs-Bean definierte, verhielt sie sich seltsam und musste angepasst werden.