Python Örneği
Type hints ile Python kullanan POS servisi referans uygulaması.
Bu, Saha POS Arayüzü (SPI) ile entegre olan bir POS servisinin referans uygulamasıdır. Type hints ile Python kullanarak gerekli uç noktaların nasıl uygulanacağını göstermektedir.
Kaynak Kod
Tam kaynak kodu GitHub'da görüntüleyin.
Gereksinimler
- Python 3.10+ (modern type hints ve standart kütüphane kullanır)
Kurulum
Harici bağımlılık gerekmez! Bu örnek sadece Python'un standart kütüphanesini kullanır.
Servisi Çalıştırma
Örnek dizinine gidin
cd examples/pythonServisi çalıştırın
python3 server.pyVeya çalıştırılabilir yapın:
chmod +x server.py
./server.pyServis 5000 portunda başlayacaktır.
Servisi Test Etme
Uç noktaları curl veya sağlanan Postman koleksiyonu kullanarak test edebilirsiniz.
Kimlik Doğrulama
Servis bir Authorization başlığı bekler. Örnek sabit kodlanmış bir token kullanır ancak gösterim amaçlı herhangi bir değeri kabul eder (eksikse bir uyarı loglar).
Örnek İstekler
Ürünleri Al
curl -H "Authorization: Bearer secret" http://localhost:5000/productsSipariş Oluştur
curl -X POST http://localhost:5000/orders \
-H "Authorization: Bearer secret" \
-H "Content-Type: application/json" \
-d '{
"items": [
{
"product_id": "prod-1",
"quantity": 1,
"note": "No onions",
"options": [
{"name": "opt-doneness", "values": ["medium"]},
{"name": "opt-extras", "values": ["extra-cheese"]}
]
}
],
"location": "loc-1",
"note": "Allergy: Peanuts",
"number_of_people": 2
}'Sipariş Durumunu Al
{order_id} yerine sipariş oluşturma yanıtından dönen ID'yi yazın.
curl -H "Authorization: Bearer secret" http://localhost:5000/orders/{order_id}Siparişi İptal Et
curl -X POST http://localhost:5000/orders/{order_id}/cancel \
-H "Authorization: Bearer secret" \
-H "Content-Type: application/json" \
-d '{"reason": "Customer changed mind"}'Konumları Al
curl -H "Authorization: Bearer secret" http://localhost:5000/locationsUygulama Detayları
| Özellik | Açıklama |
|---|---|
| Framework-less | Python'un native http.server modülünü kullanır (Flask veya başka framework yok) |
| Type Hints | Tüm API modelleri için TypedDict ile tam tip desteği |
| Sadece Standart Kütüphane | Harici bağımlılık gerekmez |
| In-Memory Store | Sipariş verilerini saklamak için dict kullanır (yeniden başlatmada sıfırlanır) |
| JSON Logging | Kolay ayrıştırma için yapılandırılmış loglama |
| Graceful Shutdown | Temiz kapatma için KeyboardInterrupt (Ctrl+C) işler |
Proje Yapısı
server.py # İstek işleyicileriyle ana sunucu uygulaması
models.py # TypedDict kullanan tip tanımları
database.py # In-memory veri deposuPython Sürümü
Python 3.10+ gerektirir:
- Modern type hints (
list[T],dict[K, V]) |operatörüyle Union typesTypedDictiyileştirmeleri