如何在OpenAPI中指定将用户添加到组?

时间:2019-04-18 01:59:17

标签: microsoft-graph openapi powerapps microsoft-flow office365connectors

我正在尝试为MS Flow \ Logic Apps创建一个自定义连接器,该连接器使用Microsoft图中一部分的REST端点,但是在理解如何记录OpenAPI 2.0规范中的API时遇到了麻烦

MS文档

https://docs.microsoft.com/en-us/graph/api/group-post-owners?view=graph-rest-1.0#example

要包括

"@odata.id": "https://graph.microsoft.com/v1.0/users/{id}"

作为$ ref参数作为请求正文的一部分

但是如何在OpenAPI 2.0规范中对此进行记录?

这是我到目前为止所得到的...

'/groups/{team-id}/owners':
    post:
      tags:
        - teams.team
      summary: Add a new owner to the team
      operationId: teams.AddOwner
      consumes:
        - application/json
      parameters:
        - name: team-id
          in: path
          required: true
          type: string
          description: Id of the MS team
          x-ms-summary: Team Id
          x-ms-visibility: important
        - name: body
          in: body
          required: true
          schema:
            type: object
            properties:
              userId:
                type: string
                description: Id of the user to be added as an owner to the team
                x-ms-summary: User Id
                x-ms-visibility: important
              '@odata.id':
                default: https://graph.microsoft.com/v1.0/users/{userId}
      responses:
        '204':
          description: Success
        default:
          $ref: '#/responses/error'
      x-ms-docs-operation-type: operation

提交上述内容以创建自定义连接器时,出现以下错误

  

指定的文件与OpenAPI 2.0规范不匹配:'JSON对来自'oneOf'的任何模式均无效。路径'paths./groups/{team-id}/owners.post.parameters[1]'。”

编辑

我已将OpenAPI更新为如下所示

这意味着我可以导入和使用它...但是我必须在工作流程中手动构造@ odata.id参数的URL!

"@odata.id": "https://graph.microsoft.com/v1.0/users/{id}"
'/groups/{team-id}/owners/$ref':
    post:
      tags:
        - teams.team
      summary: Add a new owner to the team
      operationId: teams.AddOwner
      consumes:
        - application/json
      parameters:
        - name: team-id
          in: path
          required: true
          type: string
          description: Id of the MS team
          x-ms-summary: Team Id
          x-ms-visibility: important
        - name: body
          in: body
          required: true
          schema:
            type: object
            properties:
              '@odata.id':
                title: User Id
                type: string
                x-ms-summary: User Id
                x-ms-visibility: important
      responses:
        '204':
          description: Success
        default:
          $ref: '#/responses/error'
      x-ms-docs-operation-type: operation

编辑

我应该如何指定它以获得 userId

如何正确指定body参数?

是否有有关此操作的文档\示例?

任何帮助将不胜感激

预先感谢

Pete

1 个答案:

答案 0 :(得分:0)

我发现创建PowerApps自定义连接器最简单的方法之一是:

  1. 使用Postman提出工作要求

  2. 从空白处构建自定义连接器

  3. 在“自定义连接器”“测试”区域中进行测试

然后,您可以根据需要下载Swagger文件。基本上,让PowerApps为您构建Swagger文件,而不是相反。

这是我喜欢使用的方法的YouTube视频。

https://m.youtube.com/watch?v=-wQljWG35zM