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!
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.
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.
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.
Ich konnte die API mithilfe der HTTP-Kommunikation ordnungsgemäß verwenden.
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