🚀 Dijital Bilet API

Flutter, React, Vue.js ve diğer tüm platformlar için güçlü ve esnek API

Hemen Başla

API Bilgileri

https://dijitalbilet.com.tr/api/v1
Bearer Token
application/json
JSON

Flutter Kurulum

1. pubspec.yaml

pubspec.yaml
dependencies:
  flutter:
    sdk: flutter
  http: ^1.1.0
  shared_preferences: ^2.2.2
  dio: ^5.3.2
  provider: ^6.0.5

2. API Service Sınıfı

lib/services/api_service.dart
import 'package:dio/dio.dart';
import 'package:shared_preferences/shared_preferences.dart';

class ApiService {
  static const String baseUrl = 'https://dijitalbilet.com.tr/api/v1';
  late Dio _dio;
  
  ApiService() {
    _dio = Dio(BaseOptions(
      baseUrl: baseUrl,
      headers: {
        'Content-Type': 'application/json',
        'Accept': 'application/json',
      },
    ));
    
    _dio.interceptors.add(InterceptorsWrapper(
      onRequest: (options, handler) async {
        final token = await getToken();
        if (token != null) {
          options.headers['Authorization'] = 'Bearer $token';
        }
        handler.next(options);
      },
    ));
  }
  
  Future<String?> getToken() async {
    final prefs = await SharedPreferences.getInstance();
    return prefs.getString('auth_token');
  }
  
  Future<void> saveToken(String token) async {
    final prefs = await SharedPreferences.getInstance();
    await prefs.setString('auth_token', token);
  }
  
  Future<void> clearToken() async {
    final prefs = await SharedPreferences.getInstance();
    await prefs.remove('auth_token');
  }
}

Authentication

Login

lib/services/auth_service.dart
Future<Map<String, dynamic>> login(String email, String password) async {
  try {
    final response = await _dio.post('/auth/login', data: {
      'email': email,
      'password': password,
    });
    
    if (response.data['success']) {
      final token = response.data['data']['token'];
      await saveToken(token);
      return response.data;
    }
    throw Exception(response.data['message']);
  } catch (e) {
    throw Exception('Login failed: $e');
  }
}

Register

lib/services/auth_service.dart
Future<Map<String, dynamic>> register({
  required String name,
  required String email,
  required String password,
  String? phone,
}) async {
  try {
    final response = await _dio.post('/auth/register', data: {
      'name': name,
      'email': email,
      'password': password,
      'password_confirmation': password,
      'phone': phone,
    });
    
    if (response.data['success']) {
      final token = response.data['data']['token'];
      await saveToken(token);
      return response.data;
    }
    throw Exception(response.data['message']);
  } catch (e) {
    throw Exception('Registration failed: $e');
  }
}

Events

Get All Events

lib/services/events_service.dart
Future<List<Event>> getEvents({
  int? category,
  int? city,
  String? date,
  String? search,
  int page = 1,
  int perPage = 15,
}) async {
  try {
    final response = await _dio.get('/events', queryParameters: {
      if (category != null) 'category': category,
      if (city != null) 'city': city,
      if (date != null) 'date': date,
      if (search != null) 'search': search,
      'page': page,
      'per_page': perPage,
    });
    
    if (response.data['success']) {
      return (response.data['data'] as List)
          .map((json) => Event.fromJson(json))
          .toList();
    }
    throw Exception(response.data['message']);
  } catch (e) {
    throw Exception('Failed to fetch events: $e');
  }
}

API Endpoints

Authentication

POST /auth/login Kullanıcı girişi
POST /auth/register Kullanıcı kaydı
POST /auth/logout Çıkış yapma

Events

GET /events Tüm etkinlikler
GET /events/featured Öne çıkan etkinlikler
GET /events/search Etkinlik arama
GET /events/{slug} Etkinlik detayı

Orders (Protected)

GET /user/orders Kullanıcı siparişleri
POST /orders Sipariş oluştur
POST /purchase Bilet satın al

Quick Start

1

Proje Oluştur

Flutter projenizi oluşturun ve gerekli paketleri ekleyin.

flutter create dijital_bilet_app
cd dijital_bilet_app
flutter pub add http dio shared_preferences provider
2

API Service Oluştur

Yukarıdaki ApiService sınıfını projenize ekleyin.

3

Provider Setup

State management için Provider'ı yapılandırın.

void main() {
  runApp(
    MultiProvider(
      providers: [
        ChangeNotifierProvider(create: (_) => AuthProvider()),
        ChangeNotifierProvider(create: (_) => EventsProvider()),
      ],
      child: MyApp(),
    ),
  );
}
4

Test Et

API bağlantısını test edin ve uygulamanızı çalıştırın.