Datový asset (Azure Data Catalog REST API)
Opatřit poznámkami
Anotuje prostředek.
etag
vlastnost je volitelná a používá se pro řízení souběžnosti.
POST https://api.azuredatacatalog.com/catalogs/{catalog_name}/views/{view_name}/{view_item_id}/{nested_view_name}?api-version={api-version}
Poznámka
Některé implementace klienta HTTP můžou ze serveru automaticky znovu vydávat požadavky v reakci na kód 302, ale obvykle z požadavku odstraňují hlavičky autorizace . Vzhledem k tomu, že autorizační hlavička se vyžaduje k odesílání požadavků na ADC, musíte zajistit, aby hlavička Autorizace byla stále poskytnuta při opětovném vystavení požadavku do umístění pro přesměrování určeného službou ADC. Níže je ukázkový kód, který to demonstruje pomocí objektu HttpWebRequest .NET.
Parametry identifikátoru URI
Název | Description | Typ dat |
---|---|---|
catalog_name | Název katalogu nebo "DefaultCatalog" pro použití výchozího katalogu. | Řetězec |
view_name | Název zobrazení datového assetu. | Řetězec |
view_item_id | ID položky zobrazení. | Řetězec |
nested_view_name | Název vnořené položky zobrazení. | Řetězec |
verze-api | Verze rozhraní API. | Řetězec |
Příklad: Přidání expertů
POST https://api.azuredatacatalog.com/catalogs/DefaultCatalog/views/tables/042297b0...1be45ecd462a/experts?api-version=2016-03-30
Hlavička
Content-Type: application/json
x-ms-client-request-id: 13d9f885…a92d-8a9f8cf9f707
Authorization: Bearer eyJ0eX ... FWSXfwtQ
Text
{
"etag": "59085E253E2244A59F664A2F447E675E",
"properties":
{
"fromSourceSystem": false,
"key": "22c3fa019b3945dc97143ebc3ad74cbf--1111fa019b3945dc97143ebc3ad74cbf",
"expert":
{
"upn": "expert1@contoso.com",
"objectId": "1111fa019b3945dc97143ebc3ad74cbf"
},
}
}
Příklad: Přidání značek termínů glosáře
POST https://api.azuredatacatalog.com/catalogs/DefaultCatalog/views/tables/042297b0...1be45ecd462a/termTags?api-version=2016-03-30
Hlavička
Content-Type: application/json
x-ms-client-request-id: 13d9f885…a92d-8a9f8cf9f707
Authorization: Bearer eyJ0eX ... FWSXfwtQ
Text
{
"etag": "59085E253E2244A59F664A2F447E675E",
"properties":
{
"fromSourceSystem": false,
"key": "22c3fa019b3945dc97143ebc3ad74cbf--1111fa019b3945dc97143ebc3ad74cbf",
"termId": "https://test.catalog.com/catalogs/DefaultCatalog/glossaries/DefaultGlossary/terms/ed975c9d-2fb2-49a3-b6f2-222389cefd7e",
}
}
Příklad: Přidání značek termínů ve sloupci glosáře
POST https://api.azuredatacatalog.com/catalogs/DefaultCatalog/views/tables/042297b0...1be45ecd462a/columnTermTags?api-version=2016-03-30
Hlavička
Content-Type: application/json
x-ms-client-request-id: 13d9f885…a92d-8a9f8cf9f707
Authorization: Bearer eyJ0eX ... FWSXfwtQ
Text
{
"etag": "59085E253E2244A59F664A2F447E675E",
"properties":
{
"fromSourceSystem": false,
"key": "22c3fa019b3945dc97143ebc3ad74cbf--1111fa019b3945dc97143ebc3ad74cbf",
"columnName": "Col1",
"termId": "https://test.catalog.com/catalogs/DefaultCatalog/glossaries/DefaultGlossary/terms/ed975c9d-2fb2-49a3-b6f2-222389cefd7e",
}
}
Odpověď
Stavové kódy
Kód | Description |
---|---|
201 | Vytvořen. Požadavek byl splněn a byla vytvořena nová poznámka. |
200 | OK. Existující poznámka byla aktualizována. |
412 | Předběžná podmínka se nezdařila. Žádost byla zrušena kvůli neshodě značky ETag alespoň v jedné položce. |
Typ obsahu
application/json
Hlavička
HTTP/1.1 201 Created
x-ms-request-id: 72cf83c0…058f2b2a0c68
Location: https://api.azuredatacatalog.com/catalogs/DefaultCatalog/views/tables/042297b0...1be45ecd462a/experts/22c3fa019b3945dc97143ebc3ad74cbf-1111fa019b3945dc97143ebc3ad74cbf
Registrace nebo aktualizace
Zaregistruje nový datový asset nebo aktualizuje existující, pokud již existuje prostředek se stejnou identitou. Položky můžou volitelně obsahovat hodnoty ETag, které pro ně umožňují řízení optimistické souběžnosti.
Žádost
POST https://api.azuredatacatalog.com/catalogs/{catalog_name}/views/{view_name}?api-version={api-version}
Poznámka
Některé implementace klienta HTTP můžou ze serveru automaticky znovu vydávat požadavky v reakci na kód 302, ale obvykle z požadavku odstraňují hlavičky autorizace. Vzhledem k tomu, že autorizační hlavička se vyžaduje k odesílání požadavků na ADC, musíte zajistit, aby hlavička Autorizace byla stále poskytnuta při opětovném vystavení požadavku do umístění pro přesměrování určeného službou ADC. Níže je ukázkový kód, který to demonstruje pomocí objektu HttpWebRequest .NET.
Parametry identifikátoru URI
Název | Description | Typ dat |
---|---|---|
catalog_name | Název katalogu nebo "DefaultCatalog" pro použití výchozího katalogu. | Řetězec |
view_name | Název zobrazení datového assetu. | Řetězec |
verze-api | Verze rozhraní API. | Řetězec |
Příklad POST
POST https://api.azuredatacatalog.com/catalogs/DefaultCatalog/views/tables?api-version=2016-03-30
Hlavička
Content-Type: application/json
x-ms-client-request-id: 13c45c14…46ab469473f0
Authorization: Bearer eyJ0eX ... FWSXfwtQ
Příklad textu
{
"roles": [
{
"role": "Contributor",
"members": [
{
"objectId": "00000000-0000-0000-0000-000000000201"
}
]
}
],
"properties": {
"fromSourceSystem": true,
"name": "Orders",
"dataSource": {
"sourceType": "SQL Server",
"objectType": "Table"
},
"dsl": {
"protocol": "tds",
"authentication": "windows",
"address": {
"server": "MyServer.contoso.com",
"database": "NORTHWND",
"schema": "dbo",
"object": "Orders"
}
},
"lastRegisteredBy": {
"upn": "user1@contoso.com",
"firstName": "User1FirstName",
"lastName": "User1LastName"
},
"containerId": "containers/3b2c00be-...-1f15367f54e4"
},
"annotations": {
"schema": {
"roles": [
{
"role": "Contributor",
"members": [
{
"objectId": "00000000-0000-0000-0000-000000000201"
}
]
}
],
"properties": {
"fromSourceSystem": true,
"columns": [
{
"name": "OrderID",
"isNullable": false,
"type": "int",
"maxLength": 4,
"precision": 10
},
{
"name": "CustomerID",
"isNullable": true,
"type": "nchar",
"maxLength": 10,
"precision": 0
},
{
"name": "EmployeeID",
"isNullable": true,
"type": "int",
"maxLength": 4,
"precision": 10
},
{
"name": "OrderDate",
"isNullable": true,
"type": "datetime",
"maxLength": 8,
"precision": 23
}
]
}
}
}
}
Odpověď
Stavové kódy
Kód | Description |
---|---|
200 | OK. Existující prostředek byl aktualizován. |
201 | Vytvořen. Požadavek byl splněn a byl vytvořen nový prostředek. |
412 | Předběžná podmínka se nezdařila. Žádost byla zrušena kvůli neshodě značky ETag alespoň v jedné položce. |
Typ obsahu
application/json
Hlavička
HTTP/1.1 201 Created
x-ms-request-id: 72cf83c0…058f2b2a0c68
Location: https://e2255231-6dd3-1a0d-a6d8-7fc96dd780c2-mycatalog.api.azuredatacatalog.com/catalogs/MyCatalog/views/tables/042297b0…1be45ecd462a
Podporované zdroje dat
Seznam aktuálně podporovaných objektů zdrojů dat najdete v tématu Azure Data Catalog podporované zdroje dat.
Příklad
Tento příklad ukazuje, jak získat přístupový token Azure AD a provést operaci registrace.
Poznámka Tento příklad používá k aktualizaci výchozího katalogu uživatele klíčové slovo DefaultCatalog . Můžete také zadat skutečný název katalogu. Název katalogu najdete tak, že se přihlásíte k Azure Data Catalog a zvolíte Uživatel. Zobrazí se název katalogu .
using System;
using System.Net;
using Microsoft.IdentityModel.Clients.ActiveDirectory;
using System.IO;
...
//To learn how to register a client app and get a Client ID,
// see https://msdn.microsoft.com/library/azure/mt403303.aspx#clientID
static string clientIDFromAzureAppRegistration = "{clientID}";
static void Main(string[] args)
{
//Note: This example uses the "DefaultCatalog" keyword to update the user's default catalog. You may alternately
//specify the actual catalog name.
string catalogName = "DefaultCatalog";
string registerJson = Register(catalogName, OrdersJsonWithEveryoneContributor());
Console.ReadLine();
}
static AuthenticationResult AccessToken()
{
//Get access token:
// To call a Data Catalog REST operation, create an instance of AuthenticationContext and call AcquireToken
// AuthenticationContext is part of the Active Directory Authentication Library NuGet package
// To install the Active Directory Authentication Library NuGet package in Visual Studio,
// run "Install-Package Microsoft.IdentityModel.Clients.ActiveDirectory" from the nuget Package Manager Console.
//Resource Uri for Data Catalog API
string resourceUri = "https://api.azuredatacatalog.com";
//To learn how to register a client app and get a Client ID, see https://msdn.microsoft.com/library/azure/mt403303.aspx#clientID
string clientId = clientIDFromAzureAppRegistration;
//A redirect uri gives AAD more details about the specific application that it will authenticate.
//Since a client app does not have an external service to redirect to, this Uri is the standard placeholder for a client app.
string redirectUri = "https://login.live.com/oauth20_desktop.srf";
// Create an instance of AuthenticationContext to acquire an Azure access token
// OAuth2 authority Uri
string authorityUri = "https://login.windows.net/common/oauth2/authorize";
AuthenticationContext authContext = new AuthenticationContext(authorityUri);
// Call AcquireToken to get an Azure token from Azure Active Directory token issuance endpoint
// AcquireToken takes a Client Id that Azure AD creates when you register your client app.
return authContext.AcquireToken(resourceUri, clientId, new Uri(redirectUri), PromptBehavior.RefreshSession);
}
static string Register(string catalogName, string json)
{
string location = string.Empty;
string fullUri = string.Format("https://api.azuredatacatalog.com/catalogs/{0}/views/{1}?api-version=2016-03-30", catalogName, viewType);
//Create a POST WebRequest as a Json content type
HttpWebRequest request = System.Net.WebRequest.Create(fullUri) as System.Net.HttpWebRequest;
request.KeepAlive = true;
request.Method = "POST";
try
{
var response = SetRequestAndGetResponse(request, json);
//Get the Response header which contains the data asset ID
//The format is: tables/{data asset ID}
location = httpWebResponse.Headers["Location"];
}
catch (WebException ex)
{
Console.WriteLine(ex.Message);
Console.WriteLine(ex.Status);
if (ex.Response != null)
{
// can use ex.Response.Status, .StatusDescription
if (ex.Response.ContentLength != 0)
{
using (var stream = ex.Response.GetResponseStream())
{
using (var reader = new StreamReader(stream))
{
Console.WriteLine(reader.ReadToEnd());
}
}
}
}
location = null;
}
return location;
}
static HttpWebResponse SetRequestAndGetResponse(HttpWebRequest request, string payload = null)
{
while (true)
{
//To authorize the operation call, you need an access token which is part of the Authorization header
request.Headers.Add("Authorization", AccessToken().CreateAuthorizationHeader());
//Set to false to be able to intercept redirects
request.AllowAutoRedirect = false;
if (!string.IsNullOrEmpty(payload))
{
byte[] byteArray = Encoding.UTF8.GetBytes(payload);
request.ContentLength = byteArray.Length;
request.ContentType = "application/json";
//Write JSON byte[] into a Stream
request.GetRequestStream().Write(byteArray, 0, byteArray.Length);
}
else
{
request.ContentLength = 0;
}
HttpWebResponse response = request.GetResponse() as HttpWebResponse;
// Requests to **Azure Data Catalog (ADC)** may return an HTTP 302 response to indicate
// redirection to a different endpoint. In response to a 302, the caller must re-issue
// the request to the URL specified by the Location response header.
if (response.StatusCode == HttpStatusCode.Redirect)
{
string redirectedUrl = response.Headers["Location"];
HttpWebRequest nextRequest = WebRequest.Create(redirectedUrl) as HttpWebRequest;
nextRequest.Method = request.Method;
request = nextRequest;
}
else
{
return response;
break;
}
}
}
static string OrdersJsonWithEveryoneContributor()
{
return @"
{
'roles': [
{
'role': 'Contributor',
'members': [
{
'objectId': '00000000-0000-0000-0000-000000000201'
}
]
}
],
'properties': {
'fromSourceSystem': 'true',
'name': 'Orders',
'dataSource': {
'sourceType': 'SQL Server',
'objectType': 'Table'
},
'dsl': {
'protocol': 'tds',
'authentication': 'windows',
'address': {
'server': 'MyServer.contoso.com',
'database': 'NORTHWND',
'schema': 'dbo',
'object': 'Orders'
}
},
'lastRegisteredBy': {
'upn': 'user1@contoso.com',
'firstName': 'User1FirstName',
'lastName': 'User1LastName'
},
'containerId': 'containers/a9f8a2e1-d826-7c0c-b186-c7f4334a6b4f'
},
'annotations': {
'schema': {
'roles': [
{
'role': 'Contributor',
'members': [
{
'objectId': '00000000-0000-0000-0000-000000000201'
}
]
}
],
'properties': {
'fromSourceSystem': 'true',
'columns': [
{
'name': 'OrderID',
'isNullable': false,
'type': 'int',
'maxLength': 4,
'precision': 10
},
{
'name': 'CustomerID',
'isNullable': true,
'type': 'nchar',
'maxLength': 10,
'precision': 0
},
{
'name': 'EmployeeID',
'isNullable': true,
'type': 'int',
'maxLength': 4,
'precision': 10
},
{
'name': 'OrderDate',
'isNullable': true,
'type': 'datetime',
'maxLength': 8,
'precision': 23
}
]
}
}
}
}";
}
Získat s poznámkami
Získá datový asset s poznámkami.
Podporuje volitelný parametr adc.metadata
hlavičky Accept, který požaduje, aby byly značky ETag zahrnuty do odpovědi pro všechny položky. Pokud chcete v odpovědi získat značky ETag, použijte hodnoty minimální nebo úplné. Platné hodnoty jsou none
, minimal
a full
.
Žádost
GET https://api.azuredatacatalog.com/catalogs/{catalog_name}/views/{view_name}/{view_item_id}?api-version={api-version}
Poznámka
Některé implementace klienta HTTP můžou ze serveru automaticky znovu vydávat požadavky v reakci na kód 302, ale obvykle z požadavku odstraňují hlavičky autorizace . Vzhledem k tomu, že autorizační hlavička se vyžaduje k odesílání požadavků na ADC, musíte zajistit, aby hlavička Autorizace byla stále poskytnuta při opětovném vystavení požadavku do umístění pro přesměrování určeného službou ADC. Níže je ukázkový kód, který to demonstruje pomocí objektu HttpWebRequest .NET.
Parametry identifikátoru URI
Název | Description | Typ dat |
---|---|---|
catalog_name | Název katalogu nebo "DefaultCatalog" pro použití výchozího katalogu. | Řetězec |
view_name | Název zobrazení datového assetu. | Řetězec |
view_item_id | ID položky zobrazení. | Řetězec |
verze-api | Verze rozhraní API. | Řetězec |
Příklad get
GET https://api.azuredatacatalog.com/catalogs/DefaultCatalog/views/tables/042297b...1be45ecd462a?api-version=2016-03-30
Hlavička
x-ms-client-request-id: 8091955f…8f5b4c0acede
Authorization: Bearer eXJ0eyAiOiJKV1QiLCJhbGciOi...
Accept: application/json;adc.metadata=full
Odpověď
Stavové kódy
Kód | Description |
---|---|
200 | OK. Odpověď obsahuje požadované zobrazení prostředků. |
Typ obsahu
application/json
Hlavička
x-ms-request-id: 1095e88c…caffabd6dabd
Content-Type: application/json; charset=utf-8
Text
{
"id": "https://e2255231-6dd3-1a0d-a6d8-7fc96dd780c2-mycatalog.api.azuredatacatalog.com/catalogs/MyCatalog/views/tables/042297b0-...-1be45ecd462a",
"etag": "1234567891",
"timestamp": "2015-05-15T03:48:39.2425547",
"roles": [
{
"role": "Contributor",
"members": [
{
"objectId": "00000000-0000-0000-0000-000000000201"
}
]
}
],
"effectiveRights": [
"Read",
"Delete",
"ChangeOwnership",
"ChangeVisibility",
"ViewPermissions",
"ViewRoles",
"Update",
"TakeOwnership"
],
"properties": {
"fromSourceSystem": true,
"name": "Orders",
"dataSource": {
"sourceType": "SQL Server",
"objectType": "Table"
},
"dsl": {
"protocol": "tds",
"authentication": "windows",
"address": {
"server": "MyServer.contoso.com",
"database": "NORTHWND",
"schema": "dbo",
"object": "Orders"
}
},
"lastRegisteredBy": {
"upn": "user1@contoso.com",
"firstName": "User1FirstName",
"lastName": "User1LastName"
},
"containerId": "containers/3b2c00be-...-1f15367f54e4"
},
"annotations": {
"schema": {
"id": "https://e2255231-6dd3-1a0d-a6d8-7fc96dd780c2-mycatalog.api.azuredatacatalog.com/catalogs/MyCatalog/views/tables/042297b0-...-1be45ecd462a/schema",
"etag": "1234567892",
"timestamp": "2015-05-15T03:48:39.2425547",
"roles": [
{
"role": "Contributor",
"members": [
{
"objectId": "00000000-0000-0000-0000-000000000201"
}
]
}
],
"effectiveRights": [
"Read",
"Delete",
"ViewRoles",
"Update"
],
"properties": {
"fromSourceSystem": true,
"columns": [
{
"name": "OrderID",
"isNullable": false,
"type": "int",
"maxLength": 4,
"precision": 10
},
{
"name": "CustomerID",
"isNullable": true,
"type": "nchar",
"maxLength": 10,
"precision": 0
},
{
"name": "EmployeeID",
"isNullable": true,
"type": "int",
"maxLength": 4,
"precision": 10
},
{
"name": "OrderDate",
"isNullable": true,
"type": "datetime",
"maxLength": 8,
"precision": 23
}
]
}
},
"experts": [
{
"id": "https://e2255231-6dd3-1a0d-a6d8-7fc96dd780c2-mycatalog.api.azuredatacatalog.com/catalogs/MyCatalog/views/tables/042297b0-...-1be45ecd462a/experts/22c3fa019b3945dc97143ebc3ad74cbf-1111fa019b3945dc97143ebc3ad74cbf",
"etag": "1234567893",
"timestamp": "2015-05-15T03:48:39.2425547",
"roles": [
{
"role": "Contributor",
"members": [
{
"objectId": "22c3fa01-9b39-45dc-9714-3ebc3ad74cbf"
}
]
}
],
"effectiveRights": [
"Read",
"Delete",
"ViewRoles",
"Update"
],
"properties": {
"fromSourceSystem": false,
"key": "22c3fa019b3945dc97143ebc3ad74cbf-1111fa019b3945dc97143ebc3ad74cbf",
"expert": {
"upn": "expert1@contoso.com",
"objectId": "1111fa019b3945dc97143ebc3ad74cbf"
}
}
}
]
}
}
Hledat
Vyhledá datové assety na základě zadaných hledaných termínů.
Žádost
GET https://api.azuredatacatalog.com/catalogs/{catalog_name}/search/search?api-version={api-version}&searchTerms={search_terms}&facets={facet_terms}&startPage={start_page}&count={count}&view={data_source}
Poznámka
Některé implementace klienta HTTP můžou ze serveru automaticky znovu vydávat požadavky v reakci na kód 302, ale obvykle z požadavku odstraňují hlavičky autorizace . Vzhledem k tomu, že autorizační hlavička se vyžaduje k odesílání požadavků na ADC, musíte zajistit, aby hlavička Autorizace byla stále poskytnuta při opětovném vystavení požadavku do umístění pro přesměrování určeného službou ADC. Níže je ukázkový kód, který to demonstruje pomocí objektu HttpWebRequest .NET.
Parametry identifikátoru URI
Název | Description | Typ dat |
---|---|---|
catalog_name | Název katalogu nebo "DefaultCatalog" pro použití výchozího katalogu. | Řetězec |
verze-api | Verze rozhraní API. | Řetězec |
Parametry dotazů
Název | Description | Typ dat |
---|---|---|
searchTerms | Povinná hodnota. Termíny, které se mají hledat. | Řetězec |
Aspekty | Volitelné: Názvy polí oddělených čárkami, které budou omezující vlastnosti výsledků. | Řetězec |
startPage | Volitelná úvodní stránka výsledků použitých pro stránkování spolu s parametrem count Povolené hodnoty jsou větší než 0. Pokud je předána hodnota menší nebo rovna 0, vrátí se chyba HTTP s kódem chyby 400. | Řetězec |
count | Volitelný počet požadovaných výsledků na jedné stránce (stránkování) Výchozí hodnota je 10. Povolené hodnoty jsou v intervalu od 1 do 100 včetně. Pokud je předána hodnota mimo tento rozsah, vrátí se chyba HTTP s kódem chyby 400. Pokud chcete získat další část výsledků hledání, opakujte požadavek, ale zvyšte hodnotu startPage o 1. | Integer |
Prohlédni | Volitelné: Získá zobrazení, které chce klient vidět, prozatím je to jediná podporovaná možnost ve zdroji Dat. | Řetězec |
Příklad get
https://api.azuredatacatalog.com/catalogs/DefaultCatalog/search/search?searchTerms=My_Server&count=10&startPage=1&api-version=2016-03-30
Hlavička
x-ms-client-request-id: 546f053a…a1612f3a3d69
Authorization: Bearer eXJ0eyAiOiJKV1QiLCJhbGciOi...
Odpověď
Stavové kódy
Kód | Description |
---|---|
200 | OK. Úspěšná operace s výsledkem hledání. |
Typ obsahu
application/json
Hlavička
x-ms-request-id: 0ab2e798…088223257ad2
Content-Length: 3926
Text
{
"query": {
"id": "bd067219...4ba9a56e204b",
"searchTerms": "My_server",
"startIndex": 1,
"startPage": 1,
"count": 1,
"id": "bd067219...4ba9a56e204b",
"totalResults": 508,
"startIndex": 1,
"itemsPerPage": 1,
"results": [{
"updated": "0001-01-01T00:00:00",
"content": {
"properties": {
"fromSourceSystem": true,
"name": "MyTable",
"dsl": {
"protocol": "tds",
"authentication": "windows",
"address": {
"server": "My_SERVER",
"database": "my_DB",
"schema": "my_SCHEMA",
"object": "my_TABLE"
}
},
"dataSource": {
"sourceType": "SQL Server",
"objectType": "Table"
},
"lastRegisteredBy": {
"upn": "user1@contoso.com",
"firstName": "User1FirstName",
"lastName": "User1LastName"
},
"containerId": "https://e2255231-6dd3-1a0d-a6d8-7fc96dd780c2-mycatalog.api.azuredatacatalog.com/catalogs/MyCatalog/views/containers/a9f8a2e1-d826-7c0c-b186-c7f4334a6b4f"
},
"id": "https://e2255231-6dd3-1a0d-a6d8-7fc96dd780c2-mycatalog.api.azuredatacatalog.com/catalogs/MyCatalog/views/tables/08d91f0d-26a0-1e8e-ab3b-d463ac3e62cb",
"type": "Microsoft.DataSource.Table.1",
"timestamp": "2016-03-15T23:20:12.5423855",
"annotations": {
"schema": {
"properties": {
"fromSourceSystem": true,
"columns": [
{
"name": "ID",
"type": "int",
"maxLength": 4,
"precision": 10,
"isNullable": false
},
{
"name": "Column2",
"type": "nchar",
"maxLength": 10,
"precision": 0,
"isNullable": true
}
]
},
"id": "https://e2255231-6dd3-1a0d-a6d8-7fc96dd780c2-mycatalog.api.azuredatacatalog.com/catalogs/MyCatalog/views/tables/08d91f0d-26a0-1e8e-ab3b-d463ac3e62cb/schema",
"type": "Microsoft.DataSource.Schema.1",
"timestamp": "2016-03-15T23:20:12.5423855",
"roles": [
{
"role": "Contributor",
"members": [
{
"objectId": "00000000-0000-0000-0000-000000000201"
}
]
}
],
"effectiveRights": [
"Read",
"Delete",
"ViewRoles",
"Update"
]
}
},
"roles": [
{
"role": "Contributor",
"members": [
{
"objectId": "00000000-0000-0000-0000-000000000201"
}
]
}
],
"effectiveRights": [
"Read",
"Delete",
"ChangeOwnership",
"ChangeVisibility",
"ViewPermissions",
"ViewRoles",
"Update",
"TakeOwnership"
]
},
"hitProperties": [{
"fieldPath": "properties.dsl.address.server",
"highlightDetail": [{
"highlightedWords": [{
"word": "My_sERVER"
}],
"highlightedFragment": "My_sERVER"
}]
},
{
"fieldPath": "properties.dataSource.sourceType",
"highlightDetail": [{
"highlightedWords": [{
"word": "Server"
}],
"highlightedFragment": "SQL Server"
}]
},
{
"fieldPath": "properties.dsl.address.object",
"highlightDetail": [{
"highlightedWords": [{
"word": "my"
}],
"highlightedFragment": "my_TABLE"
}]
},
{
"fieldPath": "properties.dsl.address.database",
"highlightDetail": [{
"highlightedWords": [{
"word": "my"
}],
"highlightedFragment": "my_DB"
}]
},
{
"fieldPath": "properties.dsl.address.schema",
"highlightDetail": [{
"highlightedWords": [{
"word": "my"
}],
"highlightedFragment": "my_SCHEMA"
}]
}]
}]
}
Příklad
Tento příklad ukazuje, jak získat přístupový token Azure AD a provést operaci hledání.
Poznámka Název katalogu najdete tak, že se přihlásíte k Azure Data Catalog a zvolíte Uživatel. Zobrazí se název katalogu .
using System;
using System.Net;
using Microsoft.IdentityModel.Clients.ActiveDirectory;
using System.IO;
...
//To learn how to register a client app and get a Client ID,
// see https://msdn.microsoft.com/library/azure/mt403303.aspx#clientID
static string clientIDFromAzureAppRegistration = "{clientID}";
static void Main(string[] args)
{
//Note: This example uses the "DefaultCatalog" keyword to update the user's default catalog. You may alternately
//specify the actual catalog name.
string catalogName = "DefaultCatalog";
//Search everything
string searchTerm = string.Empty;
string searchJson = Search(catalogName, searchTerm);
//Other examples "tags:=Sales", "upn:{username}"
Console.WriteLine(searchJson);
}
static AuthenticationResult AccessToken()
{
//Get access token:
// To call a Data Catalog REST operation, create an instance of AuthenticationContext and call AcquireToken
// AuthenticationContext is part of the Active Directory Authentication Library NuGet package
// To install the Active Directory Authentication Library NuGet package in Visual Studio,
// run "Install-Package Microsoft.IdentityModel.Clients.ActiveDirectory" from the nuget Package Manager Console.
//Resource Uri for Data Catalog API
string resourceUri = "https://api.azuredatacatalog.com";
//To learn how to register a client app and get a Client ID, see https://msdn.microsoft.com/library/azure/mt403303.aspx#clientID
string clientId = clientIDFromAzureAppRegistration;
//A redirect uri gives AAD more details about the specific application that it will authenticate.
//Since a client app does not have an external service to redirect to, this Uri is the standard placeholder for a client app.
string redirectUri = "https://login.live.com/oauth20_desktop.srf";
// Create an instance of AuthenticationContext to acquire an Azure access token
// OAuth2 authority Uri
string authorityUri = "https://login.windows.net/common/oauth2/authorize";
AuthenticationContext authContext = new AuthenticationContext(authorityUri);
// Call AcquireToken to get an Azure token from Azure Active Directory token issuance endpoint
// AcquireToken takes a Client Id that Azure AD creates when you register your client app.
return authContext.AcquireToken(resourceUri, clientId, new Uri(redirectUri), PromptBehavior.RefreshSession);
}
static string Search(string catalogName, string searchTerm)
{
string responseContent = string.Empty;
//NOTE: To find the Catalog Name, sign into Azure Data Catalog, and choose User. You will see a list of Catalog names.
string fullUri =
string.Format("https://api.azuredatacatalog.com/catalogs/{0}/search/search?searchTerms={1}&count=10&api-version=2016-03-30", catalogName, searchTerm);
//Create a GET WebRequest
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(fullUri);
request.Method = "GET";
try
{
//Get HttpWebResponse from GET request
using (HttpWebResponse httpResponse = SetRequestAndGetResponse(request))
{
//Get StreamReader that holds the response stream
using (StreamReader reader = new System.IO.StreamReader(httpResponse.GetResponseStream()))
{
responseContent = reader.ReadToEnd();
}
}
}
catch (WebException ex)
{
Console.WriteLine(ex.Message);
Console.WriteLine(ex.Status);
if (ex.Response != null)
{
// can use ex.Response.Status, .StatusDescription
if (ex.Response.ContentLength != 0)
{
using (var stream = ex.Response.GetResponseStream())
{
using (var reader = new StreamReader(stream))
{
Console.WriteLine(reader.ReadToEnd());
}
}
}
}
return null;
}
return responseContent;
}
static HttpWebResponse SetRequestAndGetResponse(HttpWebRequest request, string payload = null)
{
while (true)
{
//To authorize the operation call, you need an access token which is part of the Authorization header
request.Headers.Add("Authorization", AccessToken().CreateAuthorizationHeader());
//Set to false to be able to intercept redirects
request.AllowAutoRedirect = false;
if (!string.IsNullOrEmpty(payload))
{
byte[] byteArray = Encoding.UTF8.GetBytes(payload);
request.ContentLength = byteArray.Length;
request.ContentType = "application/json";
//Write JSON byte[] into a Stream
request.GetRequestStream().Write(byteArray, 0, byteArray.Length);
}
else
{
request.ContentLength = 0;
}
HttpWebResponse response = request.GetResponse() as HttpWebResponse;
// Requests to **Azure Data Catalog (ADC)** may return an HTTP 302 response to indicate
// redirection to a different endpoint. In response to a 302, the caller must re-issue
// the request to the URL specified by the Location response header.
if (response.StatusCode == HttpStatusCode.Redirect)
{
string redirectedUrl = response.Headers["Location"];
HttpWebRequest nextRequest = WebRequest.Create(redirectedUrl) as HttpWebRequest;
nextRequest.Method = request.Method;
request = nextRequest;
}
else
{
return response;
break;
}
}
}
Odstranit
Odstraní datový prostředek a k němu připojené všechny poznámky (pokud jsou k dispozici).
Podporuje volitelnou hlavičku If-Match pro optimistické řízení souběžnosti. Podporuje se pouze slabý formát, například W/"123456789".
Žádost
DELETE https://api.azuredatacatalog.com/catalogs/{catalog_name}/views/{view_name}/{view_item_id}?api-version={api-version}
Poznámka
Některé klientské implementace HTTP můžou automaticky znovu vydávat požadavky v reakci na server 302, ale obvykle z požadavku odstraňují hlavičky autorizace . Vzhledem k tomu, že se k vytváření požadavků na ADC vyžaduje hlavička Autorizace, musíte zajistit, aby hlavička Autorizace byla při opětovném vystavení požadavku do umístění přesměrování určeného službou ADC stále poskytována. Níže je ukázkový kód, který to demonstruje pomocí objektu HttpWebRequest .NET.
Parametry identifikátoru URI
Název | Description | Typ dat |
---|---|---|
catalog_name | Název katalogu nebo "DefaultCatalog" pro použití výchozího katalogu. | Řetězec |
view_name | Název zobrazení datového assetu. | Řetězec |
view_item_id | ID položky zobrazení. | Řetězec |
verze-api | Verze rozhraní API. | Řetězec |
Příklad delete
DELETE https://api.azuredatacatalog.com/catalogs/DefaultCatalog/views/tables/042297b0...1be45ecd462a?api-version=2016-03-30
Hlavička
x-ms-client-request-id: 59b68a46…46dc3ec8dcb8
Authorization: Bearer eXJ0eyAiOiJKV1QiLCJhbGciOi...
If-Match: W/"123456789"
Odpověď
Stavové kódy
Kód | Description |
---|---|
204 | NoContent POZNÁMKA: Odstranění operace sémantic je "odstranit, pokud existuje", takže pokud prostředek nebo poznámka neexistují, je vrácen stavový kód úspěchu 204 (NoContent). |
412 | Předběžná podmínka se nezdařila. Žádost byla zrušena kvůli neshodě značky ETag. |
Typ obsahu
application/json
Hlavička
x-ms-request-id: 664f86cf…5e512fa78e92
Aktualizace poznámky
Aktualizace poznámku.
Položky mohou volitelně obsahovat hodnoty značky ETag, které pro ně umožňují řízení optimistické souběžnosti.
Žádost
PUT https://api.azuredatacatalog.com/catalogs/{catalog_name}/views/{view_name}/{view_item_id}/{nested_view_name}/{nested_non_singleton_view_item_id}?api-version={api-version}
PUT https://api.azuredatacatalog.com/catalogs/{catalog_name}/views/{view_name}/{view_item_id}/{nested_view_name}?api-version={api-version}
Poznámka
Některé klientské implementace HTTP můžou automaticky znovu vydávat požadavky v reakci na server 302, ale obvykle z požadavku odstraňují hlavičky autorizace . Vzhledem k tomu, že se k vytváření požadavků na ADC vyžaduje hlavička Autorizace, musíte zajistit, aby hlavička Autorizace byla při opětovném vystavení požadavku do umístění přesměrování určeného službou ADC stále poskytována. Níže je ukázkový kód, který to demonstruje pomocí objektu HttpWebRequest .NET.
Parametry identifikátoru URI
Název | Description | Typ dat |
---|---|---|
catalog_name | Název katalogu nebo "DefaultCatalog" pro použití výchozího katalogu. | Řetězec |
view_name | Název zobrazení datového assetu. | Řetězec |
view_item_id | ID položky zobrazení. | Řetězec |
nested_view_name | Název vnořeného zobrazení | Řetězec |
nested_non_singleton_view_item_id | ID vnořené položky zobrazení, která není jednoúčelová. Musí být k dispozici pro zobrazení, které není jednoduché. | Řetězec |
verze-api | Verze rozhraní API. | Řetězec |
Příklad PUT pro jednoúčelové zobrazení dokumentace
PUT https://api.azuredatacatalog.com/catalogs/DefaultCatalog/views/tables/042297b0...1be45ecd462a/documentation?api-version=2016-03-30
Hlavička
Content-Type: application/json; charset=utf-8
x-ms-client-request-id: 059692ee-...-57490fcec42c
Authorization: Bearer eXJ0eyAiOiJKV1QiLCJhbGciOi...
Základní schéma
Body:
{
"fromSourceSystem": false,
"etag": "123456789",
"content": "<new documentation content>",
"mimetype": "text",
}
Odpověď
Stavové kódy
Kód | Description |
---|---|
200 | OK. Aktualizovala se existující poznámka. |
412 | Předběžná podmínka se nezdařila. Požadavek byl zrušen kvůli neshodě značky ETag alespoň v jedné položce. |
Typ obsahu
application/json
Hlavička
x-ms-request-id: 3b8668da…1558d0f407c0
Odstranění poznámky
Odstraní poznámku a všechny vnořené poznámky (pokud existují).
Podporuje volitelnou hlavičku If-Match pro řízení optimistické souběžnosti. Podporuje se pouze slabý formát, například W/"123456789".
Žádost
DELETE https://api.azuredatacatalog.com/catalogs/{catalog_name}/views/{view_name}/{view_item_id}/{nested_view_name}/{nested_non_singleton_view_item_id}?api-version={api-version}
DELETE https://api.azuredatacatalog.com/catalogs/{catalog_name}/views/{view_name}/{view_item_id}/{nested_view_name}?api-version={api-version}
Poznámka
Některé klientské implementace HTTP můžou automaticky znovu vydávat požadavky v reakci na server 302, ale obvykle z požadavku odstraňují hlavičky autorizace . Vzhledem k tomu, že se k vytváření požadavků na ADC vyžaduje hlavička Autorizace, musíte zajistit, aby hlavička Autorizace byla při opětovném vystavení požadavku do umístění přesměrování určeného službou ADC stále poskytována. Níže je ukázkový kód, který to demonstruje pomocí objektu HttpWebRequest .NET.
Parametry identifikátoru URI
Název | Description | Typ dat |
---|---|---|
catalog_name | Název katalogu nebo "DefaultCatalog" pro použití výchozího katalogu. | Řetězec |
view_name | Název zobrazení datového assetu. | Řetězec |
view_item_id | ID položky zobrazení. | Řetězec |
nested_view_name | Název vnořeného zobrazení. | Řetězec |
nested_non_singleton_view_item_id | ID vnořené položky zobrazení, která není jednoúčelová. Musí být k dispozici pro zobrazení, které není jednoúčelové. | Řetězec |
verze-api | Verze rozhraní API. | Řetězec |
Příklad odstranění
DELETE https://api.azuredatacatalog.com/catalogs/DefaultCatalog/views/tables/042297b0-c187-49cc-8f30-1be45ecd462a/experts/22c3fa019b3945dc97143ebc3ad74cbf-1111fa019b3945dc97143ebc3ad74cbf?api-version=2016-03-30
Hlavička
x-ms-client-request-id: c8da5f08…67b203d77b2d
Authorization: Bearer eXJ0eyAiOiJKV1QiLCJhbGciOi...
If-Match: W/"123456789"
Odpověď
Stavové kódy
Kód | Description |
---|---|
204 | Bez obsahu |
412 | Předběžná podmínka se nezdařila. Žádost byla zrušena kvůli neshodě značky ETag. |
Typ obsahu
application/json
Hlavička
x-ms-request-id: 276b9dc4…e5f7017805c