akka-http, korzystał ktoś z tego?

0

pytanie jak w temacie, korzystał ktoś z tego? przyglądam się temu od paru dni, a mam zamiar napisać aplikacje, która bedzie wystawiać resty i zastanawiam się nad jej użyciem

jakie ew. inne opcje polecacie dla restów? raczej mikroserwis, ale może z tego wyjdzie coś większego, interesowałyby mnie java, scala może python

chodzi o powiew świeżości i samoedukacje ;-) edit: no i żeby miał jakieś community, nie jakiś mało znany lib wykopany z githuba :D

1

Hm, troche chyba rozne pojecia mylisz, bo rzucasz, a to RESTy, a to mikroserwisy, java, scala itp. Ja bym sie zastanowil co chcesz osiagnac, a potem dobrac najlepsze narzedzia, bo jesli chcesz napisac cos w miare szybko i dobrze to poznawanie nowego frameworka nie jest najlepszym pomyslem.

Akka-http jest czescia Akki, wiec o community bym sie nie martwil. Natomiast zastanowilbym sie czy wygodnie jest uzywac Javy (sam nigdy nie uzywalem z Akka), w Scali jest duzo prosciej. Co do pythona to wedle mojej wiedzy nie uzyjesz, no chyba, ze jakis JPython Cie interesuje.

Jako alternatywe ja polecilbym samego Springa, ktory do mikroserwisow nadaje sie idealnie jesli przygladniesz sie Spring Cloudowi. Mozesz tez popatrzec na Dropwizarda.

0

mówiąc o akka-http mówie o scali
o tym, że opiera sie na akkce wiem
i właśnie staram się dobrać coś pod to co chce napisać, springa nie chce, jerseya też, nuda.. (choć jak nic nie znajde to jedno z nich wybiore) chciałbym coś nowego
jesli chodzi o pythona, mówie o libach pythonowych, nie o używaniu javowych frameworków z poziomu jpythona, o zgrozo

szukam powiewu świeżości, ciekawego stosu i możliwości nauczenia czegoś fajnego :P

0

Vert.X ;)

EDIT: BTW. Czy nie lepiej byłoby strzelić teraz projekt w znanych dla siebie technologiach ? Chodzi mi o coś wykonanego niemal perfekcyjnie, ale skoro Spring i Jersey to nuda dla Ciebie :P

0

przejże tego Vert.X
teoretycznie jak i praktycznie byłoby lepiej, jednak projekt nie planuje na duży, a chciałbym się czegoś przy okazji nauczyć
może nie że nuda, ale jak pada pytanie zawierające słowo "Java" i "REST" to zwykle odp to: "JAX-RS albo Spring!", więc na bidę wezmę, ale szukam alternatyw :D
fajnie jakby to było coś w czym można popisać w scali ;) (nie koniecznie spring używany z poziomu scali.. hehe)

0

Play, Scalatra do weba, Scaldi, Guice do DI, Slick, Activator, ReactiveMongo do bazy danych - i już masz zajęcie ;)

0

podobny stos planuje ;-)

0

Jezyk jak i framework to tylko narzedzia. Poszerzanie horyzontow to jedno, ale w/g mnie latwiej jest to robic jesli masz doglebna wiedze o chocby jednej technologii. To jest tak jakbys po pol roku pracy z Java powiedzial jaka ona jest glupia i brzydka i przesiadl sie na Scale.

Pamietaj, ze stos technologiczny to jest pochodna tego co chcesz zrobic i powinienes dobierac narzedzia, ktore najlepiej pasuja "tu i teraz" (czyli jak juz bedziesz kodzil). Jesli najpierw wybierasz stos, a pozniej bedziesz pod to robil projekt to narobisz sie duzo wiecej i jest duze prawdopodobienstwo, ze sie nie uda.

0

@koner świetnie powiedziane "poszerzanie horyzontów" - o to właśnie mi chodzi
to nie jest jakiś uber-projekt, a poraz n-ty klepać w springu.. jeśli mi podejdzie scalowy stack to go wybiore, jesli nie zostane przy czymś javowym

