Android 中的 Azure 移动服务自定义 API 参数
Azure Mobile Services Custom API Parameters in Android
我在 Azure 移动服务 (JS) 中设置了自定义 API:
exports.post = function(request, response) {
var tables = request.service.tables;
var accounts = tables.getTable('Account');
var item = {
id: request.body.members.id
}
accounts.where(function (item) {
return this.id == item.id;
}, item).read({
success: function (results) {
if (results.length === 0) {
response.send(200, { Status: "FAIL", Error: "Something went wrong." });
}
else
{
var account = results[0];
response.send(200, {
id: account.id,
name: account.name,
email: account.email
});
}
}
});
};
我从 Android 调用它:
List<Pair<String, String> > lp = new ArrayList<Pair<String, String> >();
lp.add(new Pair("id", userId));
mClient.invokeApi("custAPI", "POST", lp, whoami.class, new ApiOperationCallback<custAPI>() {
@Override
public void onCompleted(custAPI result,
Exception error, ServiceFilterResponse response) {
if (error == null) {
Log.w("TEST", result.name.toString());
}
}
});
正在调用自定义 API,但似乎没有传递参数 - request.body.members.id
不存在。
如何正确地将参数传递到 Android 上的自定义 API?
您应该为此创建自定义 class。例如,你想发送会员信息,你可以创建一个 class,如下所示:
import com.google.gson.annotations.SerializedName;
public class Member {
@SerializedName("id")
public int ID;
@SerializedName("name")
public String Name;
}
现在调用 invokeApi 方法并传入 Member 对象。
Member member = new Member();
member.ID = 1;
member.Name = "Someone";
mClient.invokeApi("custAPI", "POST", member, Member.class, new ApiOperationCallback<custAPI>()
在您的自定义 API 中,您将有权访问您的对象,并且您可以使用 request.body.id 作为 ID 并使用 request.body.name 作为成员对象中的名称。
我在 Azure 移动服务 (JS) 中设置了自定义 API:
exports.post = function(request, response) {
var tables = request.service.tables;
var accounts = tables.getTable('Account');
var item = {
id: request.body.members.id
}
accounts.where(function (item) {
return this.id == item.id;
}, item).read({
success: function (results) {
if (results.length === 0) {
response.send(200, { Status: "FAIL", Error: "Something went wrong." });
}
else
{
var account = results[0];
response.send(200, {
id: account.id,
name: account.name,
email: account.email
});
}
}
});
};
我从 Android 调用它:
List<Pair<String, String> > lp = new ArrayList<Pair<String, String> >();
lp.add(new Pair("id", userId));
mClient.invokeApi("custAPI", "POST", lp, whoami.class, new ApiOperationCallback<custAPI>() {
@Override
public void onCompleted(custAPI result,
Exception error, ServiceFilterResponse response) {
if (error == null) {
Log.w("TEST", result.name.toString());
}
}
});
正在调用自定义 API,但似乎没有传递参数 - request.body.members.id
不存在。
如何正确地将参数传递到 Android 上的自定义 API?
您应该为此创建自定义 class。例如,你想发送会员信息,你可以创建一个 class,如下所示:
import com.google.gson.annotations.SerializedName;
public class Member {
@SerializedName("id")
public int ID;
@SerializedName("name")
public String Name;
}
现在调用 invokeApi 方法并传入 Member 对象。
Member member = new Member();
member.ID = 1;
member.Name = "Someone";
mClient.invokeApi("custAPI", "POST", member, Member.class, new ApiOperationCallback<custAPI>()
在您的自定义 API 中,您将有权访问您的对象,并且您可以使用 request.body.id 作为 ID 并使用 request.body.name 作为成员对象中的名称。