Since
Semarchy
xDM
V5,
web
service
(REST
API)
are
available
to
manage
Semarchy
xDM
platform.
This
Article
give
you
some
sample
that
you
can
use
to
write
your
own
command
to
manage
your
platform.
Get
Platform
Status
$user = "semadmin"
$pass = "semadmin"
$pair = "$($user):$($pass)"
$encodedCreds = [System.Convert]::ToBase64String([System.Text.Encoding]::ASCII.GetBytes($pair))
$basicAuthValue = "Basic $encodedCreds"
$Header = @{Authorization = $basicAuthValue}
$url = "http://localhost:8088/semarchy/api/rest/admin/status"
Invoke-RestMethod -Uri $url -Header $Header | ConvertTo-Json
Get
repository
Information
$user = "semadmin"
$pass = "semadmin"
$pair = "$($user):$($pass)"
$encodedCreds = [System.Convert]::ToBase64String([System.Text.Encoding]::ASCII.GetBytes($pair))
$basicAuthValue = "Basic $encodedCreds"
$Header = @{Authorization = $basicAuthValue}
$url = "http://localhost:8088/semarchy/api/rest/admin/repository"
Invoke-RestMethod -Uri $url -Header $Header | ConvertTo-Json
Create a New model
$user = "semadmin"
$pass = "semadmin"
$pair = "$($user):$($pass)"
$encodedCreds = [System.Convert]::ToBase64String([System.Text.Encoding]::ASCII.GetBytes($pair))
$basicAuthValue = "Basic $encodedCreds"
$Header = @{Authorization = $basicAuthValue}
$url = "http://localhost:8088/semarchy/api/rest/app-builder/models"
$model = @{name= "myDemo"
label= "my demo model"
description= "my demo model description"
branch= @{
name= "mybranch"
label= "my branch label"
description= "my first branch"
}}
$body = (ConvertTo-Json $model)
Invoke-RestMethod -Uri $url -Method Post -Body $body -ContentType 'application/json' -Header $Header
Export model Edition
$user = "semadmin"
$pass = "semadmin"
$pair = "$($user):$($pass)"
$encodedCreds = [System.Convert]::ToBase64String([System.Text.Encoding]::ASCII.GetBytes($pair))
$basicAuthValue = "Basic $encodedCreds"
$Header = @{Authorization = $basicAuthValue}
$url = get-content .\URL.txt
$url = $url + "/api/rest/app-builder/models/Winoa/editions/0.0/content"
Invoke-RestMethod -Uri $url -Method get -Header $Header -OutFile export.xml
Complete Sample to import a model on a DEV environement
#connection to xDM using basic authentification
$user = "semadmin"
$pass = "semadmin"
$pair = "$($user):$($pass)"
$encodedCreds = [System.Convert]::ToBase64String([System.Text.Encoding]::ASCII.GetBytes($pair))
$basicAuthValue = "Basic $encodedCreds"
$Header = @{Authorization = $basicAuthValue}
#-------------------------------------------------------------------------------------------------------
#call the Rest API to create a new model
#-------------------------------------------------------------------------------------------------------
#Build the URL
#base url is stored in URL.txt (http://localhost:8088/semarchy)
$baseurl = get-content .\URL.txt
$url = $baseurl + "/api/rest/app-builder/models"
#first step is to build the payload (aka the body)
$model = @{name= "Winoa"
label= "my demo model"
description= "my demo model description"
branch= @{
name= "mybranch"
label= "my branch label"
description= "my first branch"
}}
$body = (ConvertTo-Json $model)
# Call the Rest API to create the model with the good payload in the good content type
Write-Output "1 - Creating the model ....."
Invoke-RestMethod -Uri $url -Method Post -Body $body -ContentType 'application/json' -Header $Header
#-------------------------------------------------------------------------------------------------------
#call the Rest API to import the model
#-------------------------------------------------------------------------------------------------------
#build the URL
$url = $baseurl + "/api/rest/app-builder/models/Winoa/editions/0.0/content"
# Call the rest API to import the model with the good content type
Write-Output "2 - Import the model ....."
$model = get-content .\export.xml -Raw
Invoke-RestMethod -Uri $url -Method Post -Header $Header -Body $model -ContentType "application/octet-stream"
#--------------------------------------------------------------------------------------------------------
#Call the Rest Api to create a Datalocation
#--------------------------------------------------------------------------------------------------------
#Build the URL
$url = $baseurl + "/api/rest/app-builder/data-locations"
#Build the payload
$dataloc = @{name= "Cust"
type= "DEV"
label= "ma dataloc"
description= "my test dataloc create by Rest API"
dataSource= "java:comp/env/jdbc/CUSTOMER"
modelName= "Winoa"
modelEditionKey= "0.0"
}
$body = (ConvertTo-Json $dataloc)
#Call the Rest API to create the dataloc
Write-Output "3 - Create the Data Location ....."
Invoke-RestMethod -Uri $url -Method Post -Body $body -ContentType 'application/json' -Header $Header