a czy ja powiedziałem ze java jest głupia i brzydka? albo że scala jest mądra i ładna?
wiem, że pisząc projekt dobieram stack pod projekt, a nie na odwrót, ale akurat w tym przypadku chodzi o edukacje przez jakiś randomowy projekt, a że akurat mam jakis pomysł to tym lepiej :P

1

akka-http to dawny Spray.io. Obecnie rozwijane przez Lightbend (dawny Typesafe) i personalnie bodajże przez Konrada Malawskiego. Warto się tym pobawić chociażby po to by poznać jak działa i jak to spiąć z akka-persistance. IMO, jest to jedna z tych technologii, które zrobią dużo szumu w najbliższej przyszłości. Nawet jeżeli nie osobiście to ze względu na swój sposób myślenia.

0

wygląda na coś co zrobi szum, ale póki co mam wrażenie, że sposób budowania tych restów jest.. dziwny, nawet jak na scalę

0

Tyle o ile dziwny. Przede wszystkim opiera się na aktorach i specyficznym routingu. Tu na dole masz to wytłumaczone http://doc.akka.io/docs/akka-stream-and-http-experimental/current/scala/http/routing-dsl/routes.html

Poza tym dużo w nim scalowego podejścia w rodzaju ~ jako operatora :)

0

już się tym chwile bawiłem i właśnie ~ to dla mnie wtf, to jest jakis bytecode czy język wysokopoziomowy :)?
aktory - ok, ale ten routing jest not-friendly (moze wymaga długiej adaptacji)

1

Sam routing jest całkiem ok, bo poza operatorem jest dość intuicyjny. Trochę przypomina SCSS/LESS i wymaga lekkiego przestawienia się w myśleniu, ale potem jest już gładko.

0

zrob jakies websockets, poza restami, jakis real time stuff iz da thing.

0

W Pythonie jest Eve (http://python-eve.org/), całkiem śmieszny framework nastawiony na to, żeby się jak najmniej narobić. Dobre, jeżeli cały twój REST to tylko proste dane w bazie, ja używałem właśnie do tego. Cały kod może się zawrzeć w konfiguracji bazy, schemacie danych i autoryzacji. Warunek to MongoDB (można podłączy sqlalchemy, ale więcej kodu automatycznie :D).

0

@WybitnyOrzeł właśnie rozmyślam powoli nad architekturą tego co tam ma powstać i biorę pod uwagę websockety w miejscach gdzie potrzebuje real-time(na tą chwilę myślę, że takie będą, ale kto to wie :D)
websockety znam ze springa, gdzie indziej się nimi nie bawiłem, JEE ma tak samo dobre API do nich?

play widziałem, że za pomocą akki ma support dla websocketów lub iteratees (whatever it is.. :))

@Koziołek
nic większego w tym nie napisałem, ale ten routing to coś czuje że jest intuicyjny póki masz <15 restów

0

Co jest w ogole w konkurencji do akka/ akka http ? Czy reactive.io to konkurencja czy bardziej taki util gdzie akka to bardziej platforma?

0

Mialem na mysli akka streams, a nie akka http.

2
azalut napisał(a):

już się tym chwile bawiłem i właśnie ~ to dla mnie wtf, to jest jakis bytecode czy język wysokopoziomowy :)?
aktory - ok, ale ten routing jest not-friendly (moze wymaga długiej adaptacji)

Ja pisałem RESTa w Sprayu i wkurzało mnie to, że ten operator rozwalał wcięcia przy automatycznym formatowaniu, tzn pierwszy route był mniej wcięty niż kolejne spięte operatorem ~. Dlatego machnąłem sobie funkcję w stylu:

def routes(head: Route, tail: Route*): Route =
  tail.foldLeft(head)(_ ~ _)

Później zamiast pisać

route1 ~ 
  route2 ~ 
  route3

pisałem

routes(
  route1, 
  route2, 
  route3
)
0

@Wibowit ciekawe wyjście z sytuacji ;] szkoda, że w core nie jest tak zaimplementowane :)
a w czym piszesz? bo w intellij mi to układa jako-tako, ale musze sobie tabulować

@biały Mleczarz ja ci nie odpowiem bo nie wiem

0

A ktos bardziej doswiadczony umialby cos powiedziec o konkurencji do akka albo porownac do reactivex?

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