İleri Konular

Talep Sistemi API

isimsoftware Talep Sistemi Talep Sistemi, “gelen” entegrasyonlar için bir REST API ve “giden” entegrasyonlar için API hook’ları içerir.

Genel Bilgi

Base adres

API adresi aşağıdaki gibidir:

https://[Talep Sistemi]/api 

Buradaki [Talep Sistemi], Talep Sistemi uygulamasının adresidir. İster hosted ister kendi sunucunuzda kurulu olsun fark etmez.

Eğer Talep Sistemi bir alt dizin altında çalışıyorsa URL sonuna mutlaka "/talepsistemi" eklemeyi unutmayın.

SaaS Talep Sistemi müşterileri için doğru URL örneği:

https://company.isimsoftware.com/talepsistemi/api 

Temel kimlik doğrulama (Basic Authentication)

Her API işlemi, işlemi gerçekleştirmeden önce kullanıcının yetkilerini kontrol eder (talepleri görüntüleme, yorum ekleme vb.), bu nedenle her istekte bir Talep Sistemi kullanıcısı olarak basic authorization header göndermeniz gerekir.

Tekrar: tüm metotlar basic authentication kullanır ve her API çağrısında Authorization header’ını göndermeniz gerekir.

Çoğu HTTP istemcisi (örneğin curl) basic authentication’ı ekstra bir kodlama gerektirmeden destekler. Ancak yine de programatik olarak nasıl oluşturulduğunu aşağıda bulabilirsiniz:

  1. Kullanıcı adı ve şifre iki nokta üst üste ile birleştirilir
    username:password 
  2. Oluşan string Base64 ile encode edilir
  3. Başına kimlik doğrulama türü eklenir: Basic + encoded string
  4. Not: Eğer on-premise kurulumda Windows authentication kullanıyorsanız bile Basic auth header göndermelisiniz. Sadece Windows kullanıcı adı ve şifresini iletin. Ayrıca kullanıcı adında domain bilgisini şu şekilde eklemeyi unutmayın: DOMAIN\Username.
  5. Örnek: kullanıcı adı admin ve şifre admin ise header şu şekilde olur:
    Authorization: Basic YWRtaW46YWRtaW4= 

curl çağrısı örneği:

curl -u admin:password -v http://localhost/talepsistemi/api/Ticket?id=1234 

Not: Eğer Windows\AD authentication kullanıyorsanız kullanıcı adını tam domain formatında girin: DOMAIN\username.

Dikkat: Hatalı kullanıcı adı ve/veya şifre ile üst üste 3 kez giriş yapılması IP adresinizi 5 dakika boyunca engeller.

Token ile kimlik doğrulama

Yukarıda açıklanan Basic Authentication’a ek olarak token authentication desteği de bulunmaktadır.

Authorization: Bearer <kullanıcı-Token> 

<kullanıcı-Token> değerini Talep Sistemi uygulamasında /User/Token/ sayfasından alabilirsiniz. Ayrıca JSON formatında almak için /User/Token?json=true kullanılabilir.

Not: Kullanıcı şifresini değiştirdiğinde authentication token geçerliliğini kaybeder. Tüm token’ları aynı anda geçersiz kılmak için admin panelden “shared secret” ayarını değiştirmeniz gerekir.

Parametre gönderimi

Tüm gelen metot parametreleri aşağıdaki gibi query-string üzerinden gönderilmelidir

https://talepsistemi-url/api/SetCustomField?ticketId=123&fieldId=321&value=blahblah 

veya POST verisi üzerinden gönderilebilir.

Query-string veya POST değişkenleri kullanın, JSON kullanmayın

API’ye parametre gönderirken, bunları ya query-string olarak ya da POST alanları üzerinden iletin. JSON kullanmayın. En sık kullanılan bazı API metotlarımız gelen JSON’u desteklemektedir (çünkü insanlar genelde tembeldir ve dokümantasyonu okumaz), ancak önerilen yöntem JSON kullanmaktan kaçınmaktır.

GZipped yanıt

Bant genişliğinden tasarruf etmek ve yanıtı daha hızlı almak için Accept-Encoding: gzip başlığını eklediğinizden emin olun.

Yanıt kodları

API metotları bir durum kodu döndürür:

  • 200 (OK) - her şey yolunda
  • 404 (not found) - bir şey bulunamadı. Örneğin, var olmayan bir kullanıcı adıyla kullanıcı çağırmaya çalışıyorsunuz ya da yanlış ID’ye sahip bir Talep istiyorsunuz.
  • 400 (bad request) - isteğinizde bir hata var. Örneğin gerekli bir parametre eksik veya hatalı formatta.
  • 429 (too many requests) - rate-limit aşıldı.

Bir hata kodu aldığınızda HER ZAMAN RESPONSE BODY’YE BAKIN, neyin yanlış olduğunu size net şekilde söyleyecektir.

Genel metotlar

Yetkilendirme (POST)

POST https://[Talep Sistemi-url]/api/Authorization 

Doğru basic authentication header’larını gönderip göndermediğinizi test etmek için bu metodu kullanın. Bu metot, o anki kullanıcıyı temsil eden bir Talep Sistemi “kullanıcı” nesnesini JSON string olarak döndürür.

Döndürür:

{
    "UserID": 1,
    "Username": "admin",
    "Email": "admin@testmail",
    "FirstName": "",
    "LastName": "",
    "Notes": "",
    "Location": "",
    "Phone": "",
    "Departman": null,
    "CompanyName": null,
    "IPAddress": "::1",
    "HostName": "::1",
    "Lang": "",
    "UserAgent": "Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.3 Safari/537.31",
    "AvatarURL": null,
    "Signature": "test sign",
    "Greeting": "Hi",
    "CompanyId": null,
    "IsAdmin": true,
    "Disabled": false,
    "SendEmail": true,
    "IsTech": false,
    "LastSeen": "2020-02-28T04:48:00Z",
    "IsManager": false
}

Talep metotları

Talep Sistemi Talepleri ile çalışan API metotları

Talepler

GET https://[Talep Sistemi-url]/api/Tickets 

Mevcut kullanıcının görme yetkisine sahip olduğu Talepler listesini getirir. JSON dizi (array) olarak döndürür.

Parametreler:

