私はサーブレットと REST サービスの作成にかなり慣れていませんが、正しく行っているかどうかわからないという問題に直面しています。私のサービスは次のようになります。
@POST
@Produces ("application/json")
@Path ("/register")
public String register(
@FormParam("name") String name,
@FormParam("username") String username,
@FormParam("password") String password,
@Context HttpServletResponse servletResponse) throws IOException {
if( this.user_taken(username) ) return "USERNAME_TAKEN";
User user = new User(name,username,password);
.....
return mapper.writeValueAsString(user);
}
ご覧のService
とおり、 がバックエンド (データベースとユーザーの作成) を処理するServlet
一方で、 がフォームからのリクエストを取得し、適切に検証して に渡しますService
。サーブレット コード:
... validate user input form ...
ClientConfig config = new DefaultClientConfig();
Client client = Client.create(config);
WebResource service = client.resource("http://localhost/Jaba");
String map = mapper.writeValueAsString(request.getParameterMap());
MultivaluedMap<String, String> obj = mapper.readValue(map, MultivaluedMap.class);
String result =
service.path("api").path("register")
.accept("application/json")
.post(String.class, obj);
ご覧のとおり、クライアント (サーブレット) は、サービスにデータを渡すために、多くの厄介な作業を行う必要があります。これをどのように変更/改善/最適化するか、またはより良いリファクタリングを行うことができますか? 私はベストプラクティスとそれが実際の例でどのようになるかに従うようにしています.