私は既存の残りのAPIを拡張またはカスタマイズしたかったのです。私の残りの部分では、サービスはビジネスロジック(製品)を含むはずのHandlerを呼び出し、これを拡張またはカスタマイズする方法(クライアントのカスタマイズごと)が必要です。これを行う方法についてアドバイスしてください。添付されているシンプルなhello worldの設定ですが、このDefaultGreetingsHandler.greetUserへのフックを表示することができます。既存のREST APIを拡張してカスタマイズする
package com.myapi.greetings.rest;
import javax.inject.Inject;
import javax.servlet.http.HttpServletRequest;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
import javax.ws.rs.core.Context;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
import com.myapi.greetings.handler.GreetingsHandler;
import com.myapi.greetings.model.Greeting;
@Path("/greetings")
public class GreetingsService {
@Inject
GreetingsHandler handler;
@GET
@Path("/{name}")
public Response getCustomMessage(@PathParam("name") String name) {
String output = handler.greetUser(name);
return Response.status(200).entity(output).build();
}
}
は、私はJavaでクライアントごと
package com.myapi.greetings.handler;
import javax.inject.Inject;
import com.myapi.greetings.dao.GreetingsDao;
public class DefaultGreetingsHandler implements GreetingsHandler {
@Inject
GreetingsDao dao;
@Override
public String greetUser(String name) {
return dao.getGreeting() + name;
}
}
そのシンプルなmavenのもと、残りのプロジェクトをカスタマイズすることができるようにHandler.greetUserでフックを必要とします。完全なセットアップzipファイルについては、次のリンクを参照してください。
https://1drv.ms/u/s!AulFHVWnSJeFaqIB0JHKzo95DbU
助けに感謝。
なぜ 'DefaultGreetingsHandler'はRestメソッドではありませんか? –
これは階層構造のREST/business logic/DAOであると考えられます。そうすれば、ビジネスロジックの懸念をREST要求とマーシャリング要求/応答オブジェクトから区別することができます。私はあなたの質問には、@スーディーが失われています。 –
@Sander Verhagen、私が探しているのは、クライアント固有のgreetUser(ビジネスロジックを含む)の基本実装をカスタマイズできるようにすることです。基本的な実装は私の主力製品であり、デフォルトの動作をしています。異なるクライアントで動作します。別のコードベースになる(クライアント固有の)カスタム実装のデフォルトの動作を変更できるようにしてください。 – Sudhi