POS Entegrasyonu
Node.js/TypeScript Örneği
TypeScript ile Node.js kullanan POS servisi referans uygulaması.
Bu, Saha POS Arayüzü (SPI) ile entegre olan bir POS servisinin referans uygulamasıdır. TypeScript ile Node.js kullanarak gerekli uç noktaların nasıl uygulanacağını göstermektedir.
Kaynak Kod
Tam kaynak kodu GitHub'da görüntüleyin.
Gereksinimler
- Node.js 18+ (native ES modülleri ve modern API'ler kullanır)
- npm veya yarn
Kurulum
Servisi Çalıştırma
Geliştirme Modu (hot reload ile)
npm run devProduction Modu
npm run build
npm startServis 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 | Node.js native http modülünü kullanır (Express veya başka framework yok) |
| TypeScript | Strict mode etkinleştirilmiş tam tip desteği |
| ES Modules | Modern ES modül sözdizimi kullanır |
| In-Memory Store | Sipariş verilerini saklamak için Map kullanır (yeniden başlatmada sıfırlanır) |
| Type Safety | Tüm API modelleri için kapsamlı tip tanımları |
| Graceful Shutdown | Temiz sunucu kapatma için SIGINT işler |
Proje Yapısı
src/
├── server.ts # Ana sunucu uygulaması
├── types.ts # TypeScript tip tanımları
└── database.ts # In-memory veri deposu