NameTypeAçıklama
modestring(opsiyonel) Hangi Taleplerin gösterileceğini belirler: all (varsayılan) tüm Talepleri gösterir (kapalı olanlar dahil), unanswered müşteri tarafından yeni oluşturulan veya güncellenen Talepleri gösterir, unclosed tüm aktif Talepleri gösterir, handledbyme kullanıcıya atanmış Talepleri gösterir
categoryIdint[](opsiyonel) Kategoriye göre filtreleme yapar. Şu şekilde dizi gönderilebilir: ?categoryId=1&categoryId=2
sectionIdint(opsiyonel) Bölüme göre filtreleme yapar
statusIdint[](opsiyonel) Duruma göre filtreleme yapar. Şu şekilde dizi gönderilebilir: ?statusId=1&statusId=2
fromUserIdint(opsiyonel) Talebi oluşturan kullanıcıya göre filtreleme yapar
fromCompanyIdint(opsiyonel) Firmaya göre filtreleme yapar
handledByUserIDint(opsiyonel) Talebi işleyen kullanıcıya göre filtreleme yapar
tagNamestring(opsiyonel) Talep etiketi (tag) ile filtreleme yapar
dateFromstring(opsiyonel) Oluşturulma tarihine göre filtreler (tarih formatı YYYY-MM-DD olmalıdır, örnek: 2016-11-24)
dateTostring(opsiyonel) Oluşturulma tarihine göre filtreler (tarih formatı YYYY-MM-DD olmalıdır, örnek: 2016-11-24)
updatedFromstring(opsiyonel) Son güncelleme tarihine göre filtreler (tarih formatı YYYY-MM-DD olmalıdır, örnek: 2016-11-24)
updatedTostring(opsiyonel) Son güncelleme tarihine göre filtreler (tarih formatı YYYY-MM-DD olmalıdır, örnek: 2016-11-24)
updatedByTypestring(opsiyonel) Talepleri en son güncelleyen kişiye göre filtreler: tech - teknik ekip tarafından güncellenen Talepler, cust - müşteri tarafından güncellenen Talepler
dueInDaysint(opsiyonel) “X gün içinde teslim” filtresi
includeCustomFieldsbool(opsiyonel) Özel alan değerlerini çıktıya ekler (sadece “Show in grid” aktif olan alanlar, maksimum 30 alan)
subscribedOnlybool(opsiyonel) Sadece abone olunan Talepleri döndürür
countint(opsiyonel) Kaç Talep döndürüleceğini belirler. Varsayılan: 10. Maksimum: 300.
offsetint(opsiyonel) Sayfalama için kullanılır. Örneğin offset=20&count=20 ilk 20 kayıttan sonraki 20 Talebi getirir. Varsayılan: 0.

Dönen sonuç

[
    {
		"IssueID": 382,
		"Öncelik": 0,
		"StatusID": 1,
		"IssueDate": "2024-05-05T17:25:31.127Z",
		"Subject": "Test Talep",
		"Status": "In progress",
		"UpdatedByUser": false,
		"UpdatedByPerformer": false,
		"CategoryID": 21,
		"UserName": "admin",
		"Technician": null,
		"FirstName": "",
		"LastName": "",
		"DueDate": null,
		"TechFirstName": null,
		"TechLastName": null,
		"LastUpdated": "2024-05-06T10:24:13.873Z",
		"UpdatedForTechView": false,
		"UserID": 20,
		"CompanyID": null,
		"CompanyName": null,
		"AssignedToUserID": 1,
		"ResolvedDate": null,
		"SectionID": null,
		"Kategori": "test",
		"Origin": "WebApp",
		"Email": "admin@admin.lvm",
		"HasChildren": false,
		"LastUpdatedByUserID": 1,
		"LastUpdatedUsername": "",
		"StartDate": "2024-05-06T10:24:13.887Z"
    },
    //...more Talepler
]

Talep

GET https://[Talep Sistemi-url]/api/ticket?id=123

Gets Ayrıntılar of a Talep. The method returns a Talep JSON object

Parameters:

NameTypeAçıklama
idintTalep id

Returns:

{
    "Ekler": [
        {
            "FileName": "icon.png",
            "FileData": null,
            "FileID": 1740828,
            "CommentID": 12722431,
            "CommentDate": "2020-02-28T04:48:00Z",
            "FileHash": null,
            "FileSize": 0,
            "IssueID": 2431395,
            "UserID": 43499,
            "GoogleDriveUrl": null, //cloud URL (google, dropbox, onedrive etc)
            "ForTechsOnly": false,
            "Url": "https://support.isimsoftware.com/talepsistemi/File/Get?id=1740828"
        }
    ],
    "Etiketler": [
        {
            "TagID": 14502,
            "Name": "tag1",
            "TagCount": 0
        }
    ],
    "Status": "In progress",
    "OnBehalfUserName": null,
    "SubmitterUserInfo": {
        "UserID": 43499,
        //more kullanıcı Bilgi properties
    },
    "CategoryName": "General issues",
    "AssigneeUserInfo": {
        "UserID": 43499,
        //more kullanıcı Bilgi properties
    },
    "TicketID": 2431395,
    "UserID": 43499,
    "AssignedToUserID": 43499,
    "IssueDate": "2020-02-28T04:48:00Z",
    "Subject": "test",
    "Body": "test Talep",
    "Öncelik": 0,
    "StatusID": 2,
    "CategoryID": 7277,
    "DueDate": null,
    "ResolvedDate": null,
    "StartDate": "2020-02-28T04:48:00Z",
    "TimeSpentInSeconds": 143,
    "UpdatedByUser": false,
    "UpdatedByPerformer": true,
    "UpdatedForTechView": false,
    "IsCurrentCategoryForTechsOnly": false,
}

Talep (POST)

https://[Talep Sistemi-url]/api/ticket

Yeni bir Talep oluşturur

Parameters:

NameTypeAçıklama
categoryIdintKategori ID
bodystringTalep içeriği
subjectstringTalep konusu
priorityIdintTalep önceliği. Değerler: <li>-1 – Düşük</li><li>0 – Normal</li><li>1 – Yüksek</li><li>2 – Kritik</li>
userId (optional)intBu kullanıcı adına (“on-behalf”) Talep oluşturmak için kullanıcı ID’si (teknisyen yetkisi gerektirir)
Etiketler (optional)stringVirgülle ayrılmış etiketler. Örnek: Etiketler=tag1,tag2,tag3
origin (optional)intTalebin geldiği kaynak, yani “via” alanını belirler. Şunlardan biri olabilir: 0 (WebApp), 1 (Email), 2 (Widget), 3 (API), 4 (Scheduler), 5 (MobileApp), 6 (Phone), 7 (LiveChat), 8 (InPerson)
assignedToUserId (optional)intTalebin atanacağı kullanıcı ID’si (opsiyonel, teknisyen yetkisi gerektirir)
customFields (optional)stringTalebe ait özel alan değerlerini içeren JSON string. Format: { "ID1" : "value", "ID2" : "value" } burada “ID” özel alanın numarasıdır.
suppressConfirmation (optional)boolKullanıcıya onay e-postası gönderimini atla (özellikle kullanıcı adına Talep oluştururken kullanışlıdır)

Bu metot dosya eklerini destekler. Dosya eklemek için “Content-Type: multipart/form-data;” ile POST isteği göndermelisiniz. Her parametre ve dosya ayrı bir “parça” olmalıdır. Kullandığınız programlama dilinde “form data post requests” araştırabilirsiniz. Örnek curl çağrısı:

curl -F "categoryId=1" -F "body=test" -F "subject=test" -F "priorityId=0" -F "priorityId=0" -F "uploadFile=@file.txt"
    -u admin:password -v http://localhost/talepsistemi/api/ticket

Returns

Oluşturulan Talep ID değerini döner

UpdateTicket (POST)

https://[Talep Sistemi-url]/api/UpdateTicket

Talep parametrelerini değiştirir, bir veya birden fazla alan güncellenebilir.

Bu metot yalnızca kendi Taleplerinizi düzenlemenize izin verir (admin veya teknisyen değilseniz). Konu ve içerik yalnızca admin/teknisyen tarafından düzenlenebilir.

