Azure 数据工厂 API 连接器

时间:2021-04-15 09:19:42

标签: api azure-pipelines azure-data-factory azure-api-management azure-devops-rest-api

我正在尝试通过 API REST 访问应用程序,但我在使用 ADF 的过程中卡住了。 基本上这个过程包括两个步骤。 1 - 获取会话 (https://horizon.akixi.com/CCS/API/v1/session) 2 - 使用用户名和密码进行身份验证 (https://horizon.akixi.com/CCS/API/v1/login?locale=en_GB")。

我创建了一个链接服务 (Rest) 并将基本 URL 设置为 (https://horizon.akixi.com/CCS/API/v1/session) 匿名身份验证。

然后我创建了一个数据集来指向这个 API,最后我创建了一个“复制数据”并尝试在附加标题上设置身份验证的详细信息,但它不起作用,我收到了错误 405。

基本上我可以使用 Powershell 运行以下脚本并且它按预期工作,但需要在 ADF 上使用它。

Powershell 中的脚本就是这个。

$user = "xxxxxx@mail.com"
$pass = "123456789"
$secpasswd = ConvertTo-SecureString $pass -AsPlainText -Force
$base64AuthInfo = [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes(("{0}:{1}" -f $user,$pass)))

#Get Session
$url = "https://horizon.akixi.com/CCS/API/v1/session"
$response = Invoke-RestMethod -uri $url -Method Post -SessionVariable se

#Authentication
Write-Host "Authenticating" -ForegroundColor Green
$headers = @{
    'Authorization' = "Basic $base64AuthInfo"
}
$headers
$url = "https://horizon.akixi.com/CCS/API/v1/login?locale=en_GB"
$response = Invoke-RestMethod -uri $url -Headers $headers -Method Get -WebSession $se

#List Reports
$url = "https://horizon.akixi.com/CCS/API/v1/report"
$response = Invoke-RestMethod -uri $url -Method Get -WebSession $se
$response

谢谢大家。

1 个答案:

答案 0 :(得分:0)

由于这 3 个步骤是分开的,并且只有最后一个步骤获取数据,因此您应该将该过程分解为多个活动。

前两步使用 Web Activity,

从网络活动中提取会话变量或身份验证。将其传递给复制活动。复制活动应针对