2017-06-08 4 views
0

Ich bin ziemlich neu zu Dropwizard und lernen es (und API-Entwicklung im Allgemeinen).Aufruf externe API von Dropwizard

Ich freue mich auf Dropwizard, um eine API zu erstellen, die eine andere API bei somepoint aufrufen sollte.

Genauer gesagt, ich habe eine JSON/YAML-Datei, die ich eine andere JSON-Datei durch eine externe API Consumable konvertieren werde.

Die API I Gebäude sind den ganzen Prozess umfasst enter image description here

Vorerst auf dem letzten Teil konzentriere ich mich: externe API (mit einem festen json) Aufruf .so wie kann ich aus einer externen API getroffen Dropwizard?

Hier ist der sudo-Code:

@Path("/my_api") 
public class HelloResource { 

@GET 
@Produces(MediaType.APPLICATION_JSON) 
public hit_external() { 
    // call "my.external.api/ext_api" 

} 
} 

Alle Kommentare/Anregungen/Link zu den Referenzen ist wirklich zu schätzen.

Antwort

0

Dank Andre, endded ich Dropwizard Client (Jersey-Client) mit bis:

import javax.ws.rs.client.ClientBuilder; 


    Client client = ClientBuilder.newClient(); 
    String result = client.target("http://path_to_external_resource").request().get(String.class); 

    return result; 
1

Sie können das Modul Dropwizard Client verwenden, das auf dem Apache HttpClient (Standard) oder dem Jersey Client basiert. Sobald der Client in der DW-Anwendung konfiguriert ist, verwenden Sie diesen, um externe Anrufe zu tätigen. Für eine Abstraktion auf höherer Ebene ist Feign eine gute Option.

Beachten Sie, dass bei synchronen Aufrufen eines externen Webdienstes möglicherweise keine verfügbaren Threads mehr verfügbar sind, wenn diese auf dem anderen Dienst warten. Sie sollten diese asynchronen Aufrufe durchführen, wenn dies beispielsweise möglich ist, indem Sie eine Warteschlange von externen Anrufen verarbeiten und die Clients der API den Status dieser Anforderung prüfen lassen.