Parameters:

NameTypeAçıklama
idintTalep ID
categoryIdint(optional) Talep kategorisi
Öncelikint(optional) Talep önceliği. Değerler: -1 Düşük, 0 Normal, 1 Yüksek, 2 Kritik
dateDateTime(optional) Talep oluşturulma tarihi
userIdint(optional) Talebi oluşturan kullanıcı ID
dueDateDateTime(optional) Bitiş tarihi, kaldırmak için boş string "" gönderin
closeDateDateTime(optional) Kapanış tarihi (geçmiş bir tarih olabilir)
assignedUserIdint(optional) Atanan teknisyen ID’si. 0 gönderilirse atama kaldırılır
timeSpentInSecondsint(optional) Talep üzerinde harcanan süre (saniye)
statusIdint(optional) Talep durumu ID’si. "Closed" = 3, "New" = 1, "In process" = 2. Diğer durumlar admin panelinden kontrol edilir
Etiketlerstring(optional) Virgülle ayrılmış etiket listesi. Örn: Etiketler=tag1,tag2,tag3. Mevcut etiketlerin tamamı silinir
subjectstring(optional) Talep konusu
bodystring(optional) Talep içeriği

Returns:

Hata yoksa 200 OK döner. Hata varsa hata mesajı döner.

Örnek:

https://[Talep Sistemi-url]/api/UpdateTicket?id=321&dueDate=2018-12-01

AddSecondaryAssignee

https://[Talep Sistemi-url]/api/AddSecondaryAssignee?ticketId=321&userId=123

Bir Talebe ikincil sorumlu ekler (özellik Ayarlar’da aktifse). “Talep Sistemi-administrator” yetkisi gerektirir.

Parameters:

NameTypeAçıklama
ticketIdintTalep ID
userIdintKullanıcı ID

Close

https://[Talep Sistemi-url]/api/Close

Bir Talebi kapatır. Bu işlem aslında UpdateTicket çağrısında statusId=3 kullanmakla aynıdır. Ancak e-posta bildirimini kapatma (sessiz kapatma) seçeneği sunar.

Parameters:

NameTypeAçıklama
idintTalep ID
suppressNotificationbool(optional) E-posta bildirimleri olmadan “sessiz” kapatma

Returns:

200 OK hata yoksa döner.

Örnek:

https://[Talep Sistemi-url]/api/Close?id=321&suppressNotification=true

SetCustomField (POST)

https://[Talep Sistemi-url]/api/SetCustomField

Talep üzerinde özel alan değerini ayarlar.

Parameters:

NameTypeAçıklama
ticketIdintTalep ID
fieldIdintÖzel alan ID
valuestringDeğer string olarak gönderilir. Checkbox için true/false, dropdown için seçenek ID’si, tarih için herhangi bir tarih formatı kullanılabilir.

Returns:

200 OK hata yoksa döner. Hata varsa hata mesajı döner.

SetCustomFields (POST)

https://[Talep Sistemi-url]/api/SetCustomFields

Bir Talep içinde birden fazla özel alanı tek istekte günceller.

Parameters:

NameTypeAçıklama
ticketIdintTalep ID
cf12345 (12345 özel alan ID’sidir, örneğe bakınız)stringDeğer string olarak gönderilir. Checkbox için true/false, dropdown için seçenek ID’si, tarih için herhangi bir tarih formatı kullanılabilir.

Örnek request parametreleri:

ticketId=10556
cf1624=123
cf1625=asd
cf1626=zxc

Returns:

200 OK hata yoksa döner. Hata varsa hata mesajı döner.

İstatistikler

GET https://[Talep Sistemi-url]/api/Stats?forCurrentUser=false

Talep Sistemi için genel istatistikleri getirir - açık Talepler, kapalı, yeni, atanmamış vb. sayılarını döndürür.

Parameters:

NameTypeAçıklama
forCurrentUserbool(optional) Genel istatistikleri mi yoksa sadece mevcut kullanıcının erişebildiği istatistikleri mi döndüreceğini belirler

Returns:

{
	"TotalTickets": 208,
	"Closed": 22,
	"InProcess": 23,
	"NewTickets": 163,
	"Unanswered": 166,
	"Unassigned": 33,
	"Unclosed": 186,
	"HandledByMe": 153
}

veya

{
	"NewTickets": 163,
	"Unanswered": 166,
	"Unassigned": 33,
	"Unclosed": 186,
	"HandledByMe": 153,
	"SubmittedByMe": 100,
	"InProcess": 23
}
GET https://[Talep Sistemi-url]/api/Search?query=TEXT&dateFrom=2020-12-12&fromUserId=123

Verilen arama metni ve çeşitli kriterlere göre Talepleri arar

Parameters:

NameTypeAçıklama
querystringAranacak metin
fromUserIdint(optional) Talep oluşturan kullanıcıya göre filtreleme
categoryIdint[](optional) Kategoriye göre filtreleme, şu şekilde dizi gönderilebilir: ?categoryId=1&categoryId=2
statusIdint[](optional) Duruma göre filtreleme
assignedToUserIdint(optional) Atanan teknisyene göre filtreleme
dateFromdatetime(optional) Talep oluşturulma tarihi
dateTodatetime(optional) Talep oluşturulma tarihi

TicketCustomFields

https://[Talep Sistemi-url]/api/TicketCustomFields?id=123

Bir Talebe ait tüm özel alanları ve değerlerini görüntüler

Parameters:

NameTypeAçıklama
idintTalep ID
returnUnsetbool(optional) Boş özel alanları da döndürür (varsayılan: false)

Returns:

[
    {
        "FieldName": "Talep Sistemi URL",
        "FieldID": 2903,
        "Type": 1,
        "UsageType": 0,
        "Value": null,
        "ValueWithOption": null,
        "Mandatory": false
    }
]

Özel alan türleri

Text = 1,
Date = 2,
SelectionCombo = 3,
Checkbox = 4,
MultilineText = 5

ek

https://[Talep Sistemi-url]/api/attachment?id=123

Tek bir dosya ekini indirmeye izin verir

Parameters:

NameTypeAçıklama
idintDosya ek ID

Returns:

İstenen dosya eki dosya olarak döner. Dosya türü için "Content-Type" header’a bakın. Dosya adı “Content-disposition” header’ında bulunur.

Ekler

https://[Talep Sistemi-url]/api/Attachments?id=123

Bir Talebe ait tüm ekleri döner. “ek” kelimesinin çoğulu kullanılır.

Parameters:

NameTypeAçıklama
idintTalep ID

Returns:

[
	{
		"FileName": "image.jpg",
		"FileID": 123,
		"FileSize": 576,
		"IssueID": 123,
		"UserID": 123,
		"Url": "..."
	}
]

AttachFile (POST)

https://[Talep Sistemi-url]/api/AttachFile

Bir Talebe dosya ekler

Parameters:

NameTypeAçıklama
idintTalep ID
multipart filebinaryYüklenecek dosya verisi

Dosya eklemek için “Content-Type: multipart/form-data;” ile POST isteği gönderilmelidir. Örnek curl çağrısı:

curl -F "id=1" -F "uploadFile=@myfile.txt" -u admin:password -v http://localhost/talepsistemi/api/AttachFile

