2013-06-19 2 views
0

ОК, поэтому я создал спокойный webservice.now, как создать путь для пользователя «abc».
Что-то вроде этогоКак создать/построить REST URI с использованием параметров формы

http://stackoverflow.com/user/abc 

После моей формы для получения пользовательского ввода Копания HTML

@POST 
    @Produces(MediaType.TEXT_HTML) 
    @Consumes(MediaType.APPLICATION_FORM_URLENCODED) 
    public void newUser(
      @FormParam("uname") String uname, 
      @FormParam("password") String password, 
      @Context HttpServletResponse servletResponse 
    ) throws IOException { 
     User u = new User(uname,password); 
     User.userdata.put(uname,password); 
    } 

Как сделать URI-то подобное из параметров формы, если пользователь имеет uname как «ABC»

http://mysite/user/abc 

ответ

0

Используйте @Path и @PathParam аннотаций:

@Path("/user/{uname}") 
@PUT 
@Consumes("text/plain") 
public void putUser(@PathParam("uname") String uname, String password) { 
    // .. 
} 

PUT Если в /user/joe с телом s3cret, то uname будет joe и password будет s3cret.

Я использую PUT, потому что URL-адрес, который вы хотите использовать, подразумевает, что имя пользователя задано клиентом. /user - это ресурс коллекции всех пользователей.

Edit: Поскольку этот метод изменит состояние сервера путем создания нового пользователя, PUT или POST должны быть использованы. GETне должен изменить состояние сервера.

+0

поэтому мне нужно создать этот метод 'putUser', к которому пользователь будет перенаправлен, используя это в конце newUser:' servletResponse.sendRedirect ("http: // mysite/user /" + uname); '. .. ?? Не думаете ли вы, что это должно быть 'GET' ?? – user2416728

+0

@Accepts ("text/plain") << это не определено !! Вы хотите сказать @Consume ?? – user2416728

+0

См. Мое редактирование. '@ Consumes' верен. –

Смежные вопросы