使用Azure移动客户端作为休息API
问题描述:
我开始使用Azure移动应用程序SDK来开发我的Xamarin应用程序。从TableControlle开始,但由于希望将大多数业务逻辑保留在API中,因此使用REST概念结束了大多数服务。例如。 :使用Azure移动客户端作为休息API
[MyAuthorize(ActivityEnum.None, UserRole.Admin)]
[HttpGet]
[Route("GetOrderByUser")]
public IHttpActionResult GetOrderByUser(int tenantID, string userID)
{
try
{
var Orders = db.Orders
.Where(x => x.TenantID == tenantID && x.DateEndShip == null && x.DateCancel == null)
.Project().To<OrderDto>()
.ToList();
foreach (var item in Orders)
{
item.CustomerName = db.Parties.FirstOrDefault(x => x.ID == item.CustomerID).Name;
item.Order_Lines = db.Order_Line.Where(x => x.OrderID == item.OrderID)
.Project()
.To<Order_LineDto>()
.ToList();
foreach (var line in item.Order_Lines)
{
line.ItemName = db.Items.FirstOrDefault(x => x.ID == line.ItemID).ItemID;
}
}
return Ok(Orders);
}
catch (Exception ex)
{
return ResponseMessage(Request.CreateResponse(HttpStatusCode.BadRequest, ex.Message));
}
}
所以在Xamarin中使用了HTTPClient。但我猜,这往往是不稳定的,并且打破了Azure移动应用服务托管的目的。此外,授权变得混乱,因为我需要在URL中传递令牌。
我真的可以使用Azure Mobile App SDK来调用此服务吗?
答
Azure移动应用程序客户端SDK提供客户端访问Azure移动应用服务器SDK的权限。你需要一起使用这两个。你不能使用另一个。
由于您使用的是Xamarin,请查看http://aka.ms/zumobook的书 - 这里有很多概念都在本书中讨论。
后端托管为Azure移动应用程序服务。它只是我使用APIController,而不是TableController。 因此,我从上面的答案中了解到,我可以使用SDK的InvokeApiAsync ()方法。 –
是的,InvokeApiAsync ()是你正在寻找的。 –