2017-04-26 58 views
0

我開始使用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來調用此服務嗎?

回答

0

Azure移動應用程序客戶端SDK提供客戶端訪問Azure移動應用服務器SDK的權限。你需要一起使用這兩個。你不能使用另一個。

由於您使用的是Xamarin,請查看http://aka.ms/zumobook的書 - 這裏有很多概念都在本書中討論。

+0

後端託管爲Azure移動應用程序服務。它只是我使用API​​Controller,而不是TableController。 因此,我從上面的答案中瞭解到,我可以使用SDK的InvokeApiAsync <>()方法。 –

+0

是的,InvokeApiAsync <>()是你正在尋找的。 –

相關問題