2017-03-06 11 views
0

私は残りのapi '/ users/{id}/checkin'を使用して処理を行い、別のリソース。例えば。restAasyを使用して同じプロセスでrestapiからrestapiを呼び出す方法

ServiceResource.java 
@GET 
@path(/services/checkin/) 
public Response checkinUser(User user) 
{ 

     // --- processing. 
    } 


    UserResource.Java 
@POST 
@path(/users/{id}/checkin/) 
public Response verifyUser(@PathParam("id) String id) 
{ 

     // --- Get the users from the iD. 
     User user = getUsers(id); 

     // --- need to call service from the serviceResource. 

} 

どうすればいいですか?私はHTTPclient呼び出しを避けたいと思っています。

+0

これはパブリックメソッドです。通常の関数のように呼び出すだけです。オブジェクトを作成して呼び出します。 – Rjiuk

+0

こんにちはRjiuk、返信いただきありがとうございます。私はそれを疎結合したいのと同じことをしたくありません。メソッドを呼び出すと、直接の依存関係が追加されます。 – user4828248

答えて

0

すべてのメソッド定義とresteasy注釈をインターフェイスに置き、このインターフェイスをresteasy proxy frameworkへの入力として使用します。

詳細はdocumentationを参照してください。

ServiceResourceIF.java:

User = new User(...); 

Client client = ClientBuilder.newClient(); 
WebTarget target = client.target("http://your.service.url/base/uri"); 
ResteasyWebTarget rtarget = (ResteasyWebTarget)target; 

ServiceClient service = rtarget.proxy(ServiceResourceIF.class); 
service.checkinUser(user); 

注:あなたが同じを使用することができます

public interface ServiceResourceIF { 

    @GET 
    @path(/services/checkin/) 
    public Response checkinUser(User user); 

} 

呼び出し元のコードは、(上記のリンクを参照してください、RESTEasyに、元の文書から盗まれた)このようになります。クライアントとサーバーを構成するためのインタフェース。

+0

こんにちはmartinw、返信ありがとう、 – user4828248

+0

あなたが助けてくれたら、あなたはアップフォートしてもらえますか?ありがとう! – martinw

+0

しかし、提供されたURLのresteasyからメソッドを呼び出すURLまたはdirecltyからメソッドを直接取得できる方法はありますか。 – user4828248

関連する問題