API Rehberi

Kimlik doğrulamayı, liste meta verilerini almayı ve kayıtları almayı ve oluşturmayı öğreneceksiniz.

Chat icon
Transcript

Kimlik Doğrulama

‍
Workiom'daki tüm API'ler, header kısmına eklenmesi gereken bir API Key gerektirir. API Key'inizi Hesap Ayarları bölümünden alabilirsiniz.

‍



Ardından bu anahtarı "X-Api-Key" ismini kullanarak header'a ekleyin.

Örnek:
curl -X GET "https://api.workiom.com/api/services/app/Apps/GetAll" -H "accept: text/plain" -H "X-Api-Key: {Your API Key}"
‍

‍
Liste Meta Verilerini Alma

‍
Bir liste üzerinde yapmak isteyebileceğiniz işlemlerin çoğu, önce listenin meta verilerini almanızı gerektirir. Meta veri yanıtı; listenin alanları ve görünümleri ile bunların ID'leri gibi birçok faydalı bilgiyi içerir.

‍

GET `/api/services/app/Lists/Get`Content-Type "application/json"Headers`X-Api-Key {Your API Key}`Parametersid: stringexpand: array[string] (any combination of: “Fields”, “Views”, “Filters”)

‍
Yanıt
‍

‍

{ "appId": "string", "fields": [ { "id": 0 "name": "string", "description": "string", "dataType": 0, } ], "id": "string" "name": "string", "description": "string"}

‍
Liste Kayıtlarını Alma

‍
Bir listedeki kayıtlara erişmek basit ve esnektir. Kayıtları almak için bir listId belirtmeniz gerekir; ayrıca sıralama seçenekleri belirtebilir, sayfalama için maxResultCount ve skipCount kullanabilir veya aldığınız kayıtlar üzerinde çok daha ayrıntılı kontrol sağlamak için bir filtre nesneleri dizisi gönderebilirsiniz.

POST `/api/services/app/Data/All`
Content-Type "application/json"
Headers`X-Api-Key  {Your API Key} `
‍

Gövde (Body)
‍

‍
Yanıt

{ "summary": { "additionalProp1": 0, "additionalProp2": 0, "additionalProp3": 0 }, "totalCount": 0, "items": [ {} ]}

‍
Kayıt Oluşturma

‍
Kayıtlar, her anahtarın bir fieldId, her değerin ise kaydın o alana ait değeri olduğu basit JSON nesneleridir. Farklı alanlar farklı veri türlerine sahip olabilir; bir alanın id ve dataType bilgisini listenin meta veri yanıtında bulabilirsiniz.
‍

POST `/api/services/app/Data/Create`Content-Type "application/json"Headers`X-Api-Key {Your API Key} `Parameters`listId: string`Body{ // This is an example of a record /* fieldId: value */ "1186": "2018-11-13T00:00:00.000+00:00", "1251": "[email protected]", "1421": [ { "_id": "r29jrg8hgg48g33nig", "label": "linked record" }, { "_id": "1354535tregrfrwni2", "label": "another linked record" } ], "1425": "Ahmad Lam", "1532": 132, "1563": { "id": "14372839", "label": "static list item" }, "1591": { "id": "28349232", "label": "Khaled Sameeh" }}

‍
Filtreler

‍
Veri talep ederken filtreler kullanılabilir. Filtre genellikle; filtrelenecek fieldId'yi, filtre operatörünü ve bir filtre değerini içeren nesnelerden oluşan bir dizidir. Örneğin, bir Data/All isteğindeki filtre özelliği şu şekilde olabilir:
‍

{ "filters": [ { "fieldId": 1425, "operator": 1, "value": "Ahmad Masa" } ]}Filtre operatörleri şunlardır:Contains = 1,DoesNotContain = 2,Is = 3,IsNot = 4,Greater = 5,GreaterOrEqual = 9,Less = 6,LessOrEqual = 10,Between = 11,IsEmpty = 7,IsNotEmpty = 8,In = 12,NotIn = 13

‍
Sıralama

‍
Sıralama, sıralanacak fieldId'yi ve sıralama yönünü içeren bir sıralama metni kullanılarak yapılabilir. Örneğin, 11284 numaralı alan üzerinde artan sıralama şöyledir:

sorting: "11284 ASC"

Aynı alan üzerinde azalan sıralama için:

sorting: "11284 DESC"
‍

‍
Veri Türleri

‍
Workiom birçok alan veri türünü destekler; farklı veri türlerine sahip alanlar farklı türde değerleri kabul eder. Örneğin bir Tarih alanı yalnızca tarih kabul ederken, bir LinkedList alanı yalnızca bağlantılı kayıt ID'lerini içeren nesnelerden oluşan bir diziyi kabul eder. Veri türleri aşağıdaki sayılarla temsil edilir:

‍

Text = 0,Number = 1,DateTime = 2,Boolean = 3,StaticSelect = 4,LinkList = 5,User = 6,Website = 7,Email = 8,File = 9,Rollup = 10,PhoneNumber = 11,Count = 12,Currency = 13,AutoNumber = 14,CheckList = 15

‍
Kayıtları Güncelleme

‍
Kayıt güncelleme, kayıt oluşturmaya neredeyse kadar basittir. POST yerine

bir PUT çağrısı yapmanız ve liste ID'sine ek olarak

kayıt ID'sini de sağlamanız yeterlidir. Bu standart bir PUT isteğidir, dolayısıyla istek

gövdesi, değişen alanları güncellenmiş hâliyle kaydın tamamını içerir.

PUT /api/services/app/Data/Update
Content-Type: "application/json"
Headers`X-Api-Key  {Your API Key} `

‍
Parametreler: listId: string, id: string
Gövde (Body)

{ "1186": "2019-11-13T00:00:00.000+00:00", "1251": "[[email protected]](/cdn-cgi/l/email-protection)", "1421": [ { "_id": "r29jrg8hgg48g33nig", "label": "linked record" }, { "_id": "1354535tregrfrwni2", "label": "another linked record" } ], "1425": "Ahmad Lam", "1532": 132, "1563": { "id": "14372839", "label": "static list item" }, "1591": { "id": "28349232", "label": "Khaled Sameeh" } }

‍
Kayıtları Kısmen Güncelleme
‍

Her güncellemede kaydın tamamını göndermek istemiyorsanız

/UpdatePartial endpoint'ini kullanabilirsiniz. Bu endpoint, /Update adresindeki standart PUT endpoint'inden farklı olarak yalnızca değişen

alanları göndermenize olanak tanır.

PUT `/api/services/app/Data/UpdatePartial`Content-Type: "application/json"Headers: `Authorization Bearer [your-access-token`]Parameters: listId: string, id: stringBody{"1186": "2019-11-13T00:00:00.000+00:00","1251": "[[email protected]](/cdn-cgi/l/email-protection)",}

