REST API w JAVA?

0

Witam wszystkich. Panowie mam do Was pytanie. W chwili obecnej wszystkie aplikacje napisane na Androida używają REST API do komunikowania się z bazą danych na serwerze. Moje pytanie jest takie. Większość osób używa do tego celu innych języków programowania takich jak JS, PHP itp. Przecież to samo można zrobić w języku JAVA, napisać API które będzie słuchało zapytań HTTP i na nie odpowiadało. W aplikacji używając odpowiedniego URL z GET, POST itp. Czy użycie PHP i JS jest tylko ze względu na prostote tych języków? Czemu developerzy nie używają JAVy?

1

Nie wiem czemu uważasz że nie używają. Zresztą nie trzeba wcale pisać własnego API bo choćby taki Spring MVC daje wsparcie dla REST out-of-the-box ;]
Inną sprawą jest kwestia hostingu i serwera. Hosting na PHP znaleźć łatwo, szczególnie darmowy. A dla javy zwykle musisz jednak kupić takiego VPSa.

0

Proste - hosting. PHP+MySQL postawisz nawet na bieda serwerze za darmo. Z javą już tak nie zrobisz. Darmowych hostingów w praktyce nie ma, a jak są to w mocno okrojone. Płatne za to są dośc drogie jak na kieszeń przeciętnego deva z PL.

0

To prawda... W tej chwili VPS typu Amazon Cloud czy Google Compute Engine są dostępne za niewielkie pieniądze, a dają o wiele większe możliwości i kontrole nad tym wszystkim. O Springu chętnie poczytam chociaż będę chciał się lekko poduczyć więc zapewne jeszcze dzisiaj spróbuje napisać jakąś prostą implementację GET/POST... Do tej pory używałem REST API sleepymongoose napisanaego w Pythonie - używanie tego jest porażką tak samo jak i reszta napisana w Node.js do komunikacji z MongoDB to jedna wielka tragedia. Do apliakcji produkcyjnej w ogóle nie da się tego używać. Ze sleepymongoose musiałem robić cuda w JAVIE, żeby wysłać odpowiednie dane JSON. Swoją drogą ciekaw jestem czy Spring ma możliwość podłączenia do MongoDB, będę musiał głebiej o tym poczytać...

1

Spring + Mongo - out of box > http://projects.spring.io/spring-data-mongodb/

Choć osobiście jak już miałbym orać RESTy to bym to machnął w Spray.io (scala).

0

Dzięki za odpowiedź :) Osobiście uważam, żeby używać rozwiązań już przygotowanych typu Spring, czy tak jak napisałeś Spray.io - na pewno będzie to bezpieczniejsze, niż napisane to przez początkującego kodera. Druga sprawa, używając JAVy do tego typu celów utrzymujemy konsystencje całego ekosystemu aplikacji - czyli backend napisany przy użyciu JAVy i aplikacja napisana też w JAVie... :) Używając tego samego języka do obu ty celów, łatwiej mi będzie wyszukiwać ewentualne błędy.

Tutaj mnie poprawcie jeżeli się mylę. Osobiście uważam, że języki typu PHP, JS, Python - nie powinny być mieszane z apliakcjami na Androida, nawet jeśli miałyby służyć tylko i wyłącznie do napisania backendu do komunikacji z bazą danych.

0

Jak masz dostęp do maila w domenie edu to w ramach student packa z githuba dostaniesz 100$ na DigitalOcean - na kilka miesięcy developerskiego VPSa powinno styknąć.

P.S. Nie zgodzę się z ostatnią wypowiedzią. Języki powinno się mieszać i używać najlepszego do rozwiązania konkretnego problemu: java faktycznie jako backend małego projektu może być nienajlepszym wyborem, choć pewnie kombinując z jakimś lekkim containerem czy frameworkiem w stylu Springa czy Play! można osiągnąć satysfakcjonujący rezultat. Zupełnie nie sugerując by użycie php czy node.js było, bo jakoś idea pisania serwera w dynamicznie typowanym języku do mnie nie trafia. Ale już np. połączenie: java na androidzie + backend w golangu wystawiający restowe API - dla mnie bomba.

0

Dlaczego nie? Czasami pewne rzeczy robi się prościej w JS (node.js) czy pythonie niż w javie. Mieszanie technologii po dwóch stronach "webservicu" to nic niezwykłego. Obecnie pracuję w projekcie gdzie front jest napisany w C#, a backend w javie.

0

Teraz pytanie z innej beczki... Przykładowo w mojej styuacji - obecnie jestem na stażu jako młodszy developer aplikacji na Androida - w tej chwili robię dość proste rzeczy przy projektach. Mam dostęp do serwerów VPS i chciałbym lepiej się podszkolić w tym modelu aplikacji... W obecnej chwili skupiłem się w w 100% na JAVie/Android + baza danych w moim przypadku MongoDB. Czy nie narobie sobie mętliku w głowie ucząc się JAVY i przykładowo JS + Node.js lub PHP(w którym kiedyś napisałem pare rzeczy)...

0

Nie. Choć dużo zależy od tego jaki model nauki preferujesz. Niektórzy potrafią uczyć się kilku technologii na raz, inni radzą sobie z tym znacznie gorzej.

0

Nie. Prawdopodobnie będziesz nawet lepszym programistą w Javie. Widząc niektóre fajne, a niektóre niefajne rozwiązania JS czy czegotam sobie chcesz będziesz myślał inaczej o programowaniu i robieniu rzeczy. Np. pisząc trochę we wspomnianym JSie łatwiej będzie Ci później zastosować pattern prototyp czy API util.stream.

0

Tutaj się zgodzę, nie którzy ciężej sobie przyswjają duży natłok informacji i nowych technologiach. Spróbuję jednak JS + Node.js mam nadzieję, że wyjdzie mi to na dobre...

0
ktosiu napisał(a):

Spróbuję jednak JS + Node.js mam nadzieję, że wyjdzie mi to na dobre...

Żeby ci tylko włosy na głowie nie wyszły. Powinieneś iść w Java - wyższe zarobki.

1

Zarobki zarobkami - Ucząc się nowych technologii, zaczynasz patrzeć na dany problem z różnych perspektyw...

Odwieżę troszeczke temat... W chwili obecnej będę miał więcej czasu i przyszła pora na poduczenie się drugiego języka do pisania REST API do aplikacji na Androida. Moje pytanie panowie jest takie... Uczyć się mocno wysłużonego ale wciąż używanego PHP, czy postawić na JS + Node.js ewentualnie Python?

0

Nie rób sobie krzywdy. Wszystko tylko nie PHP ;]

0

Pare rzeczy mnie przeraża w PHP ;) np. to, że jest językiem nietypowanym, znaki dolara przy zmiennych, deklaracja różnych zmiennych typu GLOBALS, SERVER etc. Jest prosty, bardzo prosty, JS - dość dziwne tworzenie obiektów, składnia która mi troszeczkę nie pasuje, a Python nie potrafie wymienić jego wad - tylko czytałem o tym języku i pobawiłem się w proste napisanie programików typu Hello World, zabawa z tablicami, obiektami itp...

Edit@
Ciężko na któryś się zdecydować - zastanawiam się na Pythonem... Jest to język który naprawdę się rozwija i jest bardzo przyjemny w użyciu...

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