2015-05-12 1 views
0

Я хочу более одного метода поста в том же классе ресурсов в рамках Restlet, как показано ниже:Вызова более после метода в том же ресурсе в рамках Restlet

public class Myclass extends ServerResource { 

    private Logger log = Logger.getLogger(LoginResource.class.getName()); 

    @Post 
    public Representation createUser(final Representation representation) throws IOException { 
     .......................... 
     ................................ 
    } 

    /** 
     * This class will help in creating a person. 
     * @return representation Representation 
     * @param representation Representation 
     * @throws IOException IOException 
     */ 
    @Post 
    public Representation createAllUser(final Representation representation) throws IOException { 
     ............... 
     ............................... 
     return new JacksonRepresentation<>("Success"); 
    } 
} 

Как это сделать? Пожалуйста, предоставьте некоторое решение в соответствии с моей проблемой. Пожалуйста, помогите мне.

ответ

1

Я не знаю, что вы точно хотите сделать. Из вашего вопроса неясно, как выбрать метод, используемый для обработки запроса POST (вызывать тот или иной аннотированный метод). Вы хотите использовать параметр запроса, заголовок или что-то в полезной нагрузке?

Для параметра запроса, вы можете использовать что-то на уровне аннотаций, как описано ниже:

@Post("?myparam=something") 
public Representation createUser(final Representation representation) throws IOException { 

Для других случаев, я думаю, что вы должны использовать один аннотированный метод, который обрабатывает маршрутизацию к правильный способ обработки. Нечто подобное, если вы хотите использовать пользовательский заголовок x-action:

@Post 
public Representation handleAction(Representation representation) 
            throws IOException { 
    Series<Header> headers = (Series<Header>) 
     getRequestAttributes().get("org.restlet.http.headers"); 

    String actionHeader = headers.getFirstValue("x-action", "single"); 
    if ("single".equals(actionHeader)) { 
     return handleAction1(representation); 
    } else { 
     return handleAction2(representation); 
    } 
} 

Кроме того, вы можете посмотреть по этой ссылке о пути к реализации мульти действия с методом POST с REST и Restlet: https://templth.wordpress.com/2015/03/20/handling-multiple-actions-for-a-post-method/.

Надеюсь, это поможет вам, Thierry