DeleteFile (GET)

https://[Talep Sistemi-url]/api/DeleteFile

Bir dosyayı Talep içinden siler. “Talep Sistemi-administrator” yetkisi gerektirir.

Parameters:

NameTypeAçıklama
idintDosya ID

Örnek curl çağrısı:

curl -u admin:password -v http://localhost/talepsistemi/api/DeleteFile/1233

AddSubscriber (POST)

https://[Talep Sistemi-url]/api/AddSubscriber

Bir Talebe yeni bir abone ekler

Parameters:

NameTypeAçıklama
idintTalep ID
userIdintYeni abonenin kullanıcı ID’si

RemoveSubscriber (POST)

https://[Talep Sistemi-url]/api/RemoveSubscriber

Bir aboneliği Talep üzerinden kaldırır

Parameters:

NameTypeAçıklama
idintTalep ID
userIdintAbonenin kullanıcı ID’si

Subscribers (GET)

https://[Talep Sistemi-url]/api/Subscribers?id=123

Bir Talebin abonelerini listeler

Parameters:

NameTypeAçıklama
idintTalep ID

Kategoriler

https://[Talep Sistemi-url]/api/categories

Kullanıcının görebildiği tüm kategorileri getirir

Returns:

 [
    {
        "CategoryID": 7277,
        "Name": "Genel sorunlar",
        "SectionID": null,
        "Section": null,
        "NameWithSection": "Genel sorunlar",
        "ForTechsOnly": false,
        "FromAddress": null
    }
]

TicketTemplate

https://[Talep Sistemi-url]/api/TicketTemplate?categoryId=123

Bir kategori için önceden doldurulmuş Talep şablonunu getirir (eğer tanımlıysa)

Parameters:

NameTypeAçıklama
categoryIdintKategori ID

Returns:

{
    "Subject": "Önceden doldurulmuş konu",
    "Body": "<p>Önceden doldurulmuş içerik</p>"
}

Şablon tanımlı değilse null döner

TechsForCategory

https://[Talep Sistemi-url]/api/TechsForCategory?id=123

Bir kategori için atanabilecek tüm kullanıcıları getirir

Parameters:

NameTypeAçıklama
idintKategori ID

Returns:

[
    {
        "UserID": 43499,
        "Username": "Max",
        "FirstName": "Max",
        "LastName": "",
        "TicketsAssigned": 16,
        "FullNameAndLogin": "Max",
        "FullName": "Max"
    }
]

CustomFieldsForCategory

https://[Talep Sistemi-url]/api/CustomFieldsForCategory?categoryId=123

Bir kategoriye ait tüm özel alanları getirir (dropdown seçenekleri dahil)

Parameters:

NameTypeAçıklama
categoryIdintKategori ID

Returns:

[
    {
        "FieldName": "İsim",
        "FieldID": 123123123,
        "Type": 4,
        "UsageType": 1,
        "ForTechsOnly": false,
        "Mandatory": false,
        "OrderByNumber": 2,
        "ShowInGrid": true,
        "SelectionComboOptions": null
    }
]

AddCategory (POST)

https://[Talep Sistemi-url]/api/AddCategory?name=test&sectionId=1

Yeni bir kategori oluşturur

Parameters:

NameTypeAçıklama
namestringKategori adı
sectionIdint(optional) Section ID

Returns:

200 OK ile birlikte oluşturulan Kategori id döner

Öncelikler (GET)

https://[Talep Sistemi-url]/api/Priorities

Talep önceliklerinin listesini döner (standart ve özel öncelikler dahil)

Returns:

[
    {
        "PriorityID": 123,
        "Name": "Özel Öncelik"
    }
]

MergeTickets

https://[Talep Sistemi-url]/api/MergeTickets

İki Talebi birleştirir. Bu işlem geri alınamaz.

Parameters:

NameTypeAçıklama
idintAna Talep ID
id2intBirleştirilecek Talep (ikinci Talep silinir)
https://[Talep Sistemi-url]/api/LinkTickets

İki Talebi “ilişkili” olarak bağlar

Parameters:

NameTypeAçıklama
idintBirinci Talep ID
id2intİkinci Talep ID
https://[Talep Sistemi-url]/api/UnlinkTickets

İki Talep arasındaki bağlantıyı kaldırır

Parameters:

NameTypeAçıklama
idintBirinci Talep ID
id2intİkinci Talep ID

AddSubTicket

https://[Talep Sistemi-url]/api/AddSubTicket

Bir Talebi başka bir Talebin alt Talebi yapar

Parametreler:

NameTypeAçıklama
parentIdintÜst Talep ID
childIdintAlt Talep ID

AltTalepKaldır

https://[Talep Sistemi-url]/api/RemoveSubTicket

Alt talebi kaldırır.

Parametreler:

NameTypeAçıklama
childIdintAlt Talep ID

BağlıTalepler

https://[Talep Sistemi-url]/api/LinkedTickets?id=123

Belirtilen talebe bağlı talepleri döndürür.

Parametreler:

NameTypeAçıklama
idintTalep id

Dönen değer:

[
   {
      "TicketID":123123,
      "Subject":"test",
      "StatusID":2,
      "UpdatedByUser":false,
      "UpdatedByPerformer":true,
      "CompanyID":null,
      "UserID":1,
      "Username":"admin",
      "FirstName":"John",
      "LastName":"Doe",
      "IssueDate":"2020-02-28T04:48:00Z"
   }
]

AltTalepler

https://[Talep Sistemi-url]/api/SubTickets?id=123

Belirtilen talep için alt talepleri döndürür (ilk seviye derinlik).

Parametreler:

NameTypeAçıklama
idintTalep id

Dönen değer:

[
   {
      "IssueID":55280,
      "Öncelik":0,
      "StatusID":1,
      "IssueDate":"2020-05-12T11:59:50.91Z",
      "Subject":"Some text",
      "Status":"New",
      "UpdatedByUser":false,
      "UpdatedByPerformer":false,
      "CategoryID":2051,
      "UserName":"admin",
      "Technician":null,
      "FirstName":"John",
      "LastName":"Doe",
      "DueDate":null,
      "TechFirstName":null,
      "TechLastName":null,
      "LastUpdated":"2020-06-12T11:33:29.157Z"
   }
]

ÜstTalep

https://[Talep Sistemi-url]/api/ParentTicket?id=123

Belirtilen talebin üst talep ID’sini döndürür (üst talep yoksa 0 döner).

Parametreler:

NameTypeAçıklama
idintTalep ID
returnFullTicketbool(opsiyonel) true ise tüm talep detaylarını döndürür

Dönen değer:

Talep ID (JSON değildir, düz metindir)

TalepEntegrasyonVerileri

https://[Talep Sistemi-url]/api/TicketIntegrationData?id=123

Talebe ait tüm entegrasyon verilerini döndürür - Jira, Github vb.

Parametreler:

NameTypeAçıklama
idintTalep id

Dönen değer:

{
	"BitbucketIssueUrl": null,
	"JiraIssueUrl": "https://jira/browse/JB-1",
	"GitHubIssueUrl": null,
	"AsanaTaskUrl": null,
	"TrelloCardUrl": null,
	"VSOWorkItemUrl": null,
	"HarvestProjectUrl": null,
	"GitLabIssueUrl": "https://gitlab.com/empire/deathstar/-/issues/1",
	"BasecampTodoUrl": null
}

