Rest ve socket tabanlı basit mesajlaşma servisi
Kullanıcıların mesajlarının anlık olarak iletilmesini ve eski mesajları istenildiğinde sunmayı sağlar
Uygulama 8000 portundan çalışmaktadır.
docker-compose up komutu ile ayağa kaldırılabilir
Bütün istekler http://localhost:8000/ ile başlayan url e atılmalıdır
Bütün isteklere yanıt olarak result adında bir parametre gönderilmektedir. Result genel olarak yapılan isteğin başarılı olup olmadığını kontrol etmeye yarar eğer result boş bir string e eşit değilse hata bulunmuştur ve o mesajı içeriyordur
method:post
path:register
Gerekli Fieldlar
- username:string
- password:string
- firstname:string
- lastname:string
method:post
path:login
Gerekli Fieldlar
- username:string
- password:string
method:post
path:block
Gerekli Fieldlar
- token:string(JWT)
- username:string
method:post
path:unblock
Gerekli Fieldlar
- token:string(JWT)
- username:string
method:post
path:sendMessage
Gerekli Fieldlar
- token:string(JWT)
- receiverName:string
- content:string
method:get
path:getMessages
Gerekli Fieldlar
- token:string(JWT)
- username:string
method:get
path:getUnReadMessages
Gerekli Fieldlar
- token:string(JWT)
Anlık mesajlaşma denemesi için bir client.py scripti mevcut çok basit bir halde test etmek için kullanıldı. Sunucudan gelen cevapları dinleyip console a basan basit bir script.
Command line argument olarak login sonrası verilen jwt ye ihtiyaç duymaktadır.
Çalıştırmak için python3.6 nın kurulu olması ve socketio-python paketinin kurulu olması gerekmektedir
Testler genel olarak end point fonksiyonlarını kapsamaktadır. Web socket ile iletişime geçilen kısım için ayrıca test implemente edilmedi.
Testler sonucunda projenin olduğu dizinde coverage adlı bir klasör oluşur. Bu coverage klasörünün içindeki index.html tarayıcı açıldığında coverage raporu güzel bir şekilde görülebilir. Aynı zamanda test sonuçları text formatında da console a basılmaktadır.
Test ortamını çalıştırmak için docker-compose.yml dosyasındaki Dockerfile ismi Dockerfile.test ile değiştirilmelidir.
Sistemde iki ayrı log dosyası mevcuttur. Uygulamanın çalıştığı dizinde ws.log ve app.log adlı iki log dosyası mevcuttur.
Rest endpointlerine gelen istekler app.log a yazılırken anlık mesajlaşmanın kullanıldığı kısımlar ws.log a yazılmaktadır.