2017-06-08 17 views
0

私はDropwizardを使い慣れていて、それを学んでいます(そして一般的なAPI開発)。dropwizardから外部APIを呼び出す

somepointで別のAPIを呼び出す必要があるAPIを構築するには、Dropwizardを探しています。

もっと正確には、私はjson/yamlファイルを持っています。これを外部APIで消耗して別のjsonファイルに変換します。

私は建物が今、私は最後の部分に焦点を当てていますため、全体のプロセスenter image description here

を含んだAPI:外部APIを呼び出す(固定JSONで)私は内部から外部APIを打つことができる方法の.so Dropwizard?

ここでsudoのコードです:

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

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

} 
} 

参照するすべてのコメント/提案/リンクは本当に感謝されるが。

答えて

0

おかげで、私はDropwizardクライアント(ジャージークライアント)を使用してアップendded:

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

Apache HttpClient(デフォルト)またはJersey Clientに依存するDropwizard Clientモジュールを使用できます。クライアントがDWアプリケーションで設定されたら、それを使用して外部呼び出しを行います。より高いレベルの抽象化のためには、Feignが良い選択です。

外部Webサービスへの同期呼び出し時に、他のサービスで待機しているアプリケーションで、使用可能なスレッドが不足する可能性があることに注意してください。可能な場合は、外部呼び出しのキューを使用して処理し、APIのクライアントにその要求のステータスをチェックさせるなど、非同期呼び出しを行う必要があります。アンドレへ

関連する問題