1. Öncelikle Laravel Passport kısmını inceleyin. API işlemlerinde yetki kullanacaksanız buna ihtiyacınız olacak:
https://laravel.com/docs/5.4/passport
2. API rotaları için zaten routes/api.php mevcut. Rotaları orada tutuyorsunuz. Benim size önerim API versiyonu için route group oluşturmanız. Yani:
Route::group(['prefix' => 'v1'], function() {
// GET api/v2/user
Route::get('/user', function (Request $request) {
return $request->user();
})->middleware('auth:api');
});
şeklinde. Bu şekilde yeni bir API arayüzü oluşturmak istediğinizde eskisini bozmadan v2 diye yenisini oluşturup api/v2/user şeklinde kullanabilirsiniz.
3. API'lerin genellikle çok fazla istek alacağı varsayılır ve istek sayıları ip, zaman ve diğer bazı değişkenlere göre sınırlanır. (app/Http/Kernel.php içerisine bakarsanız orada api bölümünde throttle:60,1 görürsünüz. Bu, kullanıcı dakikada 60 istek yapabilir, 60'ı geçerse 1 dk beklemek zorundandır anlamına geliyor). Mobil uygulama da kendi içerisinde cache tutabilir. Bu sınırlama olsun olmasın, mobil uygulama cache tutsun tutmasın, siz API'de ağır işlemler için mutlaka cache kullanın.
4. Mevcut API'si olan sistemleri inceleyerek nasıl API endpoint oluşturulmuş, API nasıl organize edilmiş bakabilirsiniz. Örneğin
https://developers.digitalocean.com/documentation/v2/