Başlangıç
Aşağıdaki tüm uç noktalar API v2 kullanır. Temel yol /api/v2/public şeklindedir. Tablolardaki yollar bu ön eke göre verilmiştir.
Liste parametrelerini POST gövdesinde JSON nesnesi olarak ve Content-Type: application/json başlığıyla gönderin. Filtresiz bir istek için {} yeterlidir. GET isteklerinde gövde gerekmez. ?page=… gibi URL sorgu parametreleri desteklenmez.
Tüm istekleri https://api.allodswiki.ru/api/v2/public adresine gönderin. Tablolardaki yollar bu adrese göre verilmiştir. Türkçe siteyi ve bu sitenin oyun sürümünü seçmek için X-Site: tr.allodswiki.ru başlığını ekleyin. X-Site ve Origin başlıkları olmadan doğrudan API’ye gönderilen isteklerde ana Rusça site olan allodswiki.ru kullanılır.
Misafir istek sınırı dahilinde giriş yapmadan okuma yapılabilir. Uygulamalar profilde oluşturulan API jetonunu Authorization: Bearer <token> biçiminde gönderebilir. User-Agent, jeton ayarlarındaki değerle tamamen aynı olmalıdır. Yönetici onayına kadar standart sınır, sonrasında yöneticinin atadığı sınır uygulanır.
Oyun veritabanı kaynakları
{id}, kaynak için sitede gösterilen sayısal kimliktir. Bu değer listelerden veya ilişkili kaynaklardan da alınabilir. Site sayfalarının adreslerindeki adlar ve slug değerleri API yoluna dahil değildir. Yalnızca seçilen oyun sürümü için yayımlanmış kaynaklar döndürülür.
| Kaynak | Liste | Ayrıntılar | Araç ipucu |
|---|---|---|---|
| Eşyalar | POST /items | GET /items/{id} | GET /items/{id}/tooltip |
| Görevler | POST /quests | GET /quests/{id} | GET /quests/{id}/tooltip |
| NPC’ler ve yaratıklar | POST /mobs | GET /mobs/{id} | GET /mobs/{id}/tooltip |
| Nesneler | POST /objects | GET /objects/{id} | GET /objects/{id}/tooltip |
| Bölgeler | POST /zones | GET /zones/{id} | GET /zones/{id}/tooltip |
| Başarımlar | POST /achievements | GET /achievements/{id} | GET /achievements/{id}/tooltip |
| Büyüler | POST /spells | GET /spells/{id} | GET /spells/{id}/tooltip |
| Yetenekler | POST /abilities | GET /abilities/{id} | GET /abilities/{id}/tooltip |
| Beceriler | POST /unlocks | GET /unlocks/{id} | GET /unlocks/{id}/tooltip |
| Para birimleri | POST /currencies | GET /currencies/{id} | GET /currencies/{id}/tooltip |
| Fraksiyonlar | POST /factions | GET /factions/{id} | GET /factions/{id}/tooltip |
Liste parametreleri
Standart bir liste {"items": [...], "total": 123} döndürür. Bir sayfada en fazla 50 kayıt bulunur; numaralandırma 1’den başlar. total, sayfalamadan önceki toplam eşleşme sayısıdır. Sayfa boyutu sabittir: limit, offset ve page_size kullanılmaz.
| Alan | Değer ve işlev |
|---|---|
| page | En az 1 olan tam sayı; varsayılan değer 1’dir. |
| search | İsteğe bağlı ad araması, 3–256 karakter. Arama gerekmiyorsa alanı göndermeyin; boş dize kabul edilmez. |
| desc | Arama sonuçlarının sıralama yönünü belirleyen mantıksal değer. Aramasız listelerin çoğu ada göre artan sıradadır; görev ve yaratık listelerinin kendi sort ve desc seçenekleri vardır. |
| quality | Yalnızca /items: yanıttaki quality alanında kullanılan eşya kalite kodu. |
| level_min, level_max | Yalnızca /quests ve /mobs: isteğe bağlı tam sayı seviye sınırları. Tek bir sınır verilebilir; üst sınır alt sınırdan küçük olamaz. Yaratıklarda seviye aralıklarının kesişimi kontrol edilir. |
| sort | Yalnızca /quests ve /mobs: name veya level; yönü desc belirler. |
| faction | Yalnızca /quests: league veya empire. Tüm fraksiyonlar için alanı göndermeyin; all kabul edilmez. |
Rütbeler ve başarım aşamaları
/abilities/{id}/tooltip ve /spells/{id}/tooltip bir ranks dizisi içerir. Tek bir rütbe için aşağıdaki uç noktaları kullanın. {rank}, 1’den başlayan pozitif rütbe numarasıdır.
Bir başarım için {stage_id}, ayrıntılı yanıttaki stages[].id alanından alınır. Bu değer aşamanın sıra numarası değil kimliğidir ve yalnızca üst başarımın kimliğiyle birlikte kullanılır.
| Yöntem ve yol | İşlev |
|---|---|
| GET /abilities/{id}/ranks/{rank}/tooltip | Belirli bir yetenek rütbesinin araç ipucu. |
| GET /spells/{id}/ranks/{rank}/tooltip | Belirli bir büyü rütbesinin araç ipucu. |
| GET /achievements/{id}/stages/{stage_id}/tooltip | Belirli bir başarım aşamasının araç ipucu. |
Dünya Sırları
| Yöntem ve yol | İşlev |
|---|---|
| POST /secrets | Dünya Sırlarının tam listesi; gövde {}. total ve sayfalama olmadan {"items": [...]} döndürür. |
| GET /secrets/{id} | Dünya Sırrının aşamalarını, görev grafiklerini ve ödüllerini içeren ayrıntılar. Ayrı bir araç ipucu uç noktası yoktur. |
Yetenek hesaplayıcısı
| Yöntem ve yol | İşlev |
|---|---|
| GET /character-classes | Sınıf dizini: {"data": [{"name": "…", "slug": "…"}]}. |
| GET /talents/{name} | Sitenin mevcut oyun sürümünde seçilen sınıfın hesaplayıcısı. |
| GET /talents/{name}/layouts/{layout_id} | Bu sınıfa ait, kullanılabilir belirli bir yerleşim. |
{name}, /character-classes yanıtındaki slug değeridir. Hesaplayıcı yanıtındaki layout.id alanını {layout_id} olarak kullanın. Bu, sınıfa özel ve iç anlamı yorumlanmaması gereken bir yerleşim kimliğidir; oyun sürümü numarası değildir.
Her iki hesaplayıcı uç noktası name, point_budget, layout, spells, abilities, layers, fields ve relations döndürür. layout içinde id ve last_seen_version bulunur. layers yetenek satırlarını ve puan gereksinimlerini, fields gelişim alanlarını ve başlangıç hücrelerini, relations ise yeteneklerle büyüler arasındaki ilişkileri tanımlar. Sabit boyutlar varsaymak yerine yanıttaki geometriyi kullanın.
point_budget içindeki talents ve rubies grupları level_free, level_subscription, total_free ve total_subscription alanlarını içerir. Puan bütçeleri seçilen oyun sürümüne bağlı olduğundan yanıttaki değerleri kullanın.
Cephanelik
| Yöntem ve yol | İşlev |
|---|---|
| POST /armory/avatars | Seviye ve ekipman puanına göre sıralanmış en fazla 100 karakter. Sayfalama veya total olmadan {"items": [...], "servers": [...]} döndürür. |
| GET /armory/avatars/{id} | Ekipman ve güncelleme zamanı dahil, sitedeki karakter kimliğiyle bir karakter. |
POST /armory/avatars, isteğe bağlı search, server ve class_key alanlarını kabul eder. search, en fazla 256 karakterlik tam karakter adıdır ve büyük/küçük harfe duyarsızdır; Rusça е ve ё harfleri farklı kabul edilir. server, servers[].id alanındaki sunucu kimliğidir; class_key ise sınıf kodudur (/character-classes içindeki slug). Filtresiz istek için {} gönderin.
Karakter listesi kayıtlarında id, name, guild, level, gear_score, class, race, faction ve server bulunur. class ve race çevrilmiş adlar değil kodlardır. Gizlenmiş veya silinmiş karakterler ve sunucular döndürülmez.
Ayrıntılı yanıt ayrıca greatness, updated_at ve equipment içerir. Her ekipman kaydında position, place ve item vardır. Veritabanında bulunmayan bir eşyanın item.id değeri null, unknown değeri true olur; özellikleri yine de bulunabilir. updated_at, kaynağın saatini saat dilimi farkı olmadan verir.
İstek örnekleri
curl -X POST 'https://api.allodswiki.ru/api/v2/public/items' -H 'X-Site: tr.allodswiki.ru' -H 'Content-Type: application/json' --data '{"page":1}'
curl -X POST 'https://api.allodswiki.ru/api/v2/public/quests' -H 'X-Site: tr.allodswiki.ru' -H 'Content-Type: application/json' --data '{"page":1,"level_min":60,"level_max":70,"faction":"league","sort":"level","desc":true}'
curl 'https://api.allodswiki.ru/api/v2/public/character-classes' -H 'X-Site: tr.allodswiki.ru'
curl 'https://api.allodswiki.ru/api/v2/public/talents/warrior' -H 'X-Site: tr.allodswiki.ru'
curl -X POST 'https://api.allodswiki.ru/api/v2/public/armory/avatars' -H 'X-Site: tr.allodswiki.ru' -H 'Content-Type: application/json' --data '{}'
Yanıtlar ve sınırlar
Başarılı istekler HTTP 200 ve ek bir ortak sarmalayıcı olmadan JSON döndürür. Ayrıntı ve araç ipucu alanları kaynak türüne bağlıdır; araç ipucu ayrı ve daha küçük bir yanıttır.
Bir alt bölge ana bölgeye aitse /zones/{id}, HTTP 200 ile {"redirect_id": 123} döndürebilir. Döndürülen kimlikle okumaya devam edin.
Hatalar {"error": {"code": "…", "message": "…"}} biçimindedir. HTTP 422 validation_failed yanıtında error.fields parametre hatalarını içerir. HTTP 404 game_resource_not_found kullanılamayan kaynağı, armory_character_not_found karakteri, talent_layout_not_found yerleşimi belirtir.
X-RateLimit-Limit geçerli istek sınırını, X-RateLimit-Remaining ise kalan istek sayısını gösterir. HTTP 429 too_many_requests sonrasında Retry-After süresini bekleyin; X-RateLimit-Reset sıfırlama zamanını Unix saniyesi olarak verir.