在RestLet框架中调用多个post方法在同一资源中

时间:2015-05-12 08:21:00

标签: java restlet

我想在RestLet框架的同一资源类中使用多个post方法,如下所示:

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 个答案:

答案 0 :(得分: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);
    }
}

此外,您可以查看此链接,了解使用REST和Restlet方法POST实现多个操作的方法:https://templth.wordpress.com/2015/03/20/handling-multiple-actions-for-a-post-method/

希望它可以帮到你, 亨利