Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/zehracakir/flight-search-api
Bir uçuş arama uygulamasının backend API'sini sağlamak için geliştirilmiştir.
https://github.com/zehracakir/flight-search-api
basic-authentication java mongodb rest-api spring-boot spring-security swagger-ui
Last synced: 14 days ago
JSON representation
Bir uçuş arama uygulamasının backend API'sini sağlamak için geliştirilmiştir.
- Host: GitHub
- URL: https://github.com/zehracakir/flight-search-api
- Owner: zehracakir
- Created: 2023-12-29T10:30:01.000Z (11 months ago)
- Default Branch: main
- Last Pushed: 2024-01-02T19:28:45.000Z (11 months ago)
- Last Synced: 2024-04-23T20:24:08.873Z (7 months ago)
- Topics: basic-authentication, java, mongodb, rest-api, spring-boot, spring-security, swagger-ui
- Language: Java
- Homepage:
- Size: 126 KB
- Stars: 2
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Flight Search API
Bu proje, bir uçuş arama uygulamasının backend API'sini sağlamak için geliştirilmiştir.
## **Controller Yapıları**
### 1. UcuslarAPIController
### **`GET /ucuslar/{id}`**
Belirtilen ID'ye sahip uçuş detaylarını getirir.
### **`GET /ucuslar`**
Tüm uçuşları getirir.
### **`POST /ucuslar`**
Yeni bir uçuş oluşturur.
### **`PUT /ucuslar`**
Varolan bir uçuşu günceller.
### **`DELETE /ucuslar/{id}`**
Belirtilen ID'ye sahip uçuşu siler.
### **`GET /ucuslar/searchapi`**
Belirtilen kalkış yeri, varış yeri, kalkış tarihi ve dönüş tarihine uygun uçuşları listeleyen API endpoint'i.
Tek yönlü uçuş için tek uçuş bilgisini, çift yönlü uçuş için iki uçuş bilgisini verir.### 2. HavaalanlariAPIController
### **`GET /havaalanlari/{id}`**
Belirtilen ID'ye sahip havaalanı detaylarını getirir.
### **`GET /havaalanlari`**
Tüm havaalanlarını getirir.
### **`POST /havaalanlari`**
Yeni bir havaalanı oluşturur.
### **`PUT /havaalanlari`**
Varolan bir havaalanını günceller.
### **`DELETE /havaalanlari/{id}`**
Belirtilen ID'ye sahip havaalanını siler.
### 3. UserController
### **`GET /home`**
Anasayfa. Tüm kullanıcılara açıktır.
****
### **API'ler İçin Postman Üzerinden Yapılan Test Sonuçları**
![Collection Run Sonucu](images/apiTest.PNG)
****
### **Güvenlik**- Basic Authentication kullanılmıştır.
- Yetkilendirme yapıları Controller sınıflarına göre eklenmiştir. UcuslarAPIController ve HavaalanlariControllerAPI sınıflarına uygulanan authentication yapısı için username admin, password 1234 olarak belirlenmiştir.
- Diğer controller sınıfları ile arasındaki farkı görebilmek için /home’a herhangi bir authentication eklenmedi.### **Swagger API Dokümantasyonu**
- Proje, Swagger ile API dokümantasyonu sağlamaktadır. API endpoint'leri ve kullanım detayları Swagger UI üzerinden incelenebilir.
- Tarih gönderilirken datetime tipinde gönderilmelidir.### **Veritabanı**
- Veritabanı olarak MongoDB kullanılmıştır.
- Uçuşlar ve havaalanları verileri düzenli bir şekilde saklanmaktadır.### **Scheduled Background Job**
- Her gün mock bir API'a istek atarak uçuş bilgilerini alan ve veritabanına kaydeden bir scheduled job uygulanmıştır. `https://run.mocky.io/v3/1305924e-8c86-4759-acca-5620d6210252`