SolisImages - stock.adobe.com
Fünf Beispiele für RESTful-Webservice-Clients für Entwickler
RESTful-Webservice-Clients existieren in einer Vielzahl von Ausprägungen und Größen. In diesem Artikel werden fünf Clients vorgestellt, die Java-Entwickler kennen sollten.
Wie greift ein Entwickler auf einen RESTful-Webservice zu? Das hängt davon ab, was er damit erreichen möchte. Wenn man nur die Konnektivität testen will, ist ein Terminal-Dienstprogramm wie Curl ein großartiger Client. Wenn man das JSON überprüfen möchten, das ein Dienst an einen zurückgibt, ist ein browserbasiertes Plug-in wahrscheinlich besser geeignet. Und wenn man sich mitten in der Entwicklung befindet, muss man wahrscheinlich JAX-RS, Spring oder ein ähnliches Framework verwenden.
RESTful-Webservice-Clients gibt es in einer Vielzahl von Ausprägungen und Größen. Hier sind fünf, die jeder Java-Entwickler kennen sollte.
Curl
Curl (Client for URLs, cURL) ist ein Unix-Dienstprogramm, mit dem Entwickler URLs von einer Befehlszeile aus aufrufen können, um Informationen über die Ergebnisse zu erzeugen. Die Ergebnisse beinhalten Header-Daten, XML, JSON und verschiedene andere Parameter und können im Befehlsfenster als Klartext dargestellt werden. Linux-Benutzer sind in der Regel mit Curl vertraut, da es in den meisten Distributionen enthalten ist.
Auf der anderen Seite ist Curl nicht Teil des Windows-Betriebssystems, so dass Microsoft-Benutzer dazu neigen, weniger komfortable Curl URLs zu verwenden. Standardmäßige Git-Installationen beinhalten jedoch immer Bash, um Befehle für verteilte Versionskontrollsysteme auszugeben. Da immer mehr Windows-Benutzer Git und GitHub verwenden, stehen auch immer mehr Entwicklern Curl-Befehle zur Verfügung.
Die Syntax, um Curl als RESTful-Webservice-Client für eine einfache GET-Anfrage zu verwenden, ist:
$ curl -X GET --header "text:Easter" --header "language:fr" http://3.19.68.127/translator-1.0/translate
RESTful jQuery Client
Wenn Sie von einer browserbasierten Anwendung aus auf einen RESTful-Webservice zugreifen möchten, werden Sie wahrscheinlich ein JavaScript-Framework verwenden wollen. Alle gängigen JavaScript-Frameworks und -Bibliotheken, wie AngularJS, Ember.js, React und jQuery, bieten Funktionen, die REST-basierte Interaktionen vereinfachen.
Hier ist ein Beispiel für einen einfachen RESTful-Webservice-Client, der in jQuery geschrieben wurde:
<html><head>
<script src="jquery.min.js"></script>
</head>
<body>
<div id="rest-web-service-client"></div>
<script>
$(document).ready(function() {
$.ajax({
url: "http://3.19.68.127/translator-1.0/translate",
headers: {"language":"fr", "text":"rabbit"}
}).then(function(data) {
alert(data); // will display 'lapin'
});
});
</script>
</body>
</html>
REST-Clients in Java
REST-basierte Dienste folgen der gesamten Semantik von HTTP, so dass auf sie über die Netzwerk- und I/O-Pakete zugegriffen werden kann, die standardmäßig bei jeder JDK-Installation enthalten sind. In den meisten Fällen werden Entwickler ein Webentwicklungs-Framework wie Jakarta EE oder Spring Boot verwenden, um auf eine entfernte API zuzugreifen, da beide Frameworks über integrierte Bibliotheken verfügen, um RESTful-Webservice-Clients in Java zu schreiben.
Doch diese Extravaganz ist nicht erforderlich. Nachfolgend finden Sie ein Beispiel dafür, wie Sie ohne ein Framework wie Spring auf einen RESTful-Webservice zugreifen können. Dieses Beispiel verwendet nichts anderes als die Pakete java.net und java.io.
Socket requestSocket = new Socket("http://mcnz.com", 8080);
PrintWriter writer = new PrintWriter(requestSocket.getOutputStream(),true);
writer.write("GET language-translator/api");
writer.flush();
while(true) {
int x = requestSocket.getInputStream().read();
if(x==-1) {
break;
}
}
writer.close();
requestSocket.close();
RESTful-Webservice-Frameworks
Alle gängigen Bibliotheken für die Entwicklung von Unternehmensanwendungen und Microservices verfügen über die Möglichkeit, RESTful-Webservice-Clients zu schreiben. Spring Boot, Jersey und JAX-RS unterscheiden sich alle nur geringfügig in Bezug auf die APIs. Sie sind ähnlich genug, dass Entwickler problemlos von einem zum anderen wechseln können.
Hier ist ein Code-Snippet, das zeigt, wie man einen RESTful-Web-Client mit Spring und seinem RestTemplate erstellt:
HttpHeaders headers = new HttpHeaders();
applyAPIKeyToHeader(key, headers);
headers.setContentType(MediaType.APPLICATION_JSON);
String data = getTextToTranslate(textToTranslate, sourceLanguage, destinationLanguage);
HttpEntity<String> request = new HttpEntity<String>(data, headers);
String url = "www.mcnz.com";
ResponseEntity<String> response = restTemplate.postForEntity(url, request, String.class);
String responseBody = response.getBody();
translationResult = objectMapper.readValue(responseBody, TranslationsResult.class);
Chrome- oder Firefox-Erweiterungen für REST
Wenn Sie keinen Zugriff auf Curl haben und nicht beabsichtigen, einen RESTful-Webservice-Client zu kodieren, haben Sie immer noch die Möglichkeit, eine Chrome- oder Firefox-Erweiterung zu installieren, die einen REST-basierten Dienst aufruft. Postman ist eine der vielen verfügbaren Erweiterungen.
RESTful-Webservices sind sehr beliebt, vor allem, da sich der Trend zu Microservices durchsetzt. Aber jeder REST-Service braucht einen Client. Allerdings gibt es eine Vielzahl von Möglichkeiten, RESTful-Webservice-Clients für Test, Validierung und Anwendungsintegration zu erstellen.