rest - 在 Azure 移动应用/服务中使用 TableController

标签 rest azure azure-mobile-services

我试图了解如何在 Azure 移动应用中使用 TableController。这是示例 TodoItemController:

    public class TodoItemController : TableController<TodoItem>
    {
        protected override void Initialize(HttpControllerContext controllerContext)
        {
            base.Initialize(controllerContext);
            MobileServiceContext context = new MobileServiceContext();
            DomainManager = new EntityDomainManager<TodoItem>(context, Request, Services);
        }

        // GET tables/TodoItem
        public IQueryable<TodoItem> GetAllTodoItems()
        {
            return Query();
        }

        // GET tables/TodoItem/48D68C86-6EA6-4C25-AA33-223FC9A27959
        public SingleResult<TodoItem> GetTodoItem(string id)
        {
            return Lookup(id);
        }

        // PATCH tables/TodoItem/48D68C86-6EA6-4C25-AA33-223FC9A27959
        public Task<TodoItem> PatchTodoItem(string id, Delta<TodoItem> patch)
        {
            return UpdateAsync(id, patch);
        }

        // POST tables/TodoItem
        public async Task<IHttpActionResult> PostTodoItem(TodoItem item)
        {
            TodoItem current = await InsertAsync(item);
            return CreatedAtRoute("Tables", new { id = current.Id }, current);
        }

        // DELETE tables/TodoItem/48D68C86-6EA6-4C25-AA33-223FC9A27959
        public Task DeleteTodoItem(string id)
        {
            return DeleteAsync(id);
        }
    }
  • 理想情况下,我希望避免传递像 TodoItem 这样的整个模型,以减少传入/传出带宽并将客户端限制为仅他们应该关心的内容。如果我这样做,离线同步和客户端 SDK 会受到怎样的影响?
  • TableController 是否适用于上面建议的简单 CRUD 操作?互联网上有任何复杂查询的示例吗?

最佳答案

移动应用程序 TableController 是基于 OData 的 CRUD 界面的基础。您将始终将整个模型(基于 EntityData 模型,因此它有四个附加字段 - version、createdAt、updatedAt 和业已删除)传输到客户端。但是,客户端可以使用 OData 搜索来获取一组特定的实体。有关 OData 的更多信息,请查看 http://www.odata.org/

在离线同步并为客户端使用移动应用 SDK 的特定情况下,客户端 SDK 将发出 GET 但将结果限制为上次更新时间(对于第一个请求,该时间将为零,因此将获取所有内容) 。然后它将推送来自客户端的更改。在某些情况下(版本不匹配),它必须进行冲突解决。查看其文档中的“离线同步如何工作”:https://azure.microsoft.com/en-us/documentation/articles/app-service-mobile-offline-data-sync-preview/

关于rest - 在 Azure 移动应用/服务中使用 TableController,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33380856/

相关文章:

iframe - 具有 Windows Azure 托管网页 + IFrame + X-Frame-Options 的 Microsoft Dynamics CRM Online

azure - 在这篇 Azure Active Geo-Replication Microsoft 文章中,USC 代表什么?

c# - 在 Windows 8 商店应用程序中显示 Azure 移动服务数据库中表中的所有记录 - C#

Java - 获取 JSONObject 时出现 NullPointerException

java - 如何在基于 Jersey 的 RESTful web 服务中读取发布数据

java - 通过客户端触发 Restful 服务器响应

java - Spring 框架: Byte Array is corrupted when received

angular - 服务命令需要在 Angular 项目中运行 - Azure 应用服务(.NetCore 和 Angular 应用程序)

curl - 使用 Postman(或 cUrl)连接到移动服务(Azure)

c# - 是否可以将 Azure 离线同步与 .Net Core 一起使用