Data Asset (Azure Data Catalog REST API)
Aantekeningen maken
Aantekeningen toevoegen aan een asset.
etag
eigenschap is optioneel en wordt gebruikt voor gelijktijdigheidsbeheer.
POST https://api.azuredatacatalog.com/catalogs/{catalog_name}/views/{view_name}/{view_item_id}/{nested_view_name}?api-version={api-version}
Notitie
Sommige HTTP-client-implementaties kunnen aanvragen automatisch opnieuw uitgeven als reactie op een 302 van de server, maar meestal worden autorisatieheaders uit de aanvraag verwijderd. Omdat de autorisatieheader vereist is om aanvragen naar ADC te verzenden, moet u ervoor zorgen dat de autorisatieheader nog steeds wordt opgegeven wanneer u een aanvraag opnieuw verzendt naar een omleidingslocatie die is opgegeven door ADC. Hieronder ziet u voorbeeldcode die dit aangeeft met behulp van het .NET HttpWebRequest-object.
URI-parameters
Naam | Beschrijving | Gegevenstype |
---|---|---|
catalog_name | Naam van de catalogus of 'DefaultCatalog' om de standaardcatalogus te gebruiken. | Tekenreeks |
view_name | Naam van gegevensassetweergave. | Tekenreeks |
view_item_id | Id van een item Weergeven. | Tekenreeks |
nested_view_name | Naam van een geneste weergave-item. | Tekenreeks |
api-versie | De API-versie. | Tekenreeks |
Voorbeeld: Experts toevoegen
POST https://api.azuredatacatalog.com/catalogs/DefaultCatalog/views/tables/042297b0...1be45ecd462a/experts?api-version=2016-03-30
Header
Content-Type: application/json
x-ms-client-request-id: 13d9f885…a92d-8a9f8cf9f707
Authorization: Bearer eyJ0eX ... FWSXfwtQ
Hoofdtekst
{
"etag": "59085E253E2244A59F664A2F447E675E",
"properties":
{
"fromSourceSystem": false,
"key": "22c3fa019b3945dc97143ebc3ad74cbf--1111fa019b3945dc97143ebc3ad74cbf",
"expert":
{
"upn": "expert1@contoso.com",
"objectId": "1111fa019b3945dc97143ebc3ad74cbf"
},
}
}
Voorbeeld: Woordenlijsttermtags toevoegen
POST https://api.azuredatacatalog.com/catalogs/DefaultCatalog/views/tables/042297b0...1be45ecd462a/termTags?api-version=2016-03-30
Header
Content-Type: application/json
x-ms-client-request-id: 13d9f885…a92d-8a9f8cf9f707
Authorization: Bearer eyJ0eX ... FWSXfwtQ
Hoofdtekst
{
"etag": "59085E253E2244A59F664A2F447E675E",
"properties":
{
"fromSourceSystem": false,
"key": "22c3fa019b3945dc97143ebc3ad74cbf--1111fa019b3945dc97143ebc3ad74cbf",
"termId": "https://test.catalog.com/catalogs/DefaultCatalog/glossaries/DefaultGlossary/terms/ed975c9d-2fb2-49a3-b6f2-222389cefd7e",
}
}
Voorbeeld: Woordenlijst met kolomtermtags toevoegen
POST https://api.azuredatacatalog.com/catalogs/DefaultCatalog/views/tables/042297b0...1be45ecd462a/columnTermTags?api-version=2016-03-30
Header
Content-Type: application/json
x-ms-client-request-id: 13d9f885…a92d-8a9f8cf9f707
Authorization: Bearer eyJ0eX ... FWSXfwtQ
Hoofdtekst
{
"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",
}
}
Antwoord
Statuscodes
Code | Beschrijving |
---|---|
201 | Gemaakt. Aan de aanvraag is voldaan en er is een nieuwe aantekening gemaakt. |
200 | OK. Er is een bestaande aantekening bijgewerkt. |
412 | Voorwaarde is mislukt. De aanvraag is geannuleerd omdat de ETag niet overeenkomt met ten minste één item. |
Content-Type
application/json
Header
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
Registreren of bijwerken
Registreert een nieuwe gegevensasset of werkt een bestaande bij als er al een asset met dezelfde identiteit bestaat. De items kunnen desgewenst ETag-waarden bevatten om optimistisch gelijktijdigheidsbeheer voor hen in te schakelen.
Voorbeeld aan de slag op GitHub
Aanvraag
POST https://api.azuredatacatalog.com/catalogs/{catalog_name}/views/{view_name}?api-version={api-version}
Notitie
Sommige HTTP-client-implementaties kunnen aanvragen automatisch opnieuw uitgeven als reactie op een 302 van de server, maar meestal worden autorisatieheaders uit de aanvraag verwijderd. Omdat de autorisatieheader vereist is om aanvragen naar ADC te verzenden, moet u ervoor zorgen dat de autorisatieheader nog steeds wordt opgegeven wanneer u een aanvraag opnieuw verzendt naar een omleidingslocatie die is opgegeven door ADC. Hieronder ziet u voorbeeldcode die dit aangeeft met behulp van het .NET HttpWebRequest-object.
URI-parameters
Naam | Beschrijving | Gegevenstype |
---|---|---|
catalog_name | Naam van de catalogus of 'DefaultCatalog' om de standaardcatalogus te gebruiken. | Tekenreeks |
view_name | Naam van gegevensassetweergave. | Tekenreeks |
api-versie | De API-versie. | Tekenreeks |
POST-voorbeeld
POST https://api.azuredatacatalog.com/catalogs/DefaultCatalog/views/tables?api-version=2016-03-30
Header
Content-Type: application/json
x-ms-client-request-id: 13c45c14…46ab469473f0
Authorization: Bearer eyJ0eX ... FWSXfwtQ
Voorbeeld van hoofdtekst
{
"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
}
]
}
}
}
}
Antwoord
Statuscodes
Code | Description |
---|---|
200 | OK. Een bestaand activum is bijgewerkt. |
201 | Gemaakt. Aan de aanvraag is voldaan en er is een nieuwe asset gemaakt. |
412 | Voorwaarde is mislukt. De aanvraag is geannuleerd omdat de ETag niet overeenkomt met ten minste één item. |
Content-Type
application/json
Header
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
Ondersteunde gegevensbronnen
Raadpleeg Azure Data Catalog ondersteunde gegevensbronnen voor de lijst met momenteel ondersteunde gegevensbronobjecten.
Voorbeeld
In dit voorbeeld ziet u hoe u een Azure AD toegangstoken opkrijgt en een registerbewerking uitvoert.
Opmerking In dit voorbeeld wordt het trefwoord DefaultCatalog gebruikt om de standaardcatalogus van de gebruiker bij te werken. U kunt ook de werkelijke catalogusnaam opgeven. Als u de catalogusnaam wilt zoeken, meldt u zich aan bij Azure Data Catalog en kiest u Gebruiker. U ziet de naam van de catalogus .
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
}
]
}
}
}
}";
}
Get with Annotations
Hiermee haalt u een gegevensasset met aantekeningen op.
Het biedt ondersteuning voor de optionele accept-headerparameter adc.metadata
waarmee wordt aangevraagd dat ETags worden opgenomen in het antwoord voor alle items. Gebruik waarden minimaal of volledig om ETags als antwoord te krijgen. De geldige waarden zijn none
, minimal
en full
.
Aanvraag
GET https://api.azuredatacatalog.com/catalogs/{catalog_name}/views/{view_name}/{view_item_id}?api-version={api-version}
Notitie
Sommige HTTP-client-implementaties kunnen aanvragen automatisch opnieuw uitgeven als reactie op een 302 van de server, maar meestal worden autorisatieheaders uit de aanvraag verwijderd. Omdat de autorisatieheader vereist is om aanvragen naar ADC te verzenden, moet u ervoor zorgen dat de autorisatieheader nog steeds wordt opgegeven wanneer u een aanvraag opnieuw verzendt naar een omleidingslocatie die is opgegeven door ADC. Hieronder ziet u voorbeeldcode die dit aangeeft met behulp van het .NET HttpWebRequest-object.
URI-parameters
Naam | Beschrijving | Gegevenstype |
---|---|---|
catalog_name | Naam van de catalogus of 'DefaultCatalog' om de standaardcatalogus te gebruiken. | Tekenreeks |
view_name | Naam van gegevensassetweergave. | Tekenreeks |
view_item_id | Id van een item Weergeven. | Tekenreeks |
api-versie | De API-versie. | Tekenreeks |
GET-voorbeeld
GET https://api.azuredatacatalog.com/catalogs/DefaultCatalog/views/tables/042297b...1be45ecd462a?api-version=2016-03-30
Header
x-ms-client-request-id: 8091955f…8f5b4c0acede
Authorization: Bearer eXJ0eyAiOiJKV1QiLCJhbGciOi...
Accept: application/json;adc.metadata=full
Antwoord
Statuscodes
Code | Description |
---|---|
200 | OK. Het antwoord bevat de aangevraagde assetweergave. |
Content-Type
application/json
Header
x-ms-request-id: 1095e88c…caffabd6dabd
Content-Type: application/json; charset=utf-8
Hoofdtekst
{
"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"
}
}
}
]
}
}
Zoeken
Hiermee wordt gezocht naar gegevensassets op basis van de opgegeven zoektermen.
Aanvraag
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}
Notitie
Sommige HTTP-client-implementaties kunnen aanvragen automatisch opnieuw uitgeven als reactie op een 302 van de server, maar meestal worden autorisatieheaders uit de aanvraag verwijderd. Omdat de autorisatieheader vereist is om aanvragen naar ADC te verzenden, moet u ervoor zorgen dat de autorisatieheader nog steeds wordt opgegeven wanneer u een aanvraag opnieuw verzendt naar een omleidingslocatie die is opgegeven door ADC. Hieronder ziet u voorbeeldcode die dit aangeeft met behulp van het .NET HttpWebRequest-object.
URI-parameters
Naam | Beschrijving | Gegevenstype |
---|---|---|
catalog_name | Naam van de catalogus of 'DefaultCatalog' om de standaardcatalogus te gebruiken. | Tekenreeks |
api-versie | De API-versie. | Tekenreeks |
Queryparameters
Naam | Beschrijving | Gegevenstype |
---|---|---|
zoektermen | Vereist. Termen om op te zoeken. | Tekenreeks |
Facetten | Optioneel Een door komma's gescheiden veldnamen om de resultaten te facet. | Tekenreeks |
Startpagina | Optionele startpagina van de resultaten die worden gebruikt voor paging, samen met de parameter count. Toegestane waarden zijn groter dan 0. Als een waarde kleiner dan of gelijk aan 0 wordt doorgegeven, wordt een HTTP-fout met foutcode 400 geretourneerd. | Tekenreeks |
count | Optioneel aantal gewenste resultaten op één pagina (paging). De standaardwaarde is 10. Toegestane waarden liggen tussen 1 en 100. Als een waarde buiten dit bereik wordt doorgegeven, wordt een HTTP-fout met foutcode 400 geretourneerd. Als u het volgende gedeelte van de zoekresultaten wilt ophalen, herhaalt u de aanvraag, maar verhoogt u startPage met 1. | Geheel getal |
weergave | Optioneel Hiermee haalt u de weergave op die de client wil zien, momenteel de enige ondersteunde optie in DataSource. | Tekenreeks |
GET-voorbeeld
https://api.azuredatacatalog.com/catalogs/DefaultCatalog/search/search?searchTerms=My_Server&count=10&startPage=1&api-version=2016-03-30
Header
x-ms-client-request-id: 546f053a…a1612f3a3d69
Authorization: Bearer eXJ0eyAiOiJKV1QiLCJhbGciOi...
Antwoord
Statuscodes
Code | Description |
---|---|
200 | OK. Een geslaagde bewerking met zoekresultaat. |
Content-Type
application/json
Header
x-ms-request-id: 0ab2e798…088223257ad2
Content-Length: 3926
Hoofdtekst
{
"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"
}]
}]
}]
}
Voorbeeld
In dit voorbeeld ziet u hoe u een Azure AD toegangstoken opvragen en een zoekbewerking uitvoert.
Opmerking Als u de catalogusnaam wilt zoeken, meldt u zich aan bij Azure Data Catalog en kiest u Gebruiker. U ziet de naam van de catalogus .
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;
}
}
}
Verwijderen
Hiermee verwijdert u een gegevensasset en alle aantekeningen (indien aanwezig) die eraan zijn gekoppeld.
Het ondersteunt optionele If-Match-header voor optimistisch gelijktijdigheidsbeheer. Alleen een zwakke indeling, zoals W/123456789, wordt ondersteund.
Aanvraag
DELETE https://api.azuredatacatalog.com/catalogs/{catalog_name}/views/{view_name}/{view_item_id}?api-version={api-version}
Notitie
Sommige HTTP-client-implementaties kunnen aanvragen automatisch opnieuw uitgeven als reactie op een 302 van de server, maar meestal verwijderen autorisatieheaders uit de aanvraag. Omdat de autorisatieheader vereist is om aanvragen naar ADC te doen, moet u ervoor zorgen dat de autorisatieheader nog steeds wordt opgegeven wanneer u een aanvraag opnieuw verzendt naar een omleidingslocatie die is opgegeven door ADC. Hieronder ziet u voorbeeldcode die dit aantoont met behulp van het .NET HttpWebRequest-object.
URI-parameters
Naam | Beschrijving | Gegevenstype |
---|---|---|
catalog_name | Naam van de catalogus of 'DefaultCatalog' om de standaardcatalogus te gebruiken. | Tekenreeks |
view_name | Naam van gegevensassetweergave. | Tekenreeks |
view_item_id | Id van een item weergeven. | Tekenreeks |
api-versie | De API-versie. | Tekenreeks |
VOORBEELD VAN VERWIJDEREN
DELETE https://api.azuredatacatalog.com/catalogs/DefaultCatalog/views/tables/042297b0...1be45ecd462a?api-version=2016-03-30
Header
x-ms-client-request-id: 59b68a46…46dc3ec8dcb8
Authorization: Bearer eXJ0eyAiOiJKV1QiLCJhbGciOi...
If-Match: W/"123456789"
Antwoord
Statuscodes
Code | Beschrijving |
---|---|
204 | NoContent OPMERKING: De semantische verwijderingsbewerking is 'delete if exists', dus als asset of aantekening niet bestaat, wordt de statuscode 204 (NoContent) geretourneerd. |
412 | Voorwaarde is mislukt. De aanvraag is geannuleerd omdat de ETag niet overeenkomt. |
Content-Type
application/json
Header
x-ms-request-id: 664f86cf…5e512fa78e92
Aantekening bijwerken
Updates een aantekening.
De items kunnen desgewenst ETag-waarden bevatten om optimistisch gelijktijdigheidsbeheer voor hen in te schakelen.
Aanvraag
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}
Notitie
Sommige HTTP-client-implementaties kunnen aanvragen automatisch opnieuw uitgeven als reactie op een 302 van de server, maar meestal verwijderen autorisatieheaders uit de aanvraag. Omdat de autorisatieheader vereist is om aanvragen naar ADC te doen, moet u ervoor zorgen dat de autorisatieheader nog steeds wordt opgegeven wanneer u een aanvraag opnieuw verzendt naar een omleidingslocatie die is opgegeven door ADC. Hieronder ziet u voorbeeldcode die dit aantoont met behulp van het .NET HttpWebRequest-object.
URI-parameters
Naam | Beschrijving | Gegevenstype |
---|---|---|
catalog_name | Naam van de catalogus of 'DefaultCatalog' om de standaardcatalogus te gebruiken. | Tekenreeks |
view_name | Naam van gegevensassetweergave. | Tekenreeks |
view_item_id | Id van een item weergeven. | Tekenreeks |
nested_view_name | Naam van een geneste weergave. | Tekenreeks |
nested_non_singleton_view_item_id | Id van een geneste niet-singletonweergave-item. Moet worden opgegeven voor een niet-singletonweergave. | Tekenreeks |
api-versie | De API-versie. | Tekenreeks |
PUT-voorbeeld voor een singleton-documentatieweergave
PUT https://api.azuredatacatalog.com/catalogs/DefaultCatalog/views/tables/042297b0...1be45ecd462a/documentation?api-version=2016-03-30
Header
Content-Type: application/json; charset=utf-8
x-ms-client-request-id: 059692ee-...-57490fcec42c
Authorization: Bearer eXJ0eyAiOiJKV1QiLCJhbGciOi...
Hoofdtekstschema
Body:
{
"fromSourceSystem": false,
"etag": "123456789",
"content": "<new documentation content>",
"mimetype": "text",
}
Antwoord
Statuscodes
Code | Description |
---|---|
200 | OK. Er is een bestaande aantekening bijgewerkt. |
412 | Voorwaarde is mislukt. De aanvraag is geannuleerd vanwege de niet-overeenkomende ETag in ten minste één item. |
Content-Type
application/json
Header
x-ms-request-id: 3b8668da…1558d0f407c0
Aantekening verwijderen
Hiermee verwijdert u een aantekening en alle geneste aantekeningen (indien aanwezig).
Het ondersteunt optionele If-Match-header voor optimistisch gelijktijdigheidsbeheer. Alleen een zwakke indeling, zoals W/123456789, wordt ondersteund.
Aanvraag
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}
Notitie
Sommige HTTP-client-implementaties kunnen aanvragen automatisch opnieuw uitgeven als reactie op een 302 van de server, maar meestal verwijderen autorisatieheaders uit de aanvraag. Omdat de autorisatieheader vereist is om aanvragen naar ADC te doen, moet u ervoor zorgen dat de autorisatieheader nog steeds wordt opgegeven wanneer u een aanvraag opnieuw verzendt naar een omleidingslocatie die is opgegeven door ADC. Hieronder ziet u voorbeeldcode die dit aantoont met behulp van het .NET HttpWebRequest-object.
URI-parameters
Naam | Beschrijving | Gegevenstype |
---|---|---|
catalog_name | Naam van de catalogus of 'DefaultCatalog' om de standaardcatalogus te gebruiken. | Tekenreeks |
view_name | Naam van gegevensassetweergave. | Tekenreeks |
view_item_id | Id van een item Weergeven. | Tekenreeks |
nested_view_name | Naam van een geneste weergave. | Tekenreeks |
nested_non_singleton_view_item_id | Id van een geneste niet-singletonweergave-item. Moet worden opgegeven voor een niet-singleton-weergave. | Tekenreeks |
api-versie | De API-versie. | Tekenreeks |
VOORBEELD VAN VERWIJDEREN
DELETE https://api.azuredatacatalog.com/catalogs/DefaultCatalog/views/tables/042297b0-c187-49cc-8f30-1be45ecd462a/experts/22c3fa019b3945dc97143ebc3ad74cbf-1111fa019b3945dc97143ebc3ad74cbf?api-version=2016-03-30
Header
x-ms-client-request-id: c8da5f08…67b203d77b2d
Authorization: Bearer eXJ0eyAiOiJKV1QiLCJhbGciOi...
If-Match: W/"123456789"
Antwoord
Statuscodes
Code | Beschrijving |
---|---|
204 | NoContent |
412 | Voorwaarde is mislukt. De aanvraag is geannuleerd omdat de ETag niet overeenkomt. |
Content-Type
application/json
Header
x-ms-request-id: 276b9dc4…e5f7017805c