我正在开发google端点API,因为我只从API method.so获得了POJO类响应 如何从谷歌端点API方法获得String或Integer,Float,布尔响应?
答案 0 :(得分:0)
在Endpoint方法中,返回值类型不能是简单类型,如String或int。返回值必须是POJO,数组或集合。
如果您想要某种String的变通方法,请查看以下主题:Why don't Google Cloud Endpoints Support Simple Object Return Types?
答案 1 :(得分:0)
最好的方法是创建简单的不可变值容器类(太糟糕了,我们没有scala支持,你可以只使用case类:P),例如
public final class StringHolder {
private final String s;
StringHolder(final String s) {
this.s = Preconditions.checkNotNull(s, "null string input");
}
public String get() { return s; }
@Override
public String toString() {
return "StringHolder{" + "s='" + s + '\'' + '}';
}
// hashCode and equals are optional
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
final StringHolder that = (StringHolder) o;
return s.equals(that.s);
}
@Override
public int hashCode() {
return s.hashCode();
}
}
null检查是可选的,你可以选择允许空值,但在这种情况下,你甚至可以引入一个工厂方法,并且在空输入的情况下总是返回相同的NullStringHolder实例,这样更精简,因为它实际上没有保存数据,只是硬核在get()中返回null。如果您碰巧期望大量的空值作为有效响应(这可能是有问题的),那只会产生影响。
希望这有帮助!