‍
‍

‍
Veri Türlerine Göre Payload

‍
Linked List: [ { "_id":string, "label":string } ]
Static List { "id":string, "label":string }
User { "id":int, "username":string }

Her türlü sorunuz için bize support@workiom.com adresinden ulaşabilirsiniz. Bu içerik, zamanla geliştirilecek ve genişletilecek sınırlı kapsamlı genel bir kılavuz olarak hazırlanmıştır. Daha resmî ve kapsamlı dokümantasyon için:

Kaynaklar:

Swagger spec şu adreste mevcuttur: https://api.workiom.com/swagger/.
API endpoint'i şu adreste mevcuttur: https://api.workiom.com.

‍

‍

‍

Kayda dosya ekleme

Bir kayda dosya eklemek için şunları yapmanız gerekir:

  1. Dosyayı sunucuya yükleyin.
  2. Dosya ID'sini alın ve istediğiniz API'de kullanın.
Dosyayı yükleme
  • Dosyayı /File/Upload API'sini kullanarak yükleyin.
  • Yükleme tamamlandığında, dosya bilgilerini içeren bir yanıt alırsınız.
  • Bu bilgileri, bir kaydı oluştururken veya güncellerken kullanmak üzere saklayın.

API Yanıtı:

fileName
:
"FILE_NAME"

fileToken
:
"FILE_TOKEN"

fileType
:
"FILE/MIME_TYPE"

fileUrl
:
"FILE_URL"

hasThumbnail
:
true
/
false

thumbnailUrl
:
"FILE_THUMBNAIL_URL"
// for images files

success
:
true

targetUrl
:
null

unAuthorizedRequest
:
false

Dosya yüklemek için Curl örneği

<?php
// Set the URL where you want to upload the file
$uploadUrl = "https://api.workiom.com/File/Upload";

// Set the file name and its path on your local machine
$fileName = "image-file.png";
$filePath = "/path/to/local/image-file.png"; // Replace this with the actual file path

// Create a cURL handle
$curl = curl_init();

// Set the cURL options
curl_setopt($curl, CURLOPT_URL, $uploadUrl);
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_POSTFIELDS, [
    'file' => new CURLFile($filePath, mime_content_type($filePath), $fileName)
]);

// Execute the cURL request and get the response
$response = curl_exec($curl);

// Check if there was an error during the cURL request
if (curl_errno($curl)) {
    echo "cURL Error: " . curl_error($curl);
} else {
    // Process the response from the API
    $statusCode = curl_getinfo($curl, CURLINFO_HTTP_CODE);
    if ($statusCode === 200) {
        echo "File uploaded successfully!";
        // You can handle the API response here if needed
        // $decodedResponse = json_decode($response, true);
        // ... handle the response data ...
    } else {
        echo "File upload failed. Status code: " . $statusCode;
        // ... handle the error ...
    }
}

// Close the cURL handle
curl_close($curl);
?>
  
Kayıt Oluşturma/Güncelleme

Önceki adımdan edindiğiniz dosya bilgilerini kullanarak kayıt oluşturma veya kayıt güncelleme API'sini çağıracağız.

Kısmi güncelleme API'sini kullanarak dosya alanı ID'si olarak 12345 değerini kullanalım.

/api/services/app/Data/UpdatePartial?listId=LIST_ID&id=RECORD_ID

Bir dosya dizisi göndermemiz gerekir; bu dizi şu şekilde görünmelidir:

{

‘12345’: [

{

"AnonymousForm"
:
false
,

"ContentType"
:
"FILE/MIME_TYPE"
,

"ExpiryDate"
:
null
,

"FileName"
:
"FILE_NAME"
,

"FileUrl"
:
null
,

"ThumbnailUrl"
:
null
,

"HasThumbnail"
:
true/false
,

"IsPermanent"
:
true
,

"Size"
:
FILE_SIZE
,

"UserId"
:
CURRENT_USER_ID
,

"_id"
:
"FILE_TOKEN"

}

]

}

Aynı payload'u kayıt oluşturma API'si olan /api/services/app/Data/Create?listId=LIST_ID için de kullanabiliriz.

‍