API-интерфейс REST Workbench Azure Blockchain возвращает 204 Нет содержимого

Я создал и распространил проект рабочей среды blockchain. Я могу получить доступ к веб-сайту клиента Azure Blockchain Workbench, где я могу создавать контракты, выполнять действия и т. Д.

Я пытался разработать простую программу для использования API-интерфейса REST Workchench Azch Blockchain для взаимодействия с блокчейном с моим собственным приложением.

Перед вызовом какой-либо функции API я получаю токен аутентификации (надеюсь, он правильный, потому что я получаю значение для токена)

Если сейчас я пытаюсь вызвать функцию API " https://myblockchain-xyz-api.azurewebsites.net/api/v2/users", то получаю в результате список пользователей.

Однако, если сейчас я попытаюсь вызвать любую другую функцию для приложений блокчейна, например "/api/v2/ Applications", я получу код возврата 204 "Нет содержимого".

Если я попытаюсь вызвать, например, "/api/v2/ Applications/2/workflows", то получу 404 "Не найдено"

После вызова API:

Dim MyOauthToken As String = 
Utilities.BlockchainAuthentication.GetAuthenticationToken().Result

Dim MyHttpClient As New HttpClient()
MyHttpClient.DefaultRequestHeaders.Authorization = New AuthenticationHeaderValue("Bearer", MyOauthToken)
'--------------------------------------------------------
'Force security protocol
ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3 Or SecurityProtocolType.Tls Or SecurityProtocolType.Tls11 Or SecurityProtocolType.Tls12
'---------------------------------------------------------
'Get list of applications
Dim MyServiceUriString As String = "https://myblockchain-xyz-api.azurewebsites.net/api/v2/users/applications"
Dim MyResponse As Task(Of HttpResponseMessage) = MyHttpClient.GetAsync(MyServiceUriString)
MyResponse.Wait()

Результатом функции "apps" является 204 "Нет контента". Если я делаю тот же вызов ".../api/v2/users", это работает, и я получаю всех пользователей.

Кто-нибудь может помочь?

Я попытался позвонить "../users/me", чтобы увидеть, что происходит, и я получил следующий результат (я не знаю, может ли это помочь):

{ "CurrentUser":{"идентификатор пользователя":7,"ExternalId":"1r67sf88-5b49-47da-a27a-79g3gg345","FirstName": NULL, "LastName":"","EMAILADDRESS": NULL,"userChainMappings":[{"userChainMappingID":5,"идентификатор пользователя":7,"ConnectionID":1,"chainIdentifier":"0x32cfcf169813364563456348c99b9","chainBalance": нулевой}]},"возможности":{"canUploadApplication": ложные,"canUploadContractCode"ложь"canModifyRoleAssignments": ложь,"canProvisionUser"ложь"canUpgradeWorkbench"ложь}}

0 ответов

Проблема заключается в том, что пользователь по умолчанию (созданный путем развертывания Azure Blockchain Workbench) в автономной БД не сопоставлен ни с каким приложением. В качестве обходного пути - вы всегда можете добавить это отображение вручную в БД, и после этого вы сможете получать приложения (и использовать контракты и т. Д.).

Что тебе необходимо сделать:

  1. Найдите идентификатор внешнего пользователя для приложения (web api), которое было предоставлено с помощью Azure Blockchain Workbench.

    • Перейдите в Azure Azcive Directory
    • Корпоративные приложения
    • Выберите все apss в выпадающем меню и нажмите Применить
    • Теперь вы можете увидеть что-то вроде Azure Blockchain Workbench blockchaintest-XXXXX
    • Выберите элемент, и вы получите external_id в адресной строке браузера (последний указатель в строке)
  2. Найдите группу ресурсов для AZ BCW, которую вы создаете, и найдите базу данных SQL.

  3. Редактор пользовательских запросов (превью) для подключения к БД
  4. Найти идентификатор пользователя в dbo.User с external_id из шага 1
  5. Найти идентификатор приложения в dbo.Application
  6. Добавьте новую запись в dbo.RoleAssignment с идентификатором пользователя из шага 4 и идентификатором приложения из шага 5

Теперь это должно работать

curl -H "Authorization: Bearer ${TOKEN}" -X GET 'https://blockchaintest-XXXXX-api.azurewebsites.net/api/v1/applications?isLatestVetsion=true' 
{"nextLink":"/api/v1/applications?skip=1","applications":[{"id":10,"version":"9.0","name":"CCCCC","description":"CCCCCCC","displayName":"CCCCCCCC","createdByUserId":2,"createdDtTm":"2019-04-30T05:13:40.87","enabled":true,"blobStorageURL":null,"isLatestVersion":null,"applicationRoles":null}]}
Другие вопросы по тегам