Etiket Eşitleme
Belirtilen kayda etiket ataması yapar. Mevcut etiketler kaldırılıp gönderilen etiketler atanır.
Endpoint
PUT /kolaybi/v1/tags/{type}/{id}
Parametreler
| Parametre | Tip | Zorunlu | Açıklama |
|---|---|---|---|
type | string | Evet | Etiket atanacak kaydın tipi (ör. CommercialDoc) |
id | integer | Evet | Etiket atanacak kaydın ID değeri |
İstek Gövdesi
| Alan | Tip | Zorunlu | Açıklama |
|---|---|---|---|
relations.tags | array | Evet | Atanacak etiketlerin listesi |
relations.tags[].id | integer | Evet | Etiket ID değeri |
Örnekler
- cURL
- JavaScript
- PHP
- Python
- C#
curl -X PUT "https://ofis-sandbox-api.kolaybi.com/kolaybi/v1/tags/CommercialDoc/123" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-H "Channel: YOUR_CHANNEL" \
-H "Content-Type: application/json" \
-d '{
"relations": {
"tags": [
{"id": 5},
{"id": 12}
]
}
}'
async function syncTags(type, id, tagIds) {
const response = await fetch(
`https://ofis-sandbox-api.kolaybi.com/kolaybi/v1/tags/${type}/${id}`,
{
method: "PUT",
headers: {
Authorization: `Bearer ${accessToken}`,
Channel: channel,
"Content-Type": "application/json",
},
body: JSON.stringify({
relations: {
tags: tagIds.map((id) => ({ id })),
},
}),
}
);
return await response.json();
}
// Kullanım
const result = await syncTags("CommercialDoc", 123, [5, 12]);
function syncTags($type, $id, $tagIds) {
$url = "https://ofis-sandbox-api.kolaybi.com/kolaybi/v1/tags/{$type}/{$id}";
$data = [
'relations' => [
'tags' => array_map(fn($tagId) => ['id' => $tagId], $tagIds)
]
];
$ch = curl_init();
curl_setopt_array($ch, [
CURLOPT_URL => $url,
CURLOPT_CUSTOMREQUEST => 'PUT',
CURLOPT_HTTPHEADER => [
'Authorization: Bearer ' . $accessToken,
'Channel: ' . $channel,
'Content-Type: application/json'
],
CURLOPT_POSTFIELDS => json_encode($data),
CURLOPT_RETURNTRANSFER => true
]);
$response = curl_exec($ch);
curl_close($ch);
return json_decode($response, true);
}
// Kullanım
$result = syncTags('CommercialDoc', 123, [5, 12]);
import requests
def sync_tags(type, id, tag_ids):
url = f"https://ofis-sandbox-api.kolaybi.com/kolaybi/v1/tags/{type}/{id}"
headers = {
"Authorization": f"Bearer {access_token}",
"Channel": channel,
"Content-Type": "application/json"
}
data = {
"relations": {
"tags": [{"id": tag_id} for tag_id in tag_ids]
}
}
response = requests.put(url, headers=headers, json=data)
return response.json()
# Kullanım
result = sync_tags("CommercialDoc", 123, [5, 12])
using System;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;
async Task<dynamic> SyncTagsAsync(string type, int id, int[] tagIds)
{
using var client = new HttpClient();
var url = $"https://ofis-sandbox-api.kolaybi.com/kolaybi/v1/tags/{type}/{id}";
var tags = Array.ConvertAll(tagIds, tagId => new { id = tagId });
var body = new { relations = new { tags } };
var request = new HttpRequestMessage(HttpMethod.Put, url);
request.Headers.Authorization = new AuthenticationHeaderValue("Bearer", accessToken);
request.Headers.Add("Channel", channel);
request.Content = new StringContent(
JsonConvert.SerializeObject(body),
Encoding.UTF8,
"application/json"
);
var response = await client.SendAsync(request);
var content = await response.Content.ReadAsStringAsync();
return JsonConvert.DeserializeObject<dynamic>(content);
}
// Kullanım
var result = await SyncTagsAsync("CommercialDoc", 123, new[] { 5, 12 });
Yanıt
- Başarılı Yanıt
{
"data": [
{
"id": 5,
"name": "VIP Müşteri",
"description": "Özel hizmet alan müşteriler"
},
{
"id": 12,
"name": "Perakende Satış",
"description": "Perakende satış kategorisi"
}
]
}
Yanıt Alanları
| Alan | Tip | Açıklama |
|---|---|---|
data | array | Eşitleme sonrası güncel etiket kayıtları |
Etiket Alanları (data)
| Alan | Tip | Açıklama |
|---|---|---|
id | integer | Etikete ait ID değeri |
name | string | Etiket adı |
description | string | Etiket açıklaması |