TalebiEtiketle (POST)

https://[Talep Sistemi-url]/api/TagTicket

Bir talebe etiket ekler.

Parametreler:

NameTypeAçıklama
namestringEtiket adı (yeni veya mevcut olabilir)
ticketIdintEtiket eklenecek talep ID’si

HarcananZamanKaydı (GET)

https://[Talep Sistemi-url]/api/TimeSpentLog?ticketId=123

Bir talebe ait zaman harcama kayıtlarını döndürür. Talep üzerinde yapılan tüm zaman girişlerini listeler. “Teknisyen” yetkisi gerektirir.

Parametreler:

NameTypeAçıklama
ticketIdintTalep ID

Dönen değer:

[
    {
        "UserID": 43499,
        "UserName": "admin",
        "StatusID": 2,
        "TimeSpentInSeconds": 3600,
        "Date":"2024-05-06T10:24:13.873Z"
    }
    //...daha fazla kayıt
]

HarcananZamanEkle (POST)

https://[Talep Sistemi-url]/api/AddTimeSpent

Bir talebe yeni zaman harcama kaydı ekler. Zaman mevcut kullanıcı altında kaydedilir. “Teknisyen” yetkisi gerektirir.

Parametreler:

NameTypeAçıklama
ticketIdintTalep ID
timeSpentInSecondsintSaniye cinsinden harcanan süre
statusIdint(opsiyonel) Bu zaman kaydıyla ilişkilendirilecek durum ID’si. Varsayılan olarak talebin mevcut durumu kullanılır.

Dönen değer:

200 OK hata yoksa "ok" döner. Hata varsa hata mesajı döner.

Örnek:

https://[Talep Sistemi-url]/api/AddTimeSpent?ticketId=123&timeSpentInSeconds=3600 

Yorumlar

Talep yorumları (yanıtlar) ile ilgili API metotları

Yorum (POST)

https://[Talep Sistemi-url]/api/comment 

Bir Talep’e yorum ekler

Parametreler:

NameTypeAçıklama
idintTalep id
bodystringYorum içeriği
forTechsOnlybool(opsiyonel) Sadece teknisyenlere görünen yorum. Varsayılan: false
isSystembool(opsiyonel) “Sistem” yorumu (gri gösterilir). Varsayılan: false
recipientIdscomma-separated integers(opsiyonel) Bildirim gönderilecek abone kullanıcı ID listesi. Varsayılan olarak tüm abonelere gönderilir.
fromUserIdint(opsiyonel) Yorumu hangi kullanıcı adına göndereceği, Administrator yetkisi gerektirir

Bu metot dosya eklerini destekler. Dosya eklemek için “Content-Type: multipart/form-data” ile POST isteği göndermeniz gerekir. Her parametre (dosya dahil) ayrı bir “parça” olarak gönderilmelidir. Örnek curl çağrısı:

curl -F "id=1" -F "body=test" -F "uploadFile=@file.txt" -u admin:password -v http://localhost/talepsistemi/api/comment 

YorumGüncelle (POST)

https://[Talep Sistemi-url]/api/updatecomment 

Mevcut bir yorumu günceller (düzenler). Kullanıcı yorumun sahibi olmalı, kategori teknisyeni olmalı veya admin olmalıdır.

Parametreler:

NameTypeAçıklama
idintYorum id
bodystringYorum içeriği
forTechsOnlybool(opsiyonel) Sadece teknisyenlere görünen yorum. Varsayılan: false

Yorumlar

https://[Talep Sistemi-url]/api/comments?id=123 

Belirtilen Talep’e ait yorumları getirir

Parametreler:

NameTypeAçıklama
idintTalep id

Dönen değer:

 [  {  "CommentID": 1828,  "IssueID": 471,  "UserID": 1,  "UserName": "admin",  "Email": "admin@testmail",  "FirstName": "",  "LastName": "",  "IsSystem": false,  "CommentDate": "2020-02-28T04:48:00Z",  "ForTechsOnly": false,  "Body": "Hi\r\n\r\n",  "TicketSubject": null,  "Recipients": ""  }  ] 

Yorum Şablonları

https://[Talep Sistemi-url]/api/CommentTemplates 

Talep Sistemi’ndeki tüm “Önceden Hazırlanan Yanıtlar” listesini getirir

Parametreler:

NameTypeAçıklama
categoryIdintegerOpsiyonel. Talep kategori ID’sine göre filtreler. Tümünü getirmek için varsayılan olarak 0 kullanılır.

Dönen değer:

[{  "TemplateId": 1420,  "Body": "Talep Sistemi uygulama havuzunu IIS’te .NET 2.0 yerine 4.0 olarak ayarlamanız gerekir.",  "Name": "2.0 yerine 4.0",  "CategoryIDs": [5, 12],  "GroupID": 3,  "GroupName": "Teknik" }, {  "TemplateId": 362,  "Body": "Hangi uygulamadan bahsettiğinizi net olarak söyleyebilir misiniz?",  "Name": "Hangi uygulama??",  "CategoryIDs": [],  "GroupID": null,  "GroupName": null }] 

Kullanıcılar

Talep Sistemi kullanıcıları ile çalışma - oluşturma, silme, güncelleme vb.

KullanıcıOluştur (POST)

https://[Talep Sistemi-url]/api/CreateUser 

Yeni kullanıcı oluşturur. “Talep Sistemi-administrator” yetkisi gerektirir.

Parametreler:

NameTypeAçıklama
emailstringkullanıcının e-posta adresi, benzersiz olmalıdır
usernamestring(opsiyonel) kullanıcı adı, benzersiz olmalıdır. Verilmezse email kullanılır
passwordstring(opsiyonel) kullanıcı şifresi (verilmezse sistem otomatik güçlü şifre üretir)
firstNamestring(opsiyonel) ad
lastNamestring(opsiyonel) soyad
phonestring(opsiyonel) telefon
locationstring(opsiyonel) konum
firmastring(opsiyonel) kullanıcı firmasını ayarlar. Yoksa oluşturulur
Departmanstring(opsiyonel) departman ayarlar. Yoksa oluşturulur
sendWelcomeEmailbool(opsiyonel) “Hoş Geldiniz” e-postası gönderir
isManagerbool(opsiyonel) yönetici rolü atar

Dönen değer:

userId

KullanıcıGüncelle (POST)

https://[Talep Sistemi-url]/api/UpdateUser?userId=123&username=joe&disabled=false 

Bir kullanıcıyı günceller. "Talep Sistemi-administrator" yetkisi gerektirir. userId dışındaki tüm parametreler opsiyoneldir

Parametreler:

