Merhaba Arkadaşlar. Api ders konusunda da Laravel dersleri kadar destek verdiğiniz için teşekkür ederim :) Öncelikle Hürriyet Api ile ilgili yazdığım makalemden sonra OOP yapısını kullanmam önerildi ve tabi ki buna bende sonuna kadar katılıyorum ki bende uzun zamandır bu şekilde kod yazmadığımdan garip de hissettim kendimi :) Ama amacım OOP yapısını hala bilmeyen ve öğrenmeyide düşünmeyen kişilerinde bundan yararlanabilmesi. Elbet ki doğru yolu bulacaklardır ama bu yolda değilken de en azından Api derslerinden yararlanmasının sakıncası yok :) Anladığınız üzerine de League Of Legends için de OOP yapısı kullanmadım :)
League Of Legends Api içeriği farklı farklı bir çok method içeriyor. Ben tabi ki bu projeyi hazırlarken tüm methodları veya methodlar içerisindeki tüm çıktı verilerini kullanmadım. Zaten önemli olan kullanımını görmeniz geliştirmek için sadece dökümanı incelemek yeterli olacaktır.
Döküman içerisinde 2 farklı sayfadan yararlandım. Bunlar ;
Full Api Methodları Static Data
Başlıklardan anlayacağınız gibi bir sayfada Api Methodları bulunuyor diğerinde ise Statik Veriler bulunuyor. Konu altında yararlandığım ve yararlanabileceğiniz tüm linkleri , Github linkini ayrıyeten bulabilirsiniz.
Şimdi ilk olarak Riot Games Developer sayfasına girelim. Oyun hesabınız var ise onunlada giriş yapabilirsiniz veya yeni bir hesap oluşturabilirsiniz. Bir Api Key almamız gerekecek. Projeyi indirip config.php içerisinde bulunan $baseUrl ve $apiKey değişkenlerini gerektiği gibi doldurmak projenin çalışması için yeterli olacaktır ama benim tavsiyem şuan hemen projeyi çalıştırma çabasına girmeyin. İlk olarak Developer sayfasına girdikten sonra Full Api Methodları sayfasına girin. Tüm Methodlar karşınızda en alttan 1 üsttünde bulunan summoner-v1.4 tıklayın.Bu method içerisinde bize 5 farklı seçenek sunuyor. En üstteki hariç diğer bilgiler {summonerIds} yani Karakterin Id ile gerçekleştiriliyor. Daha sonra istediğiniz gibi inceleyebilirsiniz tabi ki fakat benim şuan ki amacım döküman kullanımını rahatlıkla kavramanız yönünde.Şimdi ilk olarak en başta bulunan {summonerNames} Karakterin Adı ile işlem yapacağımız methodla başlayalım. Buna tıklayın ve biraz aşağı indiğinizde Path Parameters kısmına karakter adı girin. Eğer daha önce oynamadıysanız arkadaşımın hesabı olan Crimsonblood yazabilirsiniz.Daha sonra server seçimi yapmanız gerekiyor Crimsonblood TR serverinde bulunmaktadır ve son adım EXECUTE REQUEST diyip sonucunu inceliyoruz. Gördüğünüz gibi bize bir Request URL verdi bu linke tıklayarak çıktıyı farklı pencerede daha net inceleyebilirsiniz ama bunun haricinde Response Body kısmında da çıktı veriliyor. Döküman kullanımını gördüğünüze göre artık projemize başlayabiliriz.
Proje içerisinde
Şampiyonları Listeleme (index.php)
Şampiyon Detay Sayfası , Şampiyon Skinleri (champion.php)
İtemleri Özellikleri ile Listeleme (items.php)
Karakter Bilgilerini Sorgulama , Detaylı Bilgiler , Canlı Maç Kontrolü (characterPost.php)
Bulunmaktadır. Kullandığım Json & Method isimleri sırasıyla
champion.json (index.php)
{championId}.json (champion.php)
item.json (items.php)
summoner-v1.4 , stats-v1.3 , team-v2.4 , current-game-v1.0 (characterPost.php)
şeklindedir. Proje içerisinde Hürriyet Api de olduğu gibi aynı tasarım ve yapıyı kullandım. Config içerisinde curl ve json_decode bulunan basit bir fonksiyon yazdık ve bazı methodların var olup olmadığını kontrol edebilmek için CURLINFO_HTTP_CODE kullandık. Bazı methodlar nedir diye hiç düşünmeye gerek yok en basit şekilde aradığımız oyuncunun Takımı var mı yok mu bunu kontrol etmemiz gerekir hata almayı engellemek için. Sayfalar içerisinde bu fonksiyonu farklı URL ile çektik ve json çıktısını ayrıştırdık. Proje içerisinde belki karışık gelecek tek yer characterPost.php olabillir ama sırayla bakarsanıza aslında onda da bir zor kısım yok sadece 1 den fazla methodu aynı sayfada kullandığımızdan karmaşık gelebilir.Sıralı kontrol etmeniz yeterli olacaktır. Örnek olarak index.php de bulunan şampiyonları çeken kodu inceleyelim.
$decode = getFunc("http://ddragon.leagueoflegends.com/cdn/6.21.1/data/tr_TR/champion.json");
foreach ($decode['data'] as $champion) {
echo "
<a class='data' href='champion/$champion[id]'>
<img src='http://ddragon.leagueoflegends.com/cdn/img/champion/loading/$champion[id]_0.jpg' alt='$champion[name]' title='$champion[name]' />
<h3>$champion[name]</h3>
</a>
";
}
champion.json içerisinde bulunanları foreach ile tek tek ekrana yazdırdık aslında yine açıklanacak pek birşey bulamadım :) Son olarak yararlandığım ve yararlanabileceğiniz linkleri ve github linkini sizinle paylaşayım.
Karakter Bilgileri : summoner-v1.4
Karakterin Detaylı Bilgileri : stats-v1.3
Karakterin Takım Bilgileri : team-v2.4
Karakterin Canlı Maç Bilgileri : current-game-v1.0
Oyun içerisinde bulunan şampiyonların listesi : champion.json
Herhangi bir şampiyonun detaylı bilgisi : Aatrox detaylı bilgi
Oyun içerisindeki İtemlerin Listesi : items.json
Şampiyonun Resmi - Şampiyon Skinlerinden Biri (Link sonunda bulunan rakamın artması) - Şampiyon Büyük Resim (splash) - Şampiyon Küçük Resim : Aatrox_0 - Aatrox_1 - Büyük Aatrox Resim - Küçük Aatrox Resim
İtemin Resmi : İtem
Profile Icon Json : Json
Profil İcon Resmi : Resim
Flash Speel Resim : Resim
Mastery Resim : Resim
Mastery Json : Json
Rune Resim : Resim
Rune Json : Json
Map Resim : Resim
Github
Projenin Dosyaları : Github
Proje İçerisinden Görüntüler
Yorumlar