- Laravel 8 Framework'ü üzerine Php 7.4 ile kodlanmıştır.
- Docker için dockerfile ve docker-compose.yaml dosyaları oluşturulmuştur.
- İçerisinde Restfull servisleri barındırmaktadır.
- Kodlanan servislerin dökümantasyonu https://swagger.io/ altyapısına entegre edilmiştir.
- Proje içerisinde kuyruk süreçlerini takip edecek supervisior tanımlamaları yapılmıştır. Konfigirasyonu görmek için tıkla.
- Proje içerisinde cron servisi tanımlanmıştır. Laravel Task Schedule servisi çalışmaktadır. Laravel Task Schedule
- Canlı test için : http://restfull.okesmez.com/api/documentation
- Local test için : http://localhost/api/documentation
http://restfull.okesmez.com/api/auth/login ve http://localhost/api/auth/login servislerini kullanmak için gerekli olan token aşağıdaki bilgiler kullanılarak alınır.
Email : info@okesmez.com Password : 123456
Videoları izleyebilmek için indirmeniz gerekiyor.videos
- Projenin Docker ile ayağı kaldırılması konulu video için tıklayınız.
- Projeinin Postman ve Swagger üzerinde kullanılması hakkındaki video için tıklayınız.
İlk olarak Framework dizininde bulunan .env.example dosyasının adı .env olarak değiştirilmelidir.
- Docker image oluşturmak için Dockerfile'ın bulunduğu dizinde aşağıdaki command çalıştırılmalıdır.
docker build -t image:1.0.1 .
- İmage oluşturulduktan sonra Docker-compose.yaml dosyası açılarak dosya içerisine oluşturulan versiyon yazılır.
- Aşağıdaki command çalıştırılarak. Docker ortamda proje ayağı kaldırılmış olur.
docker-compose up -d --build
Yukarıdaki işlemlerden sonra birkaç dakika beklenmelidir. Mysql veritabanın ve Projenin ayağı kalkması biraz zaman alıyor.
Servisler ve Kullanımları : https://localhost/api/documentation (Servisler bu adresten test edilebilir.)
Phpmyadmin: http://localhost:8080/ (username: root password: Z5AajEapuLZuNuv)
-
Projenin bulunduğu container içerisine girebilmek için aşağıdaki command çalıştırılmalıdır.
docker-compose exec web sh
-
Yukarıdaki commad ile container terminaline girilmiş olur. Proje kodlarının bulunduğu yere ise
cd data/www
dosya yoluna gidilerek ulaşılır.
- Localhost üzerinde servisleri çalıştırmak için postman üzerine import edilecek olan dosya aşağıdadır.
https://github.com/ofke-yazilim/laravel-restfull-swagger/blob/main/local-restfull.postman_collection.json - okesmez.com üzerinde çalışan projeyi postman üzerinde test etmek için ise aşağıdaki dosya import edilmelidir.
https://github.com/ofke-yazilim/laravel-restfull-swagger/blob/main/okesmez.com-restfull.postman_collection.json
- Route : https://github.com/ofke-yazilim/laravel-restfull-swagger/blob/main/framework/routes/api.php
- Controller : https://github.com/ofke-yazilim/laravel-restfull-swagger/tree/main/framework/app/Http/Controllers
- Model : https://github.com/ofke-yazilim/laravel-restfull-swagger/tree/main/framework/app/Models
- Seed : https://github.com/ofke-yazilim/laravel-restfull-swagger/tree/main/framework/database/seeders
- Migrations : https://github.com/ofke-yazilim/laravel-restfull-swagger/tree/main/framework/database/migrations
- Discount Helper : https://github.com/ofke-yazilim/laravel-restfull-swagger/tree/main/framework/app/Helpers
- Koşturulan artisan ve terminal kodları : https://github.com/ofke-yazilim/laravel-restfull-swagger/blob/main/configs/recompile.sh
Siparişlere ait indirim kurallarını takip eden Discount sınıfına yeni bir fonksiyon oluşturularak yeni bir indirim kuralı koyulabilir. Discount class'ı ServiceProvider üzerinde singleton olarak tanımlanmıştır.