curl --request POST \
--url http://10.2.4.166:8080/composer/api/joins/suggestions \
--header 'Authorization: Basic <encoded-value>' \
--header 'Content-Type: application/vnd.composer.v3+json' \
--data '
[
{
"connectionId": "59ba04795b542f60838ce0eb",
"name": "Data Entity name",
"schema": "public",
"collection": "real_time_sales",
"sql": "select * frm public.real_time_sales"
}
]
'import requests
url = "http://10.2.4.166:8080/composer/api/joins/suggestions"
payload = [
{
"connectionId": "59ba04795b542f60838ce0eb",
"name": "Data Entity name",
"schema": "public",
"collection": "real_time_sales",
"sql": "select * frm public.real_time_sales"
}
]
headers = {
"Authorization": "Basic <encoded-value>",
"Content-Type": "application/vnd.composer.v3+json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
Authorization: 'Basic <encoded-value>',
'Content-Type': 'application/vnd.composer.v3+json'
},
body: JSON.stringify([
{
connectionId: '59ba04795b542f60838ce0eb',
name: 'Data Entity name',
schema: 'public',
collection: 'real_time_sales',
sql: 'select * frm public.real_time_sales'
}
])
};
fetch('http://10.2.4.166:8080/composer/api/joins/suggestions', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_PORT => "8080",
CURLOPT_URL => "http://10.2.4.166:8080/composer/api/joins/suggestions",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
[
'connectionId' => '59ba04795b542f60838ce0eb',
'name' => 'Data Entity name',
'schema' => 'public',
'collection' => 'real_time_sales',
'sql' => 'select * frm public.real_time_sales'
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Basic <encoded-value>",
"Content-Type: application/vnd.composer.v3+json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "http://10.2.4.166:8080/composer/api/joins/suggestions"
payload := strings.NewReader("[\n {\n \"connectionId\": \"59ba04795b542f60838ce0eb\",\n \"name\": \"Data Entity name\",\n \"schema\": \"public\",\n \"collection\": \"real_time_sales\",\n \"sql\": \"select * frm public.real_time_sales\"\n }\n]")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Basic <encoded-value>")
req.Header.Add("Content-Type", "application/vnd.composer.v3+json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("http://10.2.4.166:8080/composer/api/joins/suggestions")
.header("Authorization", "Basic <encoded-value>")
.header("Content-Type", "application/vnd.composer.v3+json")
.body("[\n {\n \"connectionId\": \"59ba04795b542f60838ce0eb\",\n \"name\": \"Data Entity name\",\n \"schema\": \"public\",\n \"collection\": \"real_time_sales\",\n \"sql\": \"select * frm public.real_time_sales\"\n }\n]")
.asString();require 'uri'
require 'net/http'
url = URI("http://10.2.4.166:8080/composer/api/joins/suggestions")
http = Net::HTTP.new(url.host, url.port)
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Basic <encoded-value>'
request["Content-Type"] = 'application/vnd.composer.v3+json'
request.body = "[\n {\n \"connectionId\": \"59ba04795b542f60838ce0eb\",\n \"name\": \"Data Entity name\",\n \"schema\": \"public\",\n \"collection\": \"real_time_sales\",\n \"sql\": \"select * frm public.real_time_sales\"\n }\n]"
response = http.request(request)
puts response.read_body[
{
"sourceSchema": "<string>",
"sourceTableName": "<string>",
"sourceFieldName": "<string>",
"targetSchema": "<string>",
"targetTableName": "<string>",
"targetFieldName": "<string>",
"joinType": "INNER",
"type": "RELATION",
"id": "<string>",
"sourceConnectionId": "<string>",
"targetConnectionId": "<string>"
}
]{
"error": "<string>",
"details": "<string>",
"message": "<string>",
"path": "<string>",
"status": "<string>",
"code": "<string>",
"errorCode": "<string>",
"timestamp": "<string>",
"problems": [
{
"name": "<string>",
"message": "<string>",
"level": "ERROR",
"dependencies": {}
}
]
}{
"timestamp": "2023-11-07T05:31:56Z",
"status": 123,
"error": "<string>",
"message": "<string>",
"path": "<string>"
}{
"error": "<string>",
"details": "<string>",
"message": "<string>",
"path": "<string>",
"status": "<string>",
"code": "<string>",
"errorCode": "<string>",
"timestamp": "<string>",
"problems": [
{
"name": "<string>",
"message": "<string>",
"level": "ERROR",
"dependencies": {}
}
]
}Retrieves join suggestions
curl --request POST \
--url http://10.2.4.166:8080/composer/api/joins/suggestions \
--header 'Authorization: Basic <encoded-value>' \
--header 'Content-Type: application/vnd.composer.v3+json' \
--data '
[
{
"connectionId": "59ba04795b542f60838ce0eb",
"name": "Data Entity name",
"schema": "public",
"collection": "real_time_sales",
"sql": "select * frm public.real_time_sales"
}
]
'import requests
url = "http://10.2.4.166:8080/composer/api/joins/suggestions"
payload = [
{
"connectionId": "59ba04795b542f60838ce0eb",
"name": "Data Entity name",
"schema": "public",
"collection": "real_time_sales",
"sql": "select * frm public.real_time_sales"
}
]
headers = {
"Authorization": "Basic <encoded-value>",
"Content-Type": "application/vnd.composer.v3+json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
Authorization: 'Basic <encoded-value>',
'Content-Type': 'application/vnd.composer.v3+json'
},
body: JSON.stringify([
{
connectionId: '59ba04795b542f60838ce0eb',
name: 'Data Entity name',
schema: 'public',
collection: 'real_time_sales',
sql: 'select * frm public.real_time_sales'
}
])
};
fetch('http://10.2.4.166:8080/composer/api/joins/suggestions', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_PORT => "8080",
CURLOPT_URL => "http://10.2.4.166:8080/composer/api/joins/suggestions",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
[
'connectionId' => '59ba04795b542f60838ce0eb',
'name' => 'Data Entity name',
'schema' => 'public',
'collection' => 'real_time_sales',
'sql' => 'select * frm public.real_time_sales'
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Basic <encoded-value>",
"Content-Type: application/vnd.composer.v3+json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "http://10.2.4.166:8080/composer/api/joins/suggestions"
payload := strings.NewReader("[\n {\n \"connectionId\": \"59ba04795b542f60838ce0eb\",\n \"name\": \"Data Entity name\",\n \"schema\": \"public\",\n \"collection\": \"real_time_sales\",\n \"sql\": \"select * frm public.real_time_sales\"\n }\n]")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Basic <encoded-value>")
req.Header.Add("Content-Type", "application/vnd.composer.v3+json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("http://10.2.4.166:8080/composer/api/joins/suggestions")
.header("Authorization", "Basic <encoded-value>")
.header("Content-Type", "application/vnd.composer.v3+json")
.body("[\n {\n \"connectionId\": \"59ba04795b542f60838ce0eb\",\n \"name\": \"Data Entity name\",\n \"schema\": \"public\",\n \"collection\": \"real_time_sales\",\n \"sql\": \"select * frm public.real_time_sales\"\n }\n]")
.asString();require 'uri'
require 'net/http'
url = URI("http://10.2.4.166:8080/composer/api/joins/suggestions")
http = Net::HTTP.new(url.host, url.port)
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Basic <encoded-value>'
request["Content-Type"] = 'application/vnd.composer.v3+json'
request.body = "[\n {\n \"connectionId\": \"59ba04795b542f60838ce0eb\",\n \"name\": \"Data Entity name\",\n \"schema\": \"public\",\n \"collection\": \"real_time_sales\",\n \"sql\": \"select * frm public.real_time_sales\"\n }\n]"
response = http.request(request)
puts response.read_body[
{
"sourceSchema": "<string>",
"sourceTableName": "<string>",
"sourceFieldName": "<string>",
"targetSchema": "<string>",
"targetTableName": "<string>",
"targetFieldName": "<string>",
"joinType": "INNER",
"type": "RELATION",
"id": "<string>",
"sourceConnectionId": "<string>",
"targetConnectionId": "<string>"
}
]{
"error": "<string>",
"details": "<string>",
"message": "<string>",
"path": "<string>",
"status": "<string>",
"code": "<string>",
"errorCode": "<string>",
"timestamp": "<string>",
"problems": [
{
"name": "<string>",
"message": "<string>",
"level": "ERROR",
"dependencies": {}
}
]
}{
"timestamp": "2023-11-07T05:31:56Z",
"status": 123,
"error": "<string>",
"message": "<string>",
"path": "<string>"
}{
"error": "<string>",
"details": "<string>",
"message": "<string>",
"path": "<string>",
"status": "<string>",
"code": "<string>",
"errorCode": "<string>",
"timestamp": "<string>",
"problems": [
{
"name": "<string>",
"message": "<string>",
"level": "ERROR",
"dependencies": {}
}
]
}Authorizations
HTTP Basic authentication using global administrator credentials (username and password).
Body
Connection id. Must be present in the system
"59ba04795b542f60838ce0eb"
User visible representation of the entity. It must be unique within the source
255"Data Entity name"
Database schema
"public"
Database table/collection name
"real_time_sales"
Sql select statement that can be wrapped with select a.* from (CUSTOM_SQL) a
"select * frm public.real_time_sales"
Response
The joins suggestions fetched successfully
Defines a source schema
255Defines a source table name
255Defines a source field name
255Defines a target schema
255Defines a target table name
255Defines a target field name
255Defines a join type
INNER, LEFT, FULL_OUTER Defines a type
RELATION, USER_DEFINED, METADATA Defines a join metadata identifier
Defines a source connection identifier
Defines a target connection identifier
Was this page helpful?