AdTürAçıklama
userIdintdüzenlenen kullanıcının ID'si
opsiyonel parametreler:
usernamestringkullanıcı adı, başka bir kullanıcı tarafından kullanılmamalıdır
emailstringkullanıcının e-posta adresi
firstNamestringad
lastNamestringsoyad
notesstringopsiyonel notlar
phonestringtelefon
locationstringkonum
Departmanstringkullanıcının departman adı
disabledboolkullanıcıyı etkinleştir/devre dışı bırak
firmastringkullanıcının firma adı
passwordstringkullanıcının yeni şifresi
enableEmailNotificationsboolkullanıcı için e-posta bildirimlerini aç/kapat
greetingstringkullanıcının web arayüzünden yanıt eklerken otomatik eklenen "selamlama"
signaturestringkullanıcının web arayüzünden yanıt verirken otomatik eklenen "imza"
outOfOfficeboolofis dışında mı
isAdminboolyönetici mi

DeleteUser (POST)

https://[Talep Sistemi-url]/api/DeleteUser?userId=123

Bir kullanıcıyı siler. "Talep Sistemi-administrator" yetkisi gerektirir. Uyarı: geri alınamaz.

Parametreler:

AdTürAçıklama
userIdintkullanıcının ID'si

kullanıcı (GET)

https://[Talep Sistemi-url]/api/User?userId=123

Bir kullanıcı hakkında ID’sine göre bilgi getirir.

Parametreler:

AdTürAçıklama
userIdintkullanıcının ID'si

SetCustomFieldForUser (POST)

https://[Talep Sistemi-url]/api/SetCustomFieldForUser

Bir kullanıcı için özel alan değeri ayarlar.

Parametreler:

AdTürAçıklama
idintkullanıcı ID
fieldIdintözel alan ID
valuestringstring olarak değer. Checkbox için true/false. Dropdown için seçenek ID’si. Tarih için herhangi bir formatta tarih string’i.

Dönüş:

200 OK hata yoksa döner. Hata varsa hata mesajı döner.

UserByEmail

https://[Talep Sistemi-url]/api/UserByEmail?email=admin@testmail.com

Bir kullanıcı hakkında tüm bilgileri getirir. "Talep Sistemi-administrator" veya "technician" yetkisi gerektirir.

Parametreler:

AdTürAçıklama
emailstringe-posta adresi

Dönüş:

{
    "UserID": 43499,
    "Username": "Max",
    "Password": null,
    "Email": "max@test",
    "FirstName": "Max",
    "LastName": "",
    "Notes": "test",
    "Location": "",
    "Phone": "+16463977708",
    "Departman": null,
    "CompanyName": "isimsoftware Software",
    "IPAddress": "213.229.75.25",
    "HostName": "213.229.75.25",
    "Lang": "en-US",
    "UserAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2272.118 Safari/537.36",
    "AvatarURL": null,
    "Signature": "Cheers,\r\nMax",
    "Greeting": "Hi #FirstName#",
    "CompanyId": 451,
    "CompanyNotes": null,
    "IsAdmin": true,
    "Disabled": false,
    "SendEmail": false,
    "IsTech": false,
    "LastSeen": "2020-02-28T04:48:00Z",
    "IsManager": false,
    "PushToken": null,
    "FullNameAndLogin": "Max",
    "FullName": "Max"
}

MergeUsers (POST)

https://[Talep Sistemi-url]/api/MergeUsers?fromUserId=123&toUserId=321

İki kullanıcıyı birleştirir. "Talep Sistemi-administrator" yetkisi gerektirir. Uyarı: geri alınamaz.

Parametreler:

AdTürAçıklama
fromUserIdintbirleştirilecek kullanıcı ID'si
toUserIdintbirleştirmenin yapılacağı hedef kullanıcı ID'si

UserByUsername

https://[Talep Sistemi-url]/api/UserByUsername?username=admin

Bir kullanıcı hakkında tüm bilgileri getirir. "administrator" veya "technician" yetkisi gerektirir.

Parametreler:

AdTürAçıklama
usernamestringkullanıcı adı

Dönüş:

{
    "UserID": 43499,
    "Username": "Max",
    "Password": null,
    "Email": "max@test",
    "FirstName": "Max",
    "LastName": "",
    "Notes": "test",
    "Location": "",
    "Phone": "+16463977708",
    "Departman": null,
    "CompanyName": "isimsoftware Software",
    "IPAddress": "213.229.75.25",
    "HostName": "213.229.75.25",
    "Lang": "en-US",
    "UserAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2272.118 Safari/537.36",
    "AvatarURL": null,
    "Signature": "Cheers,\r\nMax",
    "Greeting": "Hi #FirstName#",
    "CompanyId": 451,
    "CompanyNotes": null,
    "IsAdmin": true,
    "Disabled": false,
    "SendEmail": false,
    "IsTech": false,
    "LastSeen": "2020-02-28T04:48:00Z",
    "IsManager": false,
    "PushToken": null,
    "FullNameAndLogin": "Max",
    "FullName": "Max"
}

UserCustomFields

https://[Talep Sistemi-url]/api/UserCustomFields?id=123

Bir kullanıcının tüm özel alanlarını görüntüler. Sadece teknisyenler erişebilir.

Parametreler:

AdTürAçıklama
idintkullanıcı ID

Dönüş:

[
    {
        "FieldName": "kullanıcı durumu",
        "FieldID": 1234,
        "Type": 1,
        "Value": "Ödeme Yapan Müşteri"
    }
]

Kullanıcılar

https://[Talep Sistemi-url]/api/Users

Talep Sistemi uygulamasındaki tüm kullanıcıların listesini getirir. "Talep Sistemi-administrator" yetkisi gerektirir.

Parametreler:

AdTürAçıklama
countint(opsiyonel) döndürülecek kullanıcı sayısı. Varsayılan: 500
pageint(opsiyonel) sayfalama için kullanılır. Örn: ?count=50 ilk 50 kullanıcıyı getirir, ?count=50&page=2 sonraki 50 kullanıcıyı getirir.
listModestring(opsiyonel) all (varsayılan) tüm kullanıcılar, techs teknisyenler + adminler, admins sadece adminler, regular normal kullanıcılar, disabled devre dışı kullanıcılar
departmentIdint(opsiyonel) belirli departmandaki kullanıcılar
companyIdint(opsiyonel) belirli firmadaki kullanıcılar

Dönüş:

[
    {
        "UserID": 321,
        "FirstName": "",
        "LastName": "",
        "Notes": null,
        "Location": "",
        "Phone": "",
        "CompanyName": null,
        "CompanyId": null,
        "DepartmentID": null,
        "LastSeen": null,
        "Username": "123@123.com",
        "Email": "123@123.com",
        "IsAdmin": false,
        "Disabled": false
    }
    //...
]

AddCategoryTechPermission (POST)

https://[Talep Sistemi-url]/api/AddCategoryTechPermission?userId=123&categoryId=321

Bir kullanıcıyı bir Kategori içinde “teknisyen” yapar. Sadece adminler kullanabilir.

Parametreler:

AdTürAçıklama
userIdintkullanıcı ID
categoryIdintKategori ID’si

RemoveCategoryTechPermission

https://[Talep Sistemi-url]/api/RemoveCategoryTechPermission?userId=123&categoryId=321

Bir kullanıcının bir Kategori içindeki “teknisyen” yetkisini kaldırır. Sadece adminler kullanabilir.

Parametreler:

AdTürAçıklama
userIdintkullanıcı ID
categoryIdintKategori ID’si

Firmalar

https://[Talep Sistemi-url]/api/Companies

Tüm Firmaların listesini getirir. "Talep Sistemi-administrator" yetkisi gerektirir.

