Как указать в OpenAPI добавление пользователя в группу? - PullRequest
0 голосов
/ 18 апреля 2019

Я пытаюсь создать пользовательский соединитель для MS Flow \ Logic Apps, который использует некоторые конечные точки REST, которые являются частью графа Microsoft, но у меня возникают проблемы с пониманием, как документировать API в спецификации OpenAPI 2.0

Документация 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 ». Path 'paths./groups/ndomteam-id‹/owners.post.parameters[1]'.'

EDIT

Я обновил OpenAPI, чтобы он выглядел ниже

Это означает, что я могу импортировать и использовать это ... но мне нужно создать URL для параметра @ odata.id вручную в рабочем процессе!

"@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

EDIT

Как мне указать это, чтобы получить userId ?

Как правильно указать параметр тела?

Есть ли документация \ примеры того, как это сделать?

Любая помощь будет высоко ценится

Заранее спасибо

Пит

1 Ответ

0 голосов
/ 09 мая 2019

Один из самых простых способов создания настраиваемого соединителя PowerApps, который я нашел, заключается в следующем:

  1. Используйте Почтальон для создания рабочего запроса

  2. Создание нестандартного соединителя из пустого

  3. Проверка в области «Тест» пользовательского разъема

Затем вы можете загрузить файл Swagger, если вам это нужно. По сути, пусть PowerApps создает файл Swagger ДЛЯ ВАС, а не наоборот.

Вот видео на YouTube о методе, который мне нравится использовать.

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

...