我想部署我的google端点API的v2。在这个版本2中,我添加了一个带有参数的ApiMethod
/**
* An endpoint class we are exposing
*/
@Api(
name = "myApi",
version = "v2",
namespace = @ApiNamespace(
ownerDomain = "awesome.me.com",
ownerName = "awesome.me.com",
packagePath = "api/v2"
)
)
public class MyEndpointV2 extends MyEndpoint{
@ApiMethod(name = "getContact")
public Charges getContact(ContactRequest request){
return ContactHandler.getContact(request);
}
}如您所见,我的V2扩展了我的V1 Api,这样我就可以访问我的所有V1方法。问题是,我的新方法是在没有参数 ContactRequest的情况下生成的。也就是说,当我试图在我的app模块中调用该方法时,如下所示
myapi.getContact()有什么问题吗?我试图清理我的项目,但什么也没有发生。
编辑这里是MyEndPoint类
@Api(
name = "myApi",
version = "v1",
namespace = @ApiNamespace(
ownerDomain = "awesome.me.com",
ownerName = "awesome.me.com",
packagePath = ""
)
)
public class MyEndpoint{
@ApiMethod(name = "getPeriod")
public Period getPeriod(@Named("days")long days) {
return Handler.getPeriod(days);
}
//other api methods
}发布于 2017-02-21 20:15:49
此错误可能是由继承引起的。请阅读下列文件
https://cloud.google.com/appengine/docs/java/endpoints/multiclass
它说,您必须为您的注释使用相同的值。您试图重写版本和包的值。这可能导致未定义的行为。
https://stackoverflow.com/questions/42371135
复制相似问题