使用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的书 - 这里有很多概念都在本书中讨论。

+0

后端托管为Azure移动应用程序服务。它只是我使用API​​Controller,而不是TableController。 因此,我从上面的答案中了解到,我可以使用SDK的InvokeApiAsync ()方法。 –

+0

是的,InvokeApiAsync ()是你正在寻找的。 –