Here is an example of REST API call to create relationship between 2 entities:
POST api/atlas/v2/relationship
{
"typeName": "<relationshipType>",
"end1": {
"guid": "<guid of entity at end1>"
},
"end2": {
"guid": "<guid of entity at end2>"
}
}
All other fields are optional.
Comparing your example, here are couple of issues to fix:
incorrect URI to the API: “api/atlas” missing in the path
typeName for the relationship should be name of a AtlasRelationshipDef; the
value provided, "hdfs_path", is an AtlasEntityDef
Hope this helps.
Madhan
From: Reed Villanueva <[email protected]>
Reply-To: "[email protected]" <[email protected]>
Date: Friday, August 9, 2019 at 7:25 PM
To: "[email protected]" <[email protected]>
Subject: Simple example for adding relationships between Atlas entities?
What is the correct way to use the REST API to add a relationship between
entities in apache atlas? Looking at the docs for the REST API, I find it
difficult to tell what some of the fields mean, which are required or not (and
what happens if they are not entered), or what default values should be (since
the examples use what appear to be placeholder values (eg. what is
provenanceType or the homeId field?)).
Could someone provide any example of what this would look like in real / valid
values? Eg. if had 2 entities E1 and E2 already added to Atlas and wanted to
establish a relationship between the two, would want to do something like...
curl -X POST --header 'Content-Type: application/json;charset=UTF-8' --header
'Accept: application/json' -d '{<simplified json>}'
'https://atlas-server-hostname:21000/v2/relationship'
Trying
[hph_etl@HW03 ~]$ curl -vv -u admin:admin -X POST --header 'Content-Type:
application/json;charset=UTF-8' --header 'Accept: application/json' -d '{ \
"createTime": 1565135406, \
"createdBy": "hph_etl", \
"end1": { \
"guid": "2ddcda5b-2489-4636-a9ab-12b199c02422", \
"typeName": "hdfs_path" \
}, \
"end2": { \
"guid": "a33f45de-13d0-4a30-9df7-b0e02eb0dfd5", \
"typeName": "hdfs_path" \
}, \
"guid": "2ddcda5b-2489-4636-a9ab-12b199c02422", \
"propagateTags": "TWO_TO_ONE", \
"status": "ACTIVE", \
"typeName": "hdfs_path" \
}' 'http://HW03.co.local:21000/v2/relationship'
* About to connect() to HW03.co.local port 21000 (#0)
* Trying 172.18.4.48...
* Connected to HW03.co.local (172.18.4.48) port 21000 (#0)
* Server auth using Basic with user 'admin'
> POST /v2/relationship HTTP/1.1
> Authorization: Basic xxxxxx
> User-Agent: curl/7.29.0
> Host: HW03.co.local:21000
> Content-Type: application/json;charset=UTF-8
> Accept: application/json
> Content-Length: 442
>
* upload completely sent off: 442 out of 442 bytes
< HTTP/1.1 404 Not Found
< Date: Wed, 07 Aug 2019 01:07:44 GMT
< Set-Cookie: ATLASSESSIONID=xxxxxx;Path=/;HttpOnly
< X-Frame-Options: DENY
< X-Content-Type-Options: nosniff
< X-XSS-Protection: 1; mode=block
< Strict-Transport-Security: max-age=31536000; includeSubDomains
< Content-Type: text/html;charset=utf-8
< Content-Length: 2265
< Server: Jetty(9.3.14.v20161028)
<
<!doctype html>
<!--
....
*
* http://www.apache.org/licenses/LICENSE-2.0
....
-->
<!--[if gt IE 8]>
<script type="text/javascript">
function Redirect() {
window.location.assign("login.jsp");
}
Redirect();
</script>
<![endif]-->
<!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media
queries -->
<!--[if gt IE 7]>
<script src="js/external_lib/es5-shim.min.js"></script>
<script src="js/external_lib/respond.min.js"></script>
<![endif]-->
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Atlas</title>
....
</head>
<body>
<div id="wrapper">
<!-- Page Content Begin -->
<div id="page-content-wrapper">
<div class="page-title clearfix">
<h3>Looking for something?</h3>
<p>We're sorry. The web address you're looking for is not a
functioning page in Apache Atlas. Please try navigating from <a
href="index.html">Apache Atlas Home</a></p>
</div>
</div>
<!-- Page Content End -->
</div>
</body>
</html>
* Connection #0 to host HW03.co.local left intact
does not work and not sure what to do about the error message.
What could be going wrong here? Are there any better docs than those linked to
for understanding the API?
This electronic message is intended only for the named
recipient, and may contain information that is confidential or
privileged. If you are not the intended recipient, you are
hereby notified that any disclosure, copying, distribution or
use of the contents of this message is strictly prohibited. If
you have received this message in error or are not the named
recipient, please notify us immediately by contacting the
sender at the electronic mail address noted above, and delete
and destroy all copies of this message. Thank you.