Cześć,
Chciałbym poprosić Was o poradę odnośnie architektury, którą chcę zastosować w mojej aplikacji.
Główne elementy
- Aplikacja webowa (MVC) ASP.NET
- Klient na Androida
- później być może inni klienci (iOS, WP)
Wszystko zbudowane w oparciu o Web serwis wykonany Web API (2), który będzie udostępniał pełną funkcjonalność aplikacji web i klientom mobilnym:
- zakładanie kont
- logowanie
- przeglądanie, dodawanie danych przez zalogowanych użytkowników
Powiedzmy, że po zalogowaniu usera wygeneruje jakiś identyfikator sesji/token.
Web API powinno otrzymywać ten token każdorazowo kiedy wykonywana jest akcja jakaś akcja kontrolera.
Chyba muszę ten token przekazywać w dodawkowym headerze HTTP?
Bo przecież w aplikacji Androidowej nie będę miał ciasteczek?
Z androida chyba nie będzie problemu.
A jak załączać ten header np. w requestach AJAX ze strony?
Gdzie wtedy trzymać ten klucz po stronie przeglądarki skoro ajax musi go znać żeby odpytać web api?
Jak to sensownie rozwiązać?
I kolejne pytanie:
Jak rozwiązuje się kwestie ładowania danych np. do tabelki na stronie?
Powiedzmy przy pierwszym wejściu na podstronę z listą warzyw chciałbym żeby serwer zwrócił stronę z już uzupełnioną tabelką.
Tutaj musiałbym np. w kontrolerze z kodu C# odwołać się do WEB Api, pobrać warzywa i wrzucić do widoku.
Potem jeśli sama tabelka ma być odświeżana ajaxem co 30 sekund to znowu muszę to pobierać ajaxem?
Wtedy w dwóch miejscach musiałbym pobierać dane:
w kontrolerze w C# aby zwrócić wypełniony widok przy pierwszym wejsciu na strone, a potem dodatkowo to samo robić jeszcze ajaxem w JS przy odświeżaniu.
Jak to się robi? :) Jakie jest sensowne rozwiązanie?