我创建了一个ApiMethod,并将一些参数标记为@Nullable。从我的客户端网页,当我提出请求时,它抛出以下错误。当我测试样本(Greetings.java)时它工作得很好。但不是我的API。我缺少什么想法?
{
"error" : {
"message" : "java.lang.IllegalArgumentException",
"code" : 400,
"errors" : [ {
"domain" : "global",
"reason" : "badRequest",
"message" : "java.lang.IllegalArgumentException"
} ]
}
}
这是我的代码示例:
import com.google.api.server.spi.config.Api;
import com.google.api.server.spi.config.ApiMethod;
import com.google.api.server.spi.config.Named;
import com.google.api.server.spi.config.Nullable;
@ApiMethod(name = "adddetails", path = "admin/adddetails")
public Details addDetails(
@Named("date") long date,
@Named("hours") int hours,
@Named("weekend") @Nullable boolean weekend,
@Named("holiday") @Nullable boolean holiday
在我的网页内(html页面)
var request = api.adddetails({
"date": date.getTime(),
"hours": 0
});
request.execute();
如果我跑到线下面那么ApiMethod被调用没有任何错误:
var request = api.adddetails({
"date": date.getTime(),
"hours": 0,
"weekend": row.weekend,
"holiday": row.holiday
});
request.execute();
我已经检查了myapi.api文件,里面显示的参数为"required" : false
,这意味着我收到了正确的api到客户端。但不确定哪里出错了。
我在localhost上测试。
答案 0 :(得分:1)
对标记为Boolean
的参数使用boolean
,而不是Nullable
。将原语用于原语时可能会有警告,当然,它不能为空。