【问题标题】:POST Request to Azure DevOps Rest API with Reactjs使用 Reactjs 向 Azure DevOps Rest API 发布请求
【发布时间】:2020-03-10 12:59:43
【问题描述】:

到目前为止,我已经能够在 C# 中配置一个能够在 Azure DevOps 中硬编码新存储库的方法,但我的真正目标是创建一个用户界面,允许用户指定由以下内容组成的请求正文以下:

name: 'nameOfRepository', 项目: { ID:“项目 ID” }

用户将使用所需的新存储库名称填写第一个输入字段。第二个输入字段应使用 GET 请求,在下拉列表中显示您组织中的所有可用项目。 我也在使用 .NET Core 3.0,并且相信这可能也必须使用 API 控制器来完成,但我不确定。

我几乎没有使用 React 的经验,也不知道我将如何以及在何处指定请求正文和个人访问令牌来创建存储库。我希望能解释一下这是如何工作的,也希望有一个可以引导我朝着正确方向前进的解决方案。

【问题讨论】:

    标签: reactjs azure-devops-rest-api


    【解决方案1】:

    Azure DevOps Rest API 文档将使您能够访问该平台。如果你决定完全使用 React js 进行开发。我想建议使用一个入门工具包,大部分内容将涵盖您对 React 的所有基本设置。

    按照以下步骤了解如何使用 react js 实现

    1. 需要在 azure deops 中设置 OAuth。下面的链接将给出一个想法。在回调页面中,需要存储访问令牌store
      https://docs.microsoft.com/en-us/azure/devops/integrate/get-started/authentication/oauth?view=azure-devops。如果您有个人身份验证令牌,则不需要

    2. 使用 fetch 或 Axios API 获取所有存储库列表 Axios 示例:

      const headers = {
             'Content-Type': 'application/json',
              'Authorization': 'bearer token' or 'basic personalaccesstoken'
           }
      
      axios.get('https://dev.azure.com/{organization}/{project}/_apis/git/repositories', {
              headers: headers,
              params: {
              'api-version':'5.1'
            }
            })
            .then(function (response) {
              console.log(response);
            })
            .catch(function (error) {
              console.log(error);
            });
      
    3. 使用 react form 来捕获输入值并在提交表单时验证存储库,如果是新的,请调用 Axios 或 fetch post 方法来创建新存储库

    Axios 示例

      const headers = {
          'Content-Type': 'application/json',
          'Authorization': 'bearer token'
        }
        const data = {
        name: '' 
        parentRepository: {id: '', ....}
        project: {id: '', ...}
        }
         axios.post('https://dev.azure.com/{organization}/{project}/_apis/git/repositories', JSON.stringify(data), 
         {
                headers: headers,
                params: {
                'api-version':'5.1'
              }
              })
              .then(function (response) {
                console.log(response);
              })
              .catch(function (error) {
                console.log(error);
              });
    

    同样,您可以访问所有提到的 API 的 Microsoft REST API 文档。 link

    【讨论】:

    • 我不明白上面的代码应该如何使用,并且感觉代码开始工作时缺少很多元素......将此代码粘贴到新的 js 文件中给了我很多错误,即使安装了 react 和 axios。您在第二个代码示例中展示的 Axios 示例;如何使此代码工作? parentRepository 需要什么?请再次阅读我的问题
    • 这是一个概述或入门指南。我没有提供确切的代码,因为我不知道您在内部使用了哪些模块以及完整的项目端到端概述。我用最常用的 React JS REST API 框架提供了一个解决方案。以及需要传递哪些参数以及如何从 azure 获取参数。您需要了解和替换占位符等,并根据您的要求进行修改。我明白这是一项具有挑战性的任务。我可能会指导您实现这一目标。
    • 我明白了。好吧,我正在尝试创建一种通过 React js 和 Azure DevOps REST API 在 Azure DevOps 中创建新存储库的方法。用户将获得 2 个输入字段来填写;第一个是一个文本字段,他们在其中指定新存储库的名称。第二个输入字段是下拉菜单或动态输入字段,其中包含给定组织中的所有可用项目。 (基本上,一个 GET 请求收集组织中的所有项目并允许用户选择在哪个项目中创建存储库。输入将通过 POST 方法提交给 API。
    • 这比我原来的问题解释得好吗?
    猜你喜欢
    • 2019-09-10
    • 1970-01-01
    • 2018-12-16
    • 2023-03-07
    • 2021-04-20
    • 1970-01-01
    • 2020-10-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多