Dönüş:

[
    {
        "CompanyID": 1,
        "Name": "test firma",
        "EmailDomain": null,
        "Notes": null
    }
    //...
]

firma (POST)

https://[Talep Sistemi-url]/api/Company

Yeni bir firma oluşturur. "Talep Sistemi-administrator" yetkisi gerektirir.

Parametreler:

AdTürAçıklama
namestringfirma adı
emailDomainsstring(opsiyonel) firma e-posta domainleri (örn: "empire.com;deathstar.com")

Dönüş:

Oluşturulan firma id veya varsa aynı isimli firmanın id’si

UpdateCompany (POST)

https://[Talep Sistemi-url]/api/UpdateCompany

Firma bilgilerini günceller. "Talep Sistemi-administrator" yetkisi gerektirir.

Parametreler:

AdTürAçıklama
idintfirma ID
namestringfirma adı
notesstringfirma notları
emailDomainsstring (opsiyonel)e-posta domain listesi (örn: "abc.com;123.com")

Departmanlar

https://[Talep Sistemi-url]/api/Departments

Tüm Departmanların listesini getirir. "Talep Sistemi-administrator" yetkisi gerektirir.

Dönen Değer:

[  {  "DepartmentID": 1,  "Name": "test name"  }  //... ] 

Dönen Değer:

200 OK hata olmadığında döner. Aksi durumda bir Hata mesajı döndürür.

Firma için Özel Alan Ayarlama (POST)

https://[Talep Sistemi-url]/api/SetCustomFieldForCompany 

Bir firma için özel alan değerini ayarlar.

Parametreler:

AdTürAçıklama
idintfirma ID
fieldIdintÖzel alan ID
valuestringDeğer string olarak gönderilir. Checkbox için true/false gönderin. Dropdown için seçenek ID’si gönderin. Tarih için tarih string olarak herhangi bir formatta gönderilebilir.

Dönen Değer:

200 OK hata olmadığında döner. Aksi durumda bir Hata mesajı döndürür.

Firma Özel Alanları

https://[Talep Sistemi-url]/api/CompanyCustomFields?id=123 

Bir firmaya ait tüm özel alanları görüntüler. Sadece teknisyenler tarafından kullanılabilir.

Parametreler:

AdTürAçıklama
idintfirma ID

Dönen Değer:

[  {  "FieldName": "firma city",  "FieldID": 1234,  "Type": 1,  "Value": "Los Angeles"  } ] 

Bilgi Bankası

Bilgi Bankası makalelerini yönetmek için API yöntemleri

Makaleler

https://[Talep Sistemi-url]/api/Articles 

Başlıklar, tam URL’ler ve diğer faydalı bilgileri içeren Bilgi Bankası makalelerinin listesini döndürür, ancak makale içeriğini içermez.

Parametreler:

AdTürAçıklama
categoryIdint(opsiyonel) Belirli bir kategoriden makaleleri döndürür

Dönen Değer:

{  "Articles": [  {  "Ekler": [],  "ArticleId": 6,  "Subject": "Sample KB article",  "Body": null,  "ForTechsOnly": false,  "CategoryID": 5,  "CategoryName": null,  "CategoryNotes": null,  "TagString": null,  "UrlId": "6-sample-kb-article",  "DateCreated": "2016-10-09T05:04:40.89",  "LastUpdated": null,  "Url": "http://localhost:3000//KB/View/6-sample-kb-article",  "Etiketler": null  }  //....  ],  "Kategoriler": [  {  "CategoryID": 5,  "Name": "Ödeme sorunları",  "SectionID": 1,  "Section": "Satış",  "TicketCount": 1,  "NameWithSection": "Satış \\ Ödeme sorunları",  "ForTechsOnly": false,  "ForSpecificUsers": false,  "FromAddress": null,  "KBOnly": false  }  //...  ],  "Etiketler": [] } 

Makale

https://[Talep Sistemi-url]/api/Article/{id} 

Belirli bir Bilgi Bankası makalesini içeriğiyle birlikte döndürür.

Parametreler:

AdTürAçıklama
idintMakale ID

Dönen Değer:

{  "Ekler": [],  "ArticleId": 7,  "Subject": "Another sample KB article",  "Body": "This is a sample Bilgi Bankası article, just to give you a clue what it looks like.\r\n\r\n[b]Subtitle[/b]\r\n\r\nHere you can explain the Bilgi Bankası article in detail. If applicable, explain how the problem can be worked around.",  "ForTechsOnly": false,  "CategoryID": 6,  "CategoryName": "Satış öncesi sorular",  "CategoryNotes": null,  "TagString": null,  "UrlId": null,  "DateCreated": "2016-10-09T05:04:40.893",  "LastUpdated": "2016-10-09T05:04:40.893",  "Url": "http://localhost:3000//KB/View/7",  "Etiketler": [] } 

Makale (POST)

https://[Talep Sistemi-url]/api/article 

Yeni bir bilgi bankası makalesi oluşturur

Parametreler:

AdTürAçıklama
categoryIdintKategori ID
bodystringMakale içeriği
subjectstringMakale konusu
forTechsOnlystringMakale yalnızca "teknisyenler için"dir
curl -F "categoryId=1" -F "body=test" -F "subject=test" -u admin:admin -v http://localhost/talepsistemi/api/article

Döndürür

Oluşturulan Makale ID

Otomasyon kuralları

Talep Sistemi Otomasyonunu yönetmek için API yöntemleri

Kural

https://[Talep Sistemi-url]/api/Rule/{id}

Belirli bir kuralı XML olarak döndürür.

Parametreler:

AdTürAçıklama
idintKural ID

Döndürür:


<AutomationRule xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
...
 <Koşullar>
...
 Koşullar>
 <Aksiyonlar>
...
 Aksiyonlar>
AutomationRule>

Kuralı devre dışı bırak

https://[Talep Sistemi-url]/api/DisableRule/{id}

Belirli bir kuralın tetiklenmesini engellemek için devre dışı bırakır.

Parametreler:

AdTürAçıklama
idintKural ID

Kuralı etkinleştir

https://[Talep Sistemi-url]/api/EnableRule/{id}

Daha önce devre dışı bırakılmış bir kuralı etkinleştirir.

Parametreler:

AdTürAçıklama
idintKural ID

Özel Alanlar

Özel alanlarla çalışmak için API yöntemleri

Özel Alanlar (GET)

https://[Talep Sistemi-url]/api/CustomFields?type=[1,2,3,4]

Sisteminizdeki tüm Özel Alanlar listesini döndürür - Talep özel alanları, kullanıcı özel alanları, varlık (asset) özel alanları vb.

Parametreler:

AdTürAçıklama
typeintÖzel alan kullanım türü: 1 - Talepler için, 2 - Varlıklar için, 3 - Kullanıcılar için, 4 - Firmalar için

Ayrıca bakınız:

Talepler, Kullanıcılar, Varlıklar için Özel Alanları alma

Varlıklar

Varlıklarla çalışmak için API yöntemleri

Varlıklar (GET)

https://[Talep Sistemi-url]/api/Assets

Sistemdeki tüm varlıkları (sayfa başına 50 adet) döndürür, isteğe bağlı olarak varlık adına göre filtrelenebilir.

Parametreler:

AdTürAçıklama
pageint (isteğe bağlı)Varlıkların döndürüleceği sayfa numarası. 51-100 arası için "2" gönderin vb.
assignedToUserIdint (isteğe bağlı)Kullanıcı ID’sine göre filtrele
assignedToCompanyIdint (isteğe bağlı)Firma ID’sine göre filtrele
assignedToDepartmentIdint (isteğe bağlı)Departman ID’sine göre filtrele
assignedToTicketIdint (isteğe bağlı)Talep ID’sine göre filtrele
nameprefixstring (isteğe bağlı)Varlık adlarının bu önekle başlamasına göre filtrele (en az 3 karakter)
includeDisabledbool (isteğe bağlı)Devre dışı bırakılmış (pasif) varlıkları göster

Döndürür:

[
 ...
 {
 "Talepler": null,
 "AssignedUsers": [],
 "Fields": [],
 "Ekler": null,
 "ItemID": 91,
 "Manufacturer": "Apple",
 "Supplier": "none",
 "ModelName": "Macbook",
 "TypeID": 0,
 "Type": "Laptop",
 "ManufacturerID": 0,
 "SupplierID": 0,
 "SerialNumber": null,
 "Location": null,
 "Comments": null,
 "Quantity": 0,
 "TicketCount": 0,
 "firma": null,
 "CompanyID": null
 }
 ...
]

Varlık (GET)

https://[Talep Sistemi-url]/api/Asset?id={id}

Tek bir varlığı ID ile getirir.

Parametreler:

AdTürAçıklama
idintVarlık ID

Döndürür:

{
    "Talepler": null,
    "AssignedUsers": [],
    "Fields": [],
    "Ekler": null,
    "ItemID": 91,
    "Manufacturer": "Apple",
    "Supplier": "none",
    "ModelName": "Macbook",
    "TypeID": 0,
    "Type": "Laptop",
    "ManufacturerID": 0,
    "SupplierID": 0,
    "SerialNumber": null,
    "Location": null,
    "Comments": null,
    "Quantity": 0,
    "TicketCount": 0,
    "firma": null,
    "CompanyID": null
}

Asset (POST)

https://[Talep Sistemi-url]/api/Asset

Bir varlık oluşturur

Parametreler:

NameTypeAçıklama
modelNamerequired (string)model adı
manufacturerrequired (string)üretici adı
typerequired (string)tip
supplierrequired (string)tedarikçi adı
serialNumberoptional (string)seri numarası
locationoptional (string)konum
commentsoptional (string)ek açıklamalar
quantityoptional (int)miktar (varsayılan: 1)
companyIdoptional (int)bir firmaya ata

Dönüş:

{
    "id": 123
}

SetCustomFieldForAsset (POST)

https://[Talep Sistemi-url]/api/SetCustomFieldForAsset

Bir varlıkta özel alan değerini ayarlar.

Parametreler:

NameTypeAçıklama
idintVarlık ID
fieldIdintÖzel alan ID
valuestringDeğer (string olarak). Checkbox için true/false. Dropdown için seçenek ID’si. Tarih için herhangi bir formatta tarih.

Dönüş:

200 OK hata yoksa döner. Hata varsa hata mesajı döner.

UpdateAsset (POST)

https://[Talep Sistemi-url]/api/UpdateAsset

Mevcut bir varlığı günceller

Parametreler:

NameTypeAçıklama
idrequired (int)varlık ID
modelNamerequired (string)model adı
manufactureroptional (string)üretici adı
typeoptional (string)tip adı
supplieroptional (string)tedarikçi adı
serialNumberoptional (string)seri numarası
locationoptional (string)konum
commentsoptional (string)ek açıklamalar
quantityoptional (int)miktar (varsayılan: 1)
companyIdoptional (int)bir firmaya ata

Dönüş:

{
    "Talepler": null,
    "AssignedUsers": [],
    "Fields": [],
    "Ekler": null,
    "ItemID": 91,
    "Manufacturer": "Apple",
    "Supplier": "none",
    "ModelName": "Macbook",
    "TypeID": 0,
    "Type": "Laptop",
    "ManufacturerID": 0,
    "SupplierID": 0,
    "SerialNumber": null,
    "Location": null,
    "Comments": null,
    "Quantity": 0,
    "TicketCount": 0,
    "firma": null,
    "CompanyID": null
}

AssignAssetToUser (POST)

https://[Talep Sistemi-url]/api/AssignAssetToUser

Bir varlığı bir kullanıcıya atar

Parametreler:

AdTürAçıklama
assetIdrequired (int)asset ID
userIdrequired (int)kullanıcı ID

UnAssignAssetToUser (POST)

https://[Talep Sistemi-url]/api/UnAssignAssetToUser 

Bir varlığı bir kullanıcıdan kaldır (atamasını kaldır)

Parametreler:

AdTürAçıklama
assetIdrequired (int)asset ID
userIdrequired (int)kullanıcı ID

AddAssetToTicket (POST)

https://[Talep Sistemi-url]/api/AddAssetToTicket 

Bir varlığı "assets involved" alanına bir Talep'e ekler

AdTürAçıklama
assetIdrequired (int)asset ID
ticketIDrequired (int)Talep ID

RemoveAssetFromTicket (POST)

https://[Talep Sistemi-url]/api/RemoveAssetFromTicket 

Bir Talep'ten ilişkili varlığı kaldırır

AdTürAçıklama
assetIdrequired (int)asset ID
ticketIDrequired (int)Talep ID

EnableAsset (POST)

https://[Talep Sistemi-url]/api/EnableAsset 

Bir varlığı etkinleştir

Parametreler:

AdTürAçıklama
assetIdrequired (int)asset ID

DisableAsset (POST)

https://[Talep Sistemi-url]/api/DisableAsset 

Bir varlığı devre dışı bırak

Parametreler:

AdTürAçıklama
assetIdrequired (int)asset ID

Kimlik Doğrulama API

Hem barındırılan (hosted) hem de kendi sunucunuzda (self-hosted) bulunan sürümlerde yer alan Kimlik Doğrulama API’sini de kullanabilirsiniz. Daha fazla Ayrıntı için lütfen buraya bakınız.

İstek Sınırlandırma (Rate Limiting)

Talep Sistemi API’sindeki kaynak yoğun yöntemlerin çoğunda istek sınırlandırması (rate-limit) uygulanır ve aşırı kullanım yapan istemciler sınırlandırılır. Çoğu çağrı dakikada 90 kez ile sınırlıdır, Search ve UserByEmail ise dakikada 60 kez ile sınırlıdır. Eğer bir istemci daha fazla istek gönderirse, sunucu ya 429 durum kodu döndürür ya da bazı durumlarda yapay olarak yavaş yanıt verir. Birkaç dakika bekleyip tekrar deneyiniz.

Eğer kendi sunucunuzda (self-hosted) sürümü kullanıyorsanız, "appsettings.json" yapılandırma dosyasına aşağıdakini ekleyerek rate limiting özelliğini devre dışı bırakabilirsiniz:

"DisableRateLimit" : "true", 
Önceki
AI(Yapay Zeka) servis (kendi-barındırılan)