我想在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");
}
}
怎么办?请根据我的问题提供一些解决方案。请帮帮我。
答案 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/。
希望它可以帮到你, 亨利