Aktywne Wpisy
_gabriel +164
Tak wyglądałem przed zachorowaniem na #schizofrenia. Teraz jestem über tucznikiem z deprechą. Czas się wziąć za siebie. Dla niewtajemniczonych - szamanie leków przeciwpsychotycznych powoduje spory przyrost masy ciała.
trochę też #depresja
trochę też #depresja
Stylówa jak u nowobogackiej Tatiany z wioski spod Irkucka xD
#lewandowska #lewandowski #bachata #p0lka
#lewandowska #lewandowski #bachata #p0lka
Zastanówmy się jak można przekazać komunikat do aplikacji, że chcę zaplusować jakiś wpis, wystarczy wysłać komunikat
Chcę zaplusować komentarz o id x
Więc mamy komendę + identyfikator, możemy to uzyskać robiąc taki request:
POST /articles/:id/votes
Nie potrzebujemy nic więcej, (oprócz jakiejś autoryzacji czy innych tokenów) w responsie też nie zwracajmy contentu, zwróćmy
HTTP 204 No content
Tysiące ludzi lajkuje gównowpisy, zaoszczędzimy troche transferu. Chociaż, jeśli chcemy być bardziej dynamiczni to możemy zwrócić ilość lajków z jakiejś szybkiej bazy np redis gdzie są po prostu incrementowane. Na przykład tak:
{"votes": int}
Analogiczne można zrobić z usuwaniem
DELETE /aticles/:id/votes
To samo w zrwotce
204 No content
. Lub analogicznie jak wyżej{"votes": int}
.Jak to się robi na wykopie?
Sam endpoint nie jest jakoś straszny
/ajax2/wpis/voteUp/…
Ale ciekawe jest to co dostajemy w odpowiedzi, wydawać by się mogło, że wystarczy informacja czy sukces, czy nie?
for(;;);{"operations":[{"type":"content","html":"+: kiera1<\/a>, invictuss<\/a> +3627 innych<\/a><\/div>","find":"div.votersContainer:first","closest":"li"},{"type":"replace","html":"\n\t\t **+3629<\/span><\/b>\n\t\t \t*<\/i><\/a>\n\t\t *<\/i>\n\t\t\t<\/p>","closest":"p"}]}
Dostajemy JavaScript, który zawiera Jsona, który zawiera listę operacji (dokładnie to dwie), które zawierają HTML.
Są to operacje typu content, oznacza mniej więcej "wstaw zawartość pola html tam gdzie wskazuje pole find", oraz replace, które działa w zasadzie tak samo.
Warto zwrócić uwagę na dolny pasek
właściwie
+x innych
to licznik pomniejszony o dwie nazwy użytkowników z przodu. Nazwy użytkowników na początku czasami się zmieniają po akcji plusowania, ale czy muszą? Czy warto marnować zasoby na taką pierdołę?Programiści wykopu stwierdzili, że muszą, dlatego cały portal działa jak gówno.
Nie dlatego, że jest dużo użytkowników, tylko dlatego, że jest słabo zaprojektowany.
#webdev #programowanie #restapi #maciejpsuje #wykop #mikroblog****
@michal__q: I taki właśnie ma być ( ͡° ͜ʖ ͡°)
Komentarz usunięty przez autora
@tlaziuk: ja nic nie krytykuję, zwracam tylko uwagę że to napisał op nie ma wpływu na szybkość działania serwisu
Co więcej jakiś czas temu widziałem informacje, że wykop jest przepisywany na coś nowszego / lepiej zrobionego.
Można zastanowić się ile czasu im to zajmie.. i według mnie to już dawno powinno być zrobione ( ͡° ͜ʖ ͡°)
@sokytsinolop: i pewnie wcale nie będziesz w błędzie - front reddita też przepisali na react i działa toto jak gówno ¯\_(ツ)_/¯ i to raczej nie będzie kwestia jakości programistów bo co jak co ale reddit chyba moze sobie pozwolić na zatrudnienie tych z górnej półki...
@stawek: na szczęście zostawili też stary ( ͡° ͜ʖ ͡°)