【问题标题】:What is the TableController class for and where are its methods used?TableController 类是做什么用的,它的方法在哪里使用?
【发布时间】:2016-12-12 11:31:22
【问题描述】:

我开始使用 Azure,并选择在 VS 中使用 .NET 设置移动服务。我一直在学习 Azure Todo 入门服务器项目的组成部分。

我一直在努力理解的一件事(即使通过大量的谷歌搜索)是​​ TableController 方法的用途是什么?我了解 TableController 将表公开给 HTTP 请求?但是,当我从客户端访问数据时,我在 MobileServiceClient 实例返回的表上使用“.LookupAsync”或“.UpdateAsync”方法。

当我进行这些调用时,TableController 中的 GetAllToDoItems(..)、PathToDoItem(..)、GetToDoItem(..)、PostToDoItem(..)、DeleteToDoItem(..) 方法是否在幕后使用? MobileServiceClient 表?

我可以从我的客户端访问这些方法吗?这些方法是标准/必需的方法名称吗?

TableController 是放置服务器代码进行授权的好地方吗?例如。仅返回该用户记录的经典示例?

感谢您的帮助, 汤姆。

【问题讨论】:

    标签: azure azure-sql-database azure-mobile-services


    【解决方案1】:

    我可以从我的客户端访问这些方法吗?这些方法是标准/必需的方法名称吗?

    目前,Azure 移动应用支持 C# 和 node.js 作为其后端语言。通过Get started article,我们可以知道,无论您是构建原生 iOS、Android 和 Windows 应用程序还是跨平台 Xamarin 或 Cordova (Phonegap) 应用程序,我们都可以使用原生 SDK 来利用移动应用程序。我们可以在后端项目中看到很多函数,如 GetAllToDoItems(..)、PathToDoItem(..)、GetToDoItem(..)、PostToDoItem(..)、DeleteToDoItem(..)。此方法是 MVC 控制器操作名称。请注意 SDK 函数很重要,如下所示,后端项目有一个名为 GetTodoItem 的函数。

         public SingleResult<TodoItem> GetTodoItem(string id)
            {
                return Lookup(id);
            }
    

    然而,命名空间“Microsoft.Azure.Mobile.Server”下的函数 Lookup 是该函数中的关键方法:

    TableController 是放置服务器代码进行授权的好地方吗?例如。仅返回该用户记录的经典示例?

    如果您想添加身份验证,我认为this article 可能会给您提供帮助。以 Azure AD 为例,如果要保护某个表控制器,我们只需要配置 Azure AD,然后在表控制器前添加 [Authorize] 属性即可,不需要在该表控制器中添加授权代码。

    【讨论】:

    • 感谢您抽出宝贵时间回复。那么 TableController 方法将这些服务器 API 方法暴露给客户端?为什么调用MobileService.GetTable&lt;TodoItem&gt;().ToListAsync(); 会导致在服务器端调用TableControllerInstance.GetAllTodoItems()?我想我错过了一步。为什么我将GetAllTodoItems()重命名为GetXXXXX()没有关系,但如果方法名称不以Get开头,它会中断?
    • 是的,它可以帮助我们向设备公开数据。但是如果我们使用 TableController,我们需要在使用 http 请求时添加 ZUMO-API-VERSION 作为它的 header。当然,如果我们在客户端选择 Azure 移动应用 SDK。我们只需要调用SDK自带的函数即可。对于您的第二个问题,这是一个 .NET MVC 问题。如果我们在 action name 中定义 GET,它会默认定义为 Http Get 函数。
    • 优秀的快速审查。如需更多信息,您可能需要阅读 ZUMO 书籍的第 1-3 章 - aka.ms/zumobook
    猜你喜欢
    • 2016-01-09
    • 2015-12-31
    • 1970-01-01
    • 2011-03-25
    • 2016-03-28
    • 2014-04-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多