Öncelikli olan API'a nasıl ulaşılacağı. Herkes ulaşabilecek mi yoksa sadece üye olanlar mı. Sadece üyelere açık, kapalı bir API olacaksa işin içerisine kimlik doğrulama (authentication) giriyor. API'lar için kullanılan ise genellikle jeton tabanlı kimlik doğrulama (token-based authentication).
Eğer token-based authentication ile araştırma yaparsanız kendiniz bu sistemi kurabilirsiniz.
Daha hızlı çözmek isterseniz en çok kullanılan paket tymon/jwt-auth:
https://jwt-auth.readthedocs.io/en/develop/laravel-installation/
Laravel'in de kendine ait Socialite isimli resmi paketi mevcut. Daha çok OAuth için kullanılsa da sadece kendi sisteminiz için token-based şeklinde kullanabilirsiniz.
Açıkçası OAuth kullanılmayacaksa biraz gereksiz bir işlem olacaktır. jwt-auth daha mantıklı olur. Sadece bilgi amaçlı yazıyorum:
https://laravel.com/docs/5.7/socialite
Bu aşamayı geçtikten sonra;
API sisteminizin parçası da olabilir, ayrı bir sistem de olabilir. Yani Laravel içerisinde de yazabilirsiniz, Lumen kullanıp ayrı bir subdomain ile de kullanabilirsiniz, farklı bir dil ile de yazılabilir. Sonuçta önemli olan elde edilen istediğiniz yapıda olması.
Projelerde API, projenin (genellikle) bileşenlerini kullandığı için pek ayrılmıyor çünkü ayırmak demek bir çok şeyi baştan yazmanız demek olacaktır. Bunun bakımı da ayrı bir sıkıntı.
Daha önce yazmadığınıza göre üstteki maceralara girmeden Laravel dışına çıkmanıza gerek yok.
- Üyelik gerektiren sistem olacaksa jwt-auth kurup gerekli işlemleri yapın.
- app/Controllers içerisine API isimli bir klasör oluşturup oraya API controller dosyalarını oluşturun.
- routes/api.php içerisinde rotalarınızı tanımlayın (Bu rotalara API'larda uçnokta/endpoint deniyor)
Bir şeyler yapın, teorik konuşmayalım, sonra onun üzerinden yardımcı olmaya çalışırız.