İ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:
- Kullanıcı adı ve şifre iki nokta üst üste ile birleştirilir
username:password - Oluşan string Base64 ile encode edilir
- Başına kimlik doğrulama türü eklenir:
Basic+ encoded string - 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. - Örnek: kullanıcı adı
adminve şifreadminise 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:
| Name | Type | Açıklama |
|---|---|---|
| mode | string | (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 |
| categoryId | int[] | (opsiyonel) Kategoriye göre filtreleme yapar. Şu şekilde dizi gönderilebilir: ?categoryId=1&categoryId=2 |
| sectionId | int | (opsiyonel) Bölüme göre filtreleme yapar |
| statusId | int[] | (opsiyonel) Duruma göre filtreleme yapar. Şu şekilde dizi gönderilebilir: ?statusId=1&statusId=2 |
| fromUserId | int | (opsiyonel) Talebi oluşturan kullanıcıya göre filtreleme yapar |
| fromCompanyId | int | (opsiyonel) Firmaya göre filtreleme yapar |
| handledByUserID | int | (opsiyonel) Talebi işleyen kullanıcıya göre filtreleme yapar |
| tagName | string | (opsiyonel) Talep etiketi (tag) ile filtreleme yapar |
| dateFrom | string | (opsiyonel) Oluşturulma tarihine göre filtreler (tarih formatı YYYY-MM-DD olmalıdır, örnek: 2016-11-24) |
| dateTo | string | (opsiyonel) Oluşturulma tarihine göre filtreler (tarih formatı YYYY-MM-DD olmalıdır, örnek: 2016-11-24) |
| updatedFrom | string | (opsiyonel) Son güncelleme tarihine göre filtreler (tarih formatı YYYY-MM-DD olmalıdır, örnek: 2016-11-24) |
| updatedTo | string | (opsiyonel) Son güncelleme tarihine göre filtreler (tarih formatı YYYY-MM-DD olmalıdır, örnek: 2016-11-24) |
| updatedByType | string | (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 |
| dueInDays | int | (opsiyonel) “X gün içinde teslim” filtresi |
| includeCustomFields | bool | (opsiyonel) Özel alan değerlerini çıktıya ekler (sadece “Show in grid” aktif olan alanlar, maksimum 30 alan) |
| subscribedOnly | bool | (opsiyonel) Sadece abone olunan Talepleri döndürür |
| count | int | (opsiyonel) Kaç Talep döndürüleceğini belirler. Varsayılan: 10. Maksimum: 300. |
| offset | int | (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:
| Name | Type | Açıklama |
|---|---|---|
| id | int | Talep 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:
| Name | Type | Açıklama |
|---|---|---|
| categoryId | int | Kategori ID |
| body | string | Talep içeriği |
| subject | string | Talep konusu |
| priorityId | int | Talep önceliği. Değerler: <li>-1 – Düşük</li><li>0 – Normal</li><li>1 – Yüksek</li><li>2 – Kritik</li> |
| userId (optional) | int | Bu kullanıcı adına (“on-behalf”) Talep oluşturmak için kullanıcı ID’si (teknisyen yetkisi gerektirir) |
| Etiketler (optional) | string | Virgülle ayrılmış etiketler. Örnek: Etiketler=tag1,tag2,tag3 |
| origin (optional) | int | Talebin 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) | int | Talebin atanacağı kullanıcı ID’si (opsiyonel, teknisyen yetkisi gerektirir) |
| customFields (optional) | string | Talebe ait özel alan değerlerini içeren JSON string. Format: { "ID1" : "value", "ID2" : "value" } burada “ID” özel alanın numarasıdır. |
| suppressConfirmation (optional) | bool | Kullanı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:
| Name | Type | Açıklama |
|---|---|---|
| id | int | Talep ID |
| categoryId | int | (optional) Talep kategorisi |
| Öncelik | int | (optional) Talep önceliği. Değerler: -1 Düşük, 0 Normal, 1 Yüksek, 2 Kritik |
| date | DateTime | (optional) Talep oluşturulma tarihi |
| userId | int | (optional) Talebi oluşturan kullanıcı ID |
| dueDate | DateTime | (optional) Bitiş tarihi, kaldırmak için boş string "" gönderin |
| closeDate | DateTime | (optional) Kapanış tarihi (geçmiş bir tarih olabilir) |
| assignedUserId | int | (optional) Atanan teknisyen ID’si. 0 gönderilirse atama kaldırılır |
| timeSpentInSeconds | int | (optional) Talep üzerinde harcanan süre (saniye) |
| statusId | int | (optional) Talep durumu ID’si. "Closed" = 3, "New" = 1, "In process" = 2. Diğer durumlar admin panelinden kontrol edilir |
| Etiketler | string | (optional) Virgülle ayrılmış etiket listesi. Örn: Etiketler=tag1,tag2,tag3. Mevcut etiketlerin tamamı silinir |
| subject | string | (optional) Talep konusu |
| body | string | (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:
| Name | Type | Açıklama |
|---|---|---|
| ticketId | int | Talep ID |
| userId | int | Kullanı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:
| Name | Type | Açıklama |
|---|---|---|
| id | int | Talep ID |
| suppressNotification | bool | (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:
| Name | Type | Açıklama |
|---|---|---|
| ticketId | int | Talep ID |
| fieldId | int | Özel alan ID |
| value | string | Değ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:
| Name | Type | Açıklama |
|---|---|---|
| ticketId | int | Talep ID |
| cf12345 (12345 özel alan ID’sidir, örneğe bakınız) | string | Değ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:
| Name | Type | Açıklama |
|---|---|---|
| forCurrentUser | bool | (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
}
Arama
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:
| Name | Type | Açıklama |
|---|---|---|
| query | string | Aranacak metin |
| fromUserId | int | (optional) Talep oluşturan kullanıcıya göre filtreleme |
| categoryId | int[] | (optional) Kategoriye göre filtreleme, şu şekilde dizi gönderilebilir: ?categoryId=1&categoryId=2 |
| statusId | int[] | (optional) Duruma göre filtreleme |
| assignedToUserId | int | (optional) Atanan teknisyene göre filtreleme |
| dateFrom | datetime | (optional) Talep oluşturulma tarihi |
| dateTo | datetime | (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:
| Name | Type | Açıklama |
|---|---|---|
| id | int | Talep ID |
| returnUnset | bool | (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:
| Name | Type | Açıklama |
|---|---|---|
| id | int | Dosya 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:
| Name | Type | Açıklama |
|---|---|---|
| id | int | Talep 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:
| Name | Type | Açıklama |
|---|---|---|
| id | int | Talep ID |
| multipart file | binary | Yü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:
| Name | Type | Açıklama |
|---|---|---|
| id | int | Dosya 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:
| Name | Type | Açıklama |
|---|---|---|
| id | int | Talep ID |
| userId | int | Yeni abonenin kullanıcı ID’si |
RemoveSubscriber (POST)
https://[Talep Sistemi-url]/api/RemoveSubscriber
Bir aboneliği Talep üzerinden kaldırır
Parameters:
| Name | Type | Açıklama |
|---|---|---|
| id | int | Talep ID |
| userId | int | Abonenin kullanıcı ID’si |
Subscribers (GET)
https://[Talep Sistemi-url]/api/Subscribers?id=123
Bir Talebin abonelerini listeler
Parameters:
| Name | Type | Açıklama |
|---|---|---|
| id | int | Talep 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:
| Name | Type | Açıklama |
|---|---|---|
| categoryId | int | Kategori 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:
| Name | Type | Açıklama |
|---|---|---|
| id | int | Kategori 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:
| Name | Type | Açıklama |
|---|---|---|
| categoryId | int | Kategori 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§ionId=1
Yeni bir kategori oluşturur
Parameters:
| Name | Type | Açıklama |
|---|---|---|
| name | string | Kategori adı |
| sectionId | int | (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:
| Name | Type | Açıklama |
|---|---|---|
| id | int | Ana Talep ID |
| id2 | int | Birleştirilecek Talep (ikinci Talep silinir) |
LinkTickets
https://[Talep Sistemi-url]/api/LinkTickets
İki Talebi “ilişkili” olarak bağlar
Parameters:
| Name | Type | Açıklama |
|---|---|---|
| id | int | Birinci Talep ID |
| id2 | int | İkinci Talep ID |
UnlinkTickets
https://[Talep Sistemi-url]/api/UnlinkTickets
İki Talep arasındaki bağlantıyı kaldırır
Parameters:
| Name | Type | Açıklama |
|---|---|---|
| id | int | Birinci Talep ID |
| id2 | int | İkinci Talep ID |
AddSubTicket
https://[Talep Sistemi-url]/api/AddSubTicket
Bir Talebi başka bir Talebin alt Talebi yapar
Parametreler:
| Name | Type | Açıklama |
|---|---|---|
| parentId | int | Üst Talep ID |
| childId | int | Alt Talep ID |
AltTalepKaldır
https://[Talep Sistemi-url]/api/RemoveSubTicket
Alt talebi kaldırır.
Parametreler:
| Name | Type | Açıklama |
|---|---|---|
| childId | int | Alt Talep ID |
BağlıTalepler
https://[Talep Sistemi-url]/api/LinkedTickets?id=123
Belirtilen talebe bağlı talepleri döndürür.
Parametreler:
| Name | Type | Açıklama |
|---|---|---|
| id | int | Talep 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:
| Name | Type | Açıklama |
|---|---|---|
| id | int | Talep 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:
| Name | Type | Açıklama |
|---|---|---|
| id | int | Talep ID |
| returnFullTicket | bool | (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:
| Name | Type | Açıklama |
|---|---|---|
| id | int | Talep 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:
| Name | Type | Açıklama |
|---|---|---|
| name | string | Etiket adı (yeni veya mevcut olabilir) |
| ticketId | int | Etiket 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:
| Name | Type | Açıklama |
|---|---|---|
| ticketId | int | Talep 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:
| Name | Type | Açıklama |
|---|---|---|
| ticketId | int | Talep ID |
| timeSpentInSeconds | int | Saniye cinsinden harcanan süre |
| statusId | int | (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:
| Name | Type | Açıklama |
|---|---|---|
| id | int | Talep id |
| body | string | Yorum içeriği |
| forTechsOnly | bool | (opsiyonel) Sadece teknisyenlere görünen yorum. Varsayılan: false |
| isSystem | bool | (opsiyonel) “Sistem” yorumu (gri gösterilir). Varsayılan: false |
| recipientIds | comma-separated integers | (opsiyonel) Bildirim gönderilecek abone kullanıcı ID listesi. Varsayılan olarak tüm abonelere gönderilir. |
| fromUserId | int | (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:
| Name | Type | Açıklama |
|---|---|---|
| id | int | Yorum id |
| body | string | Yorum içeriği |
| forTechsOnly | bool | (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:
| Name | Type | Açıklama |
|---|---|---|
| id | int | Talep 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:
| Name | Type | Açıklama |
|---|---|---|
| categoryId | integer | Opsiyonel. 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:
| Name | Type | Açıklama |
|---|---|---|
| string | kullanıcının e-posta adresi, benzersiz olmalıdır | |
| username | string | (opsiyonel) kullanıcı adı, benzersiz olmalıdır. Verilmezse email kullanılır |
| password | string | (opsiyonel) kullanıcı şifresi (verilmezse sistem otomatik güçlü şifre üretir) |
| firstName | string | (opsiyonel) ad |
| lastName | string | (opsiyonel) soyad |
| phone | string | (opsiyonel) telefon |
| location | string | (opsiyonel) konum |
| firma | string | (opsiyonel) kullanıcı firmasını ayarlar. Yoksa oluşturulur |
| Departman | string | (opsiyonel) departman ayarlar. Yoksa oluşturulur |
| sendWelcomeEmail | bool | (opsiyonel) “Hoş Geldiniz” e-postası gönderir |
| isManager | bool | (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:
| Ad | Tür | Açıklama |
|---|---|---|
| userId | int | düzenlenen kullanıcının ID'si |
| opsiyonel parametreler: | ||
| username | string | kullanıcı adı, başka bir kullanıcı tarafından kullanılmamalıdır |
| string | kullanıcının e-posta adresi | |
| firstName | string | ad |
| lastName | string | soyad |
| notes | string | opsiyonel notlar |
| phone | string | telefon |
| location | string | konum |
| Departman | string | kullanıcının departman adı |
| disabled | bool | kullanıcıyı etkinleştir/devre dışı bırak |
| firma | string | kullanıcının firma adı |
| password | string | kullanıcının yeni şifresi |
| enableEmailNotifications | bool | kullanıcı için e-posta bildirimlerini aç/kapat |
| greeting | string | kullanıcının web arayüzünden yanıt eklerken otomatik eklenen "selamlama" |
| signature | string | kullanıcının web arayüzünden yanıt verirken otomatik eklenen "imza" |
| outOfOffice | bool | ofis dışında mı |
| isAdmin | bool | yö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:
| Ad | Tür | Açıklama |
|---|---|---|
| userId | int | kullanı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:
| Ad | Tür | Açıklama |
|---|---|---|
| userId | int | kullanıcının ID'si |
SetCustomFieldForUser (POST)
https://[Talep Sistemi-url]/api/SetCustomFieldForUser
Bir kullanıcı için özel alan değeri ayarlar.
Parametreler:
| Ad | Tür | Açıklama |
|---|---|---|
| id | int | kullanıcı ID |
| fieldId | int | özel alan ID |
| value | string | string 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:
| Ad | Tür | Açıklama |
|---|---|---|
| string | e-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:
| Ad | Tür | Açıklama |
|---|---|---|
| fromUserId | int | birleştirilecek kullanıcı ID'si |
| toUserId | int | birleş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:
| Ad | Tür | Açıklama |
|---|---|---|
| username | string | kullanı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:
| Ad | Tür | Açıklama |
|---|---|---|
| id | int | kullanı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:
| Ad | Tür | Açıklama |
|---|---|---|
| count | int | (opsiyonel) döndürülecek kullanıcı sayısı. Varsayılan: 500 |
| page | int | (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. |
| listMode | string | (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 |
| departmentId | int | (opsiyonel) belirli departmandaki kullanıcılar |
| companyId | int | (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:
| Ad | Tür | Açıklama |
|---|---|---|
| userId | int | kullanıcı ID |
| categoryId | int | Kategori 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:
| Ad | Tür | Açıklama |
|---|---|---|
| userId | int | kullanıcı ID |
| categoryId | int | Kategori 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:
| Ad | Tür | Açıklama |
|---|---|---|
| name | string | firma adı |
| emailDomains | string | (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:
| Ad | Tür | Açıklama |
|---|---|---|
| id | int | firma ID |
| name | string | firma adı |
| notes | string | firma notları |
| emailDomains | string (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:
| Ad | Tür | Açıklama |
|---|---|---|
| id | int | firma ID |
| fieldId | int | Özel alan ID |
| value | string | Değ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:
| Ad | Tür | Açıklama |
|---|---|---|
| id | int | firma 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:
| Ad | Tür | Açıklama |
|---|---|---|
| categoryId | int | (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:
| Ad | Tür | Açıklama |
|---|---|---|
| id | int | Makale 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:
| Ad | Tür | Açıklama |
|---|---|---|
| categoryId | int | Kategori ID |
| body | string | Makale içeriği |
| subject | string | Makale konusu |
| forTechsOnly | string | Makale 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:
| Ad | Tür | Açıklama |
|---|---|---|
| id | int | Kural 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:
| Ad | Tür | Açıklama |
|---|---|---|
| id | int | Kural ID |
Kuralı etkinleştir
https://[Talep Sistemi-url]/api/EnableRule/{id}
Daha önce devre dışı bırakılmış bir kuralı etkinleştirir.
Parametreler:
| Ad | Tür | Açıklama |
|---|---|---|
| id | int | Kural 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:
| Ad | Tür | Açıklama |
|---|---|---|
| type | int | Ö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:
| Ad | Tür | Açıklama |
|---|---|---|
| page | int (isteğe bağlı) | Varlıkların döndürüleceği sayfa numarası. 51-100 arası için "2" gönderin vb. |
| assignedToUserId | int (isteğe bağlı) | Kullanıcı ID’sine göre filtrele |
| assignedToCompanyId | int (isteğe bağlı) | Firma ID’sine göre filtrele |
| assignedToDepartmentId | int (isteğe bağlı) | Departman ID’sine göre filtrele |
| assignedToTicketId | int (isteğe bağlı) | Talep ID’sine göre filtrele |
| nameprefix | string (isteğe bağlı) | Varlık adlarının bu önekle başlamasına göre filtrele (en az 3 karakter) |
| includeDisabled | bool (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:
| Ad | Tür | Açıklama |
|---|---|---|
| id | int | Varlı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:
| Name | Type | Açıklama |
|---|---|---|
| modelName | required (string) | model adı |
| manufacturer | required (string) | üretici adı |
| type | required (string) | tip |
| supplier | required (string) | tedarikçi adı |
| serialNumber | optional (string) | seri numarası |
| location | optional (string) | konum |
| comments | optional (string) | ek açıklamalar |
| quantity | optional (int) | miktar (varsayılan: 1) |
| companyId | optional (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:
| Name | Type | Açıklama |
|---|---|---|
| id | int | Varlık ID |
| fieldId | int | Özel alan ID |
| value | string | Değ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:
| Name | Type | Açıklama |
|---|---|---|
| id | required (int) | varlık ID |
| modelName | required (string) | model adı |
| manufacturer | optional (string) | üretici adı |
| type | optional (string) | tip adı |
| supplier | optional (string) | tedarikçi adı |
| serialNumber | optional (string) | seri numarası |
| location | optional (string) | konum |
| comments | optional (string) | ek açıklamalar |
| quantity | optional (int) | miktar (varsayılan: 1) |
| companyId | optional (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:
| Ad | Tür | Açıklama |
|---|---|---|
| assetId | required (int) | asset ID |
| userId | required (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:
| Ad | Tür | Açıklama |
|---|---|---|
| assetId | required (int) | asset ID |
| userId | required (int) | kullanıcı ID |
AddAssetToTicket (POST)
https://[Talep Sistemi-url]/api/AddAssetToTicket Bir varlığı "assets involved" alanına bir Talep'e ekler
| Ad | Tür | Açıklama |
|---|---|---|
| assetId | required (int) | asset ID |
| ticketID | required (int) | Talep ID |
RemoveAssetFromTicket (POST)
https://[Talep Sistemi-url]/api/RemoveAssetFromTicket Bir Talep'ten ilişkili varlığı kaldırır
| Ad | Tür | Açıklama |
|---|---|---|
| assetId | required (int) | asset ID |
| ticketID | required (int) | Talep ID |
EnableAsset (POST)
https://[Talep Sistemi-url]/api/EnableAsset Bir varlığı etkinleştir
Parametreler:
| Ad | Tür | Açıklama |
|---|---|---|
| assetId | required (int) | asset ID |
DisableAsset (POST)
https://[Talep Sistemi-url]/api/DisableAsset Bir varlığı devre dışı bırak
Parametreler:
| Ad | Tür | Açıklama |
|---|---|---|
| assetId | required (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",