调用Purview API创建术语返回200但无法查询及指定模板创建咨询
问题1:解决创建的术语无法搜索/查看的问题
你的代码当前调用的是**创建术语表(Glossary)**的API端点,而非创建术语(Glossary Term)的端点,这是返回200但找不到术语的核心原因。修正步骤如下:
获取默认术语表的GUID
先通过GET请求获取默认术语表的ID:$glossaryListEndpoint = 'https://pv-chn-asiabi-sea-dev.purview.azure.com/catalog/api/atlas/v2/glossary' $glossaryResponse = Invoke-WebRequest -Uri $glossaryListEndpoint -Method Get -Headers $headers $glossaryList = $glossaryResponse.Content | ConvertFrom-Json $defaultGlossaryId = $glossaryList.value | Where-Object { $_.name -eq "Glossary" } | Select-Object -ExpandProperty guid修正API端点,创建术语
使用获取到的术语表GUID拼接正确的创建术语端点,同时确保请求体参数合规:# 正确的创建术语端点 $glossaryTermCreateEndpoint = "https://pv-chn-asiabi-sea-dev.purview.azure.com/catalog/api/atlas/v2/glossary/$defaultGlossaryId/terms" $Glossaryterm = @{ qualifiedName = "sample-term" # 确保全局唯一,建议加前缀避免重复 name= "sample-term" longDescription = "示例术语长描述" shortDescription = "示例术语短描述" status = "Approved" # 设为Approved可立即在已发布列表查看,Draft状态需去草稿列表查找 typeName = "GlossaryTerm" # 默认术语模板类型 } $jsonbody = $Glossaryterm | ConvertTo-Json -Depth 10 $Responsepost = Invoke-WebRequest -Uri $glossaryTermCreateEndpoint -Method Post -Headers $headers -Body $jsonbody -ContentType 'application/json'额外排查点
- 术语创建后存在1-2分钟的索引延迟,需等待片刻再搜索
- 若使用
status = "Draft",需在Purview门户的术语库 > 草稿中查看 - 确保
qualifiedName全局唯一,重复值可能导致创建异常(即使返回200)
问题2:在指定的术语模板下创建术语
基于自定义术语模板创建术语,只需在请求体中指定模板对应的typeName,并添加模板定义的自定义属性:
确认自定义模板的类型名称
在Purview门户的术语库 > 术语模板中,查看目标模板的类型名称(例如自定义模板名为CustomerTerm)构造含模板属性的请求体
$Glossaryterm = @{ qualifiedName = "customer-sample-term" name= "客户示例术语" longDescription = "基于自定义模板创建的术语" shortDescription = "自定义模板术语" status = "Approved" typeName = "CustomerTerm" # 指定自定义模板的类型名 # 新增模板定义的自定义属性,需与模板字段名完全匹配 attributes = @{ customerType = "企业客户" contractExpiryDate = "2025-12-31" } } $jsonbody = $Glossaryterm | ConvertTo-Json -Depth 10 $Responsepost = Invoke-WebRequest -Uri $glossaryTermCreateEndpoint -Method Post -Headers $headers -Body $jsonbody -ContentType 'application/json'
内容的提问来源于stack exchange,提问作者mytabi
相关产品推荐
相关产品推荐

