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

Abbildung 1: Curl ist ein einfacher Client für RESTful-Webservices.
Abbildung 1: Curl ist ein einfacher Client für RESTful-Webservices.

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.

Die Chrome-Erweiterung Postman als RESTful-Webservice-Client
Abbildung 2: Die Chrome-Erweiterung Postman als RESTful-Webservice-Client

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.

Nächste Schritte

Open Source Tools zur Verwaltung von RESTful APIs.

Die Grundlagen der Einführung eines RESTful-API-Testprogramms.

Zugriff auf Object Storage: Alternativen zu RESTful API.

Erfahren Sie mehr über Softwareentwicklung

- GOOGLE-ANZEIGEN

ComputerWeekly.de

Close