Pisać API czy łączyć bezpośrednio ?

0

Cześć, planuję napisać apkę na androida, w której będę miał bazę danych użytkowników. I zastanawia mnie kilka rzeczy. Bazę danych będę miał gdzieś na serwerze, ale teraz jak się z nią łączyć ? Czy napisać np w Springu RESTowe api i z poziomu apki androida wysyłać requesty czy bezpośrednio z apki łączyć się bazą ? Co jest dobrą praktyką i jakie są wady/zalety obu rozwiązań ?

Jeszcze co do logowania, wiem, że w Springu jest możliwe szyfrowanie haseł w bazie i ogólnie obsługa userów za pomocą Spring Security. Jak to wygląda z Androidem ?

0

A jak chcesz się łączyć bezpośednio? Chcesz w apce zapisać hasło i usera do bazy? o_O A wiesz że taką apkę można zdekompilować i to hasło wyciągnąć? ;)

0

No jak, przecież w Androidzie mogę się łączyć z bazą danych ?

1
Zimny Szczur napisał(a):

No jak, przecież w Androidzie mogę się łączyć z bazą danych ?

Ale żeby uzyskać połączenie z bazą musisz mieć login, hasło, nazwę bazy i url do połączenia.
Jeśli zrobisz to bezpośrednio to tak jak powiedział Ci @Shalom będziesz musiał zapisać gdzieś w properties'ach te dane a je łatwo wyciągnąć.

1
eL napisał(a):
Zimny Szczur napisał(a):

No jak, przecież w Androidzie mogę się łączyć z bazą danych ?

Ale żeby uzyskać połączenie z bazą musisz mieć login, hasło, nazwę bazy i url do połączenia.
Jeśli zrobisz to bezpośrednio to tak jak powiedział Ci @Shalom będziesz musiał zapisać gdzieś w properties'ach te dane a je łatwo wyciągnąć.

Tu jako porządni Javowcy zapominamy, że teoretycznie każdy użytkownik apki może miec osobnego usera w DB (z odpowiednimi uprawnieniami) wtedy nie ma problemu.
(Tak się to robiło w latach 90tych).
Ale tak czy siak łączenie się z bazą danych bezpośrednio to słaby pomysł. (Kiepsko monitorowalne problemy z połączeniami Cie zanudzą).
Pośrednio - przez API ma więcej sensu, ala na kiego grzyba ta baza w ogóle ? Danych chyba tam nie chcesz trzymać ;-) ?

0

Na andka nie piszę, ale według mnie to obecnie jednym z lepszych wyjść jest postawić dobre API, a potem z niego korzystać z różnych platform. Umiejętność zrobienia dobrego API przyda Ci się niezależnie od technologii ;)

0

Bardzo dziękuję za odpowiedzi .. trochę mi to rozjaśniło. Ok, załóżmy, że napiszę sobie API w springu używając RestController'a, ale nadal mam kilka wątpliwości po stronie apki na andka:

Słyszałem opinie, żeby do wysyłania zapytań korzystać z RoboSpice'a, a na stronie androida widziałem coś takiego jak Volley. Widziałem jakieś przykładowe dao mojego znajomego i bardzo niezrozumiałe dla mnie było wysyłanie posta w momencie kiedy on odbiera dane. Tłumaczył on to tak, że używa tego jak np. pobiera jakąś listę obiektów, ale nie całą tylko np jeśli użytkownik szuka czegoś po nazwie. Zawsze wydawało mi się, że do pobierania służy po prostu get. Posta stosowałem jedynie do wysyłania jakiś formularzy. Gdzie znajdę przykład dobrze napisanego dao ? Chciałbym to zrobić stosując dobre praktyki programistyczne.

Pozdrawiam serdecznie

1 użytkowników online, w tym zalogowanych: 0, gości: 1