【问题标题】:VSTS Extension Documents Through REST API通过 REST API 的 VSTS 扩展文档
【发布时间】:2020-01-17 15:33:44
【问题描述】:

我一直在为 VSTS 创建一个扩展,到目前为止,我已经将一些数据存储在集合中的文档中 (https://docs.microsoft.com/en-us/vsts/extend/develop/data-storage)。

我现在遇到的问题是,我需要以某种方式从外部应用程序获取这些文档。我调查了:https://github.com/Microsoft/vsts-auth-samples/tree/master/ClientLibraryConsoleAppSample 以完成授权,但后来我无法获得文件。如果我尝试通过 REST API 访问,我在授权自己时遇到问题(没有提供个人访问令牌。该应用程序应该适用于每个用户,我无法获取和使用每个用户的个人访问令牌。这对于 350 是不可行的+ 人)以及我无法使 REST API 正常工作。所有这一切的文档都严重缺乏。 有谁能帮忙吗?

【问题讨论】:

    标签: authorization azure-devops azure-devops-rest-api


    【解决方案1】:

    缺少文档,因为数据存储对于扩展是隔离的,并且没有简单的方法可以从扩展外部访问数据。如果您需要外部访问,您还需要将数据存储在外部。 Azure 存储或 VSTS 帐户下的 TFVC/Git 存储库中。

    对于每个用户的存储访问,这也是隔离的,并且确实需要帐户所有者令牌或用户特定的 Oauth 或 PAT 令牌。

    【讨论】:

    • 那么,即使是在扩展程序中创建的文档/集合也无法访问?
    • 仅由扩展名
    【解决方案2】:

    我找到了解决方案。该文档指出,有两种使用文档/集合的方式。 REST API 及其 VSS 包装器。获取某个集合中所有文档所需的url如下:

    https://{account}.extmgmt.visualstudio.com/_apis/ExtensionManagement/InstalledExtensions/{publisherName}/{extensionName}/Data/Scopes/Default/Current/Collections/{collectionName}/Documents/{documentName} .

    在浏览器中使用它就可以了。要将其与外部应用程序一起使用,只需授权即可。

    【讨论】:

    • 你能举个例子解释一下吗
    【解决方案3】:

    如果您使用来自 docs 的 sdk 方法,例如 VSS.getService(VSS.ServiceIds.ExtensionData),您可以查看(在浏览器中的开发工具中最简单的)请求。 它的样子:

    https://extmgmt.dev.azure.com/{organization}/_apis/ExtensionManagement/InstalledExtensions/{publisher id}/{extension id}/Data/Scopes/Default/Current/Collections/{collections (by default 'MyCollection')}/Documents
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-03-30
      • 2014-08-23
      • 1970-01-01
      • 2018-08-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-01-17
      相关资源
      最近更新 更多