{"45896":{"id":45896,"votes":0,"views":0,"text":"\"wydaje mi si\u0119, \u017ce taki kompromis pomi\u0119dzy pragmatyczno\u015bci\u0105, a \u0142amaniem abstrakcji mi\u0119dzy warstwami jest jeszcze akceptowalny.\" - oby wi\u0119cej os\u00f3b mia\u0142o takie podej\u015bcie ;)","html":"
\"wydaje mi si\u0119, \u017ce taki kompromis pomi\u0119dzy pragmatyczno\u015bci\u0105, a \u0142amaniem abstrakcji mi\u0119dzy warstwami jest jeszcze akceptowalny.\" - oby wi\u0119cej os\u00f3b mia\u0142o takie podej\u015bcie ;)<\/p>\n","parent_id":45893,"url":"https:\/\/4programmers.net\/Mikroblogi\/View\/45893#comment-45896","created_at":"2019-04-23T14:26:05+02:00","updated_at":"2019-04-23T14:26:05+02:00","comments":[],"user":{"id":72192,"name":"Desu","is_online":false,"photo":null,"deleted_at":null,"is_blocked":false},"permissions":{"update":false,"moderate":false},"type":"microblog","assets":[],"is_sponsored":false,"metadata":"eyJpdiI6IlF5MGJKRU44Uk5lSUNmSDlEOUVLNXc9PSIsInZhbHVlIjoiV2czY241OUh2SmFZWjVFUFplREsxZWdrK3ZHNlZLYW55QnZYWDRxS01SZUd1VUZiMitJZUVFRExjUk84bEpoUyIsIm1hYyI6ImI2ZWFjZGY0MTYxMDhmYjQ1YjhjNzQyYWY0Njg1NzNjNmMxY2Q4NjNiNWRmYTNhYTEzM2Q0MzA1YmY2NWE3ZGMiLCJ0YWciOiIifQ==","deleted_at":null},"45898":{"id":45898,"votes":0,"views":0,"text":"dop\u00f3ki domena ma jednego odbiorc\u0119 dop\u00f3ty ten kompromis jest ok. W przypadku r\u00f3\u017cnych klient\u00f3w (ui\/mobile\/api) ta dodatkowa warstwa mo\u017ce si\u0119 przyda\u0107 :)","html":"
dop\u00f3ki domena ma jednego odbiorc\u0119 dop\u00f3ty ten kompromis jest ok. W przypadku r\u00f3\u017cnych klient\u00f3w (ui\/mobile\/api) ta dodatkowa warstwa mo\u017ce si\u0119 przyda\u0107 :)<\/p>\n","parent_id":45893,"url":"https:\/\/4programmers.net\/Mikroblogi\/View\/45893#comment-45898","created_at":"2019-04-23T14:55:55+02:00","updated_at":"2019-04-23T14:55:55+02:00","comments":[],"user":{"id":63106,"name":"artur52","is_online":false,"photo":"https:\/\/4programmers.net\/uploads\/photo\/585a3c64203ca.jpg","deleted_at":null,"is_blocked":false},"permissions":{"update":false,"moderate":false},"type":"microblog","assets":[],"is_sponsored":false,"metadata":"eyJpdiI6IkxlUUVYbEhCSUd1d3ZCb0RiQjlQMEE9PSIsInZhbHVlIjoiTlJUWFA1OUlld29WUGprUFVYY0k3aGJzTlZOd1FyK0VkRHJsOUswbmtuWVl5L0tIUjJvS0g4TlJOWCtPWS94USIsIm1hYyI6Ijk5MmU1ZmRmYjQ3MmI0Y2Y5NzU3MWVmMWRjYmE4MzlmZDdjY2M1OTg2NWU5NDEwYjk3NWQwYTZhZWE4NTg0MDMiLCJ0YWciOiIifQ==","deleted_at":null},"45900":{"id":45900,"votes":0,"views":0,"text":"@artur52: je\u017celi komunikacja idzie po tych samych endpointach to jest to nadal taki sam klient z perspektywy serwera","html":"
@artur52<\/a>: je\u017celi komunikacja idzie po tych samych endpointach to jest to nadal taki sam klient z perspektywy serwera<\/p>\n","parent_id":45893,"url":"https:\/\/4programmers.net\/Mikroblogi\/View\/45893#comment-45900","created_at":"2019-04-23T15:49:50+02:00","updated_at":"2019-04-23T15:49:50+02:00","comments":[],"user":{"id":64304,"name":"danek","is_online":false,"photo":"https:\/\/4programmers.net\/uploads\/photo\/59\/599052d9bfbe2.jpg","deleted_at":null,"is_blocked":false},"permissions":{"update":false,"moderate":false},"type":"microblog","assets":[],"is_sponsored":false,"metadata":"eyJpdiI6IlZ2cnJDUGpDenQ5em1SaHZha1BrSkE9PSIsInZhbHVlIjoiVWd1cU9LbXJYaTFkUVNmTEJCV1JSUmhrOCtvWlFNSjFza0liUTJ1eCtSWTByM0NCakJRK0dEL3QrQ0tNZENpMCIsIm1hYyI6IjI1MjBiYzcwYTA1Zjg4M2E4YTZiZjU3NzhiYTljNjQ3ZGRjNTU1NzllZjc3MGRiODdlZDA4NzY0NzhjNjMzZjQiLCJ0YWciOiIifQ==","deleted_at":null},"45901":{"id":45901,"votes":0,"views":0,"text":"@danek: zgadzam si\u0119, ale czasem s\u0105 r\u00f3\u017cne endpointy a te same wej\u015bcia do domen, przynajmniej w moim przypadku","html":" @danek<\/a>: zgadzam si\u0119, ale czasem s\u0105 r\u00f3\u017cne endpointy a te same wej\u015bcia do domen, przynajmniej w moim przypadku<\/p>\n","parent_id":45893,"url":"https:\/\/4programmers.net\/Mikroblogi\/View\/45893#comment-45901","created_at":"2019-04-23T15:53:18+02:00","updated_at":"2019-04-23T15:53:18+02:00","comments":[],"user":{"id":63106,"name":"artur52","is_online":false,"photo":"https:\/\/4programmers.net\/uploads\/photo\/585a3c64203ca.jpg","deleted_at":null,"is_blocked":false},"permissions":{"update":false,"moderate":false},"type":"microblog","assets":[],"is_sponsored":false,"metadata":"eyJpdiI6IkdIanZiN3JNUDRXVDNJcGVYRFBRU1E9PSIsInZhbHVlIjoiN2hOSjdyclZJTjZEb2FUNjNEZFRvRzFHTDFrY3F0Y2o1eXA5eTVjYlVZYUcrL3c1OW05aUFjRWJRMG9CWFF0biIsIm1hYyI6IjY4ZTkyM2RiZmQ4YWYyNDU4MGVjMGRmYWU4YTBhMTAwOTRiZTBkZTEwNjk0ZDY4Mzc1MzA3NmRhY2VmYTQzNTYiLCJ0YWciOiIifQ==","deleted_at":null},"45902":{"id":45902,"votes":0,"views":0,"text":"Fajne, my\u015bl\u0119, \u017ce jest to bardzo przyst\u0119pnie napisane, wszyscy s\u0105 w stanie to zrozumie\u0107, je\u015bli nawet nigdy tego nie robi\u0142a.","html":" Fajne, my\u015bl\u0119, \u017ce jest to bardzo przyst\u0119pnie napisane, wszyscy s\u0105 w stanie to zrozumie\u0107, je\u015bli nawet nigdy tego nie robi\u0142a.<\/p>\n","parent_id":45893,"url":"https:\/\/4programmers.net\/Mikroblogi\/View\/45893#comment-45902","created_at":"2019-04-23T16:27:41+02:00","updated_at":"2019-04-23T16:27:41+02:00","comments":[],"user":{"id":86261,"name":"Visual Code","is_online":false,"photo":"https:\/\/4programmers.net\/uploads\/photo\/59\/598bf272279b0.png","deleted_at":null,"is_blocked":false},"permissions":{"update":false,"moderate":false},"type":"microblog","assets":[],"is_sponsored":false,"metadata":"eyJpdiI6Ijh0bTdJLzhsa3ZPOTQ5TmlEeTZWRUE9PSIsInZhbHVlIjoiMDBFRGZsMVZib3F6bjhyZWg4VVFOc1pPRTV1elJKU3RCNUZSWkE1TWZ0S3pKSDdsRk1yVUNqRHJSTE5mSnhsZCIsIm1hYyI6ImU3MjlhYmIyMjVjNjJkN2FiY2ZiNWUyYzgyMjM4Yzc2MmRmOTFiZWQzOTcxYzY0NDY2Yjk5ZTcyZTgxOWFjZjMiLCJ0YWciOiIifQ==","deleted_at":null},"45912":{"id":45912,"votes":0,"views":0,"text":"@danek: ch\u0119tnie zobacz\u0119 wi\u0119cej post\u00f3w od Ciebie. Powoli konwertuj\u0119 si\u0119 na Jav\u0119, a ma\u0142o si\u0119 pisze o takich praktykach w wi\u0119kszo\u015bci tutoriali :)","html":" @danek<\/a>: ch\u0119tnie zobacz\u0119 wi\u0119cej post\u00f3w od Ciebie. Powoli konwertuj\u0119 si\u0119 na Jav\u0119, a ma\u0142o si\u0119 pisze o takich praktykach w wi\u0119kszo\u015bci tutoriali :)<\/p>\n","parent_id":45893,"url":"https:\/\/4programmers.net\/Mikroblogi\/View\/45893#comment-45912","created_at":"2019-04-23T19:42:40+02:00","updated_at":"2019-04-23T19:42:40+02:00","comments":[],"user":{"id":72192,"name":"Desu","is_online":false,"photo":null,"deleted_at":null,"is_blocked":false},"permissions":{"update":false,"moderate":false},"type":"microblog","assets":[],"is_sponsored":false,"metadata":"eyJpdiI6IlViRTRNYjdoanloVWpCbTlraDZsTkE9PSIsInZhbHVlIjoiOXY2UjZnSkNxU2VLOEFzeVcxVjlpQk0zZDUwZFQ1MWIyM2oxbFN2T3MwUmx2emI5dDhnUXF1SGg4aVJSZjVqTyIsIm1hYyI6IjJmMDVmNTNiMGRiMzA1YjNmMzc2ODdlYjM3YmIwNGViOGVjYjIxOWMzNTgwNDQ1MDczM2E3NzBiYTc0YWI5MTQiLCJ0YWciOiIifQ==","deleted_at":null},"45914":{"id":45914,"votes":0,"views":0,"text":"@Desu: idz w kotlina od razu","html":" @Desu<\/a>: idz w kotlina od razu<\/p>\n","parent_id":45893,"url":"https:\/\/4programmers.net\/Mikroblogi\/View\/45893#comment-45914","created_at":"2019-04-23T19:48:13+02:00","updated_at":"2019-04-23T19:48:13+02:00","comments":[],"user":{"id":64304,"name":"danek","is_online":false,"photo":"https:\/\/4programmers.net\/uploads\/photo\/59\/599052d9bfbe2.jpg","deleted_at":null,"is_blocked":false},"permissions":{"update":false,"moderate":false},"type":"microblog","assets":[],"is_sponsored":false,"metadata":"eyJpdiI6IjJ5V2hnVytDKzAvdGEya0tZeExhc2c9PSIsInZhbHVlIjoiU2NzL25BTnBMelJVU2dCbXpNaG5ZajVZK0taY3plZldFZXhNYnp1U1UxTU5ZRU94ek1zQktBTk83RzVpUXRDdyIsIm1hYyI6ImMzZDA5YzY3NTM5ZWM4NWI1MTQzZGMwZDg3ODE0NmY4MjJiN2VlZDJhMjE1NDZkYTEwMGFhNWVjOTE0ZWJiMmYiLCJ0YWciOiIifQ==","deleted_at":null},"45918":{"id":45918,"votes":0,"views":0,"text":"@danek: \"Lombok - how to program in Kotlin if you boss doesn't let you\" :D","html":" @danek<\/a>: \"Lombok - how to program in Kotlin if you boss doesn't let you\" :D<\/p>\n","parent_id":45893,"url":"https:\/\/4programmers.net\/Mikroblogi\/View\/45893#comment-45918","created_at":"2019-04-23T19:59:30+02:00","updated_at":"2019-04-23T19:59:30+02:00","comments":[],"user":{"id":72192,"name":"Desu","is_online":false,"photo":null,"deleted_at":null,"is_blocked":false},"permissions":{"update":false,"moderate":false},"type":"microblog","assets":[],"is_sponsored":false,"metadata":"eyJpdiI6InVpREJ5L204UlpGUkhqOUZOWWZadVE9PSIsInZhbHVlIjoiRjFxcU8zanZ6MWpNVHhScU9xaVhHK3MyZEFPR1A3NVRqdnlxeEZ6b0wrYUpLV1ZCUW1SMDdjRGw5N2xPNGRMbCIsIm1hYyI6ImZiZDExMTZmYjAwOGYxNTI2NGEwYjg0OTAxYmVmNmQyZTIxMmZlNjdiMTNiNjNmMzcxMzEyNGJlZTVlYzk2MWUiLCJ0YWciOiIifQ==","deleted_at":null},"45925":{"id":45925,"votes":0,"views":0,"text":"Dzi\u0119ki za powiadomienie. Spos\u00f3b spoko, mam podobny, ale ma jedn\u0105 bardzo du\u017c\u0105 wad\u0119 kt\u00f3ra mnie irytuje i kt\u00f3ra imo na d\u0142u\u017csz\u0105 met\u0119 go skre\u015bla - w kontrolerze, w sygnaturze metody `generateToken`, w typie zwracanym nie ma informacji co dok\u0142adnie zwracamy. Tzn. jest `ResponseEntity`, ale nie wiadomo co to jest, nie ma `ResponseEntity Dzi\u0119ki za powiadomienie. Spos\u00f3b spoko, mam podobny, ale ma jedn\u0105 bardzo du\u017c\u0105 wad\u0119 kt\u00f3ra mnie irytuje i kt\u00f3ra imo na d\u0142u\u017csz\u0105 met\u0119 go skre\u015bla - w kontrolerze, w sygnaturze metody @CountZero<\/a>: nic nie stoi na przeszkodzie by to Ale gdzie? zastanawia mnie: czy w ka\u017cdym poprawnym response zwracasz 200 OK? czy w prawdziwej implementacji zwracasz tez inne kody na sukces?<\/p>\n","parent_id":45893,"url":"https:\/\/4programmers.net\/Mikroblogi\/View\/45893#comment-45930","created_at":"2019-04-24T10:29:11+02:00","updated_at":"2019-04-24T10:29:11+02:00","comments":[],"user":{"id":55753,"name":"azalut","is_online":false,"photo":"https:\/\/4programmers.net\/uploads\/photo\/5f\/5f9db55775884.png","deleted_at":null,"is_blocked":false},"permissions":{"update":false,"moderate":false},"type":"microblog","assets":[],"is_sponsored":false,"metadata":"eyJpdiI6IlZpeDRDbWZRbXpyRFRxUUJEMGprd0E9PSIsInZhbHVlIjoieCtEcTRubEtudUhDalpjNmFuMzYraENJakhkeXl3WFk5NEpucWdEL3ZjcXIrblZYSzVtS0xaVHV6b3k4SmRvNiIsIm1hYyI6IjA2ZWRjZjFlZjI2NWM4OTIwODFkYmIwZmQ0MWIzMzJjZGY2ZTljZDgwZWYwYmYzYmNlYzcxOTYwMmM4MmYwZmIiLCJ0YWciOiIifQ==","deleted_at":null},"45934":{"id":45934,"votes":0,"views":0,"text":"@azalut: pierwsze, co mi przysz\u0142o do g\u0142owy, to: https:\/\/4programmers.net\/Pastebin\/11058, mo\u017cna to oczywi\u015bcie ubra\u0107 w jakie\u015b tam dodatkowe klasy.","html":" @azalut<\/a>: pierwsze, co mi przysz\u0142o do g\u0142owy, to: https:\/\/4programmers.net\/Pastebin\/11058<\/a>, mo\u017cna to oczywi\u015bcie ubra\u0107 w jakie\u015b tam dodatkowe klasy.<\/p>\n","parent_id":45893,"url":"https:\/\/4programmers.net\/Mikroblogi\/View\/45893#comment-45934","created_at":"2019-04-24T11:13:10+02:00","updated_at":"2019-04-24T11:13:10+02:00","comments":[],"user":{"id":72192,"name":"Desu","is_online":false,"photo":null,"deleted_at":null,"is_blocked":false},"permissions":{"update":false,"moderate":false},"type":"microblog","assets":[],"is_sponsored":false,"metadata":"eyJpdiI6ImZ5UHBUbFpDdFdUVlFmTU5BUlBQZGc9PSIsInZhbHVlIjoiblNnb3laMWNkOHh2RCtSWEhLSUVQWFVza3RKblUxSjhnRXk2VCtDQUdjLzdmN0hUNlo5d2dKcFd6V0NmcGY4ViIsIm1hYyI6Ijc5N2E5ZmY1YmRhYjA0ZjZkZWI0YjA3ODZiMTA0MzE3Y2IwMjY4OGQ0YjI4MWJhNTg1YTIyOTgwNWQyNWMwZTQiLCJ0YWciOiIifQ==","deleted_at":null},"45956":{"id":45956,"votes":0,"views":0,"text":"@azalut: nie mia\u0142em jeszcze takiej potrzeby, ale zawsze mo\u017cna podobn\u0105 jak tu rzecz zrobi\u0107\u00a0dla warto\u015bci poprawnej","html":"generateToken<\/code>, w typie zwracanym nie ma informacji co dok\u0142adnie zwracamy. Tzn. jest
ResponseEntity<\/code>, ale nie wiadomo co to jest, nie ma
ResponseEntity<Error, String><\/code>, albo co\u015b w tym stylu. Jak piszesz kod to pami\u0119tasz o co chodzi, ale za trzy miesi\u0105ce, gdy widzisz pi\u0119\u0107 takich metod to nie masz zielonego poj\u0119cia co one tak naprawd\u0119 zwracaj\u0105 i musisz szuka\u0107 odpowiedzi w kodzie na tak trywialne pytanie. I jeszcze drugi problem - brak typowania w
ResponseEntity<\/code>. Jak gdzie\u015b si\u0119 walniesz i zamiast
UserToken<\/code> zwr\u00f3cisz np.
UserRoles<\/code> to kompilator si\u0119 nawet nie zaj\u0105knie i b\u0142\u0105d wyjdzie w runtimie. O ile wyjdzie :).<\/p>\n","parent_id":45893,"url":"https:\/\/4programmers.net\/Mikroblogi\/View\/45893#comment-45925","created_at":"2019-04-24T00:10:14+02:00","updated_at":"2019-04-24T00:10:14+02:00","comments":[],"user":{"id":85994,"name":"CountZero","is_online":false,"photo":"https:\/\/4programmers.net\/uploads\/photo\/5a\/5a70a241c81c4.jpg","deleted_at":null,"is_blocked":false},"permissions":{"update":false,"moderate":false},"type":"microblog","assets":[],"is_sponsored":false,"metadata":"eyJpdiI6IjdRMnZtUC9TRVNIOHlWMVV0Ky80cXc9PSIsInZhbHVlIjoiNjkwdnlyZ296eXVJaTVEN0xlb0tvNG1JRHlFKzBRQ2RUZ21tVkhvNlo0VFMwYTdscUl1OVBhLzQ2aFVjZkVOdiIsIm1hYyI6IjAzZDI3ZjhkNzU2Yzk5NDM1NmQ4NTBkYTJlN2MxYzY4YTk1Y2ZmN2UyYjBhMTI2NTdlMGIyOGQzZmRmMmIzMDEiLCJ0YWciOiIifQ==","deleted_at":null},"45926":{"id":45926,"votes":0,"views":0,"text":"@CountZero: nic nie stoi na przeszkodzie by to `ResponseEntity
ResponseEntity<Error, String><\/code> tam zapisa\u0107 ;) Typowanie masz zapewnione na poziomie fasady, kontroler jest \"g\u0142upi\"\/\"przezroczysty\" i tylko to przekazuje dalej. Dla niego nie ma znaczenia jakie dane faktycznie tam siedz\u0105, bo jego odpowiedzialno\u015bci\u0105 jest tylko wzi\u0105\u0107 jakie\u015b\u00a0informacje i wys\u0142a\u0107 je w \u015bwiat po http. W\u0142asnie ca\u0142a zabawa w architekturze, kt\u00f3r\u0105 stosuje polega na tym, \u017ceby maksymalnie \"og\u0142upi\u0107\" wszystko poza logik\u0105 biznesow\u0105 i sprowadzi\u0107 inne warstwy tylko do przepuszczania danych dalej. No ale je\u015bli chcesz zawsze mo\u017cesz dopisa\u0107 odpowiednie testy \"integracyjne\". ;)<\/p>\n","parent_id":45893,"url":"https:\/\/4programmers.net\/Mikroblogi\/View\/45893#comment-45926","created_at":"2019-04-24T00:18:21+02:00","updated_at":"2019-04-24T00:18:21+02:00","comments":[],"user":{"id":64304,"name":"danek","is_online":false,"photo":"https:\/\/4programmers.net\/uploads\/photo\/59\/599052d9bfbe2.jpg","deleted_at":null,"is_blocked":false},"permissions":{"update":false,"moderate":false},"type":"microblog","assets":[],"is_sponsored":false,"metadata":"eyJpdiI6IlNlMGpHT1BVWWMrR1E0ZlFqMzEvV2c9PSIsInZhbHVlIjoiV1k5TXlvNWlNWFdOSWlmWDVWclRMcnkyanpNQmc5bmR4SGV2OUJqN3B0Mk4vc1dyM0tUY3dlYU11aUZ6aHNnMiIsIm1hYyI6IjZiOGVhODgzZmE0MGY2MmZkYzEwNTIzYTg2OTdjZWVkZDFmY2M3MjMwNGNlODRmNmNmMDg4MzMwNGI4NzIyODciLCJ0YWciOiIifQ==","deleted_at":null},"45928":{"id":45928,"votes":1,"views":0,"text":"Ale gdzie? `ResponseEntity` ma tylko jeden typ generyczny. Zgadzam si\u0119, \u017ce kontroler jest g\u0142upi i nie musi o tym wiedzie\u0107 - ale programista ju\u017c nie i dla niego brak informacji o tym co przekazuje metoda w kontrolerze jest problematyczne. Jak b\u0119dziesz mia\u0142 sto takich metod w 10 kontrolerach i b\u0119dziesz musia\u0142 si\u0119 domy\u015bla\u0107 co te metody zwracaj\u0105, to szybko kod stanie si\u0119\u00a0ci\u0119\u017cki do utrzymania (w warstwie kontroler\u00f3w). Na dodatek nie b\u0119dziesz mia\u0142 pewno\u015bci \u017ce tak jest, bo na etapie kompilacji oczywiste b\u0142\u0119dy typu `return ResponseResolver.resolve(userFacade.register(loginUserInfo) ); \/\/ whoops, meant to invoke userFacade.login()` nie zostan\u0105 wykryte. Oczywi\u015bcie mo\u017cna zak\u0142ada\u0107 \u017ce si\u0119 nikt nigdy nie walnie w takiej prostej rzeczy no ale wiadomo jak to jest :).","html":"
ResponseEntity<\/code> ma tylko jeden typ generyczny. Zgadzam si\u0119, \u017ce kontroler jest g\u0142upi i nie musi o tym wiedzie\u0107 - ale programista ju\u017c nie i dla niego brak informacji o tym co przekazuje metoda w kontrolerze jest problematyczne. Jak b\u0119dziesz mia\u0142 sto takich metod w 10 kontrolerach i b\u0119dziesz musia\u0142 si\u0119 domy\u015bla\u0107 co te metody zwracaj\u0105, to szybko kod stanie si\u0119\u00a0ci\u0119\u017cki do utrzymania (w warstwie kontroler\u00f3w). Na dodatek nie b\u0119dziesz mia\u0142 pewno\u015bci \u017ce tak jest, bo na etapie kompilacji oczywiste b\u0142\u0119dy typu
return ResponseResolver.resolve(userFacade.register(loginUserInfo) ); \/\/ whoops, meant to invoke userFacade.login()<\/code> nie zostan\u0105 wykryte. Oczywi\u015bcie mo\u017cna zak\u0142ada\u0107 \u017ce si\u0119 nikt nigdy nie walnie w takiej prostej rzeczy no ale wiadomo jak to jest :).<\/p>\n","parent_id":45893,"url":"https:\/\/4programmers.net\/Mikroblogi\/View\/45893#comment-45928","created_at":"2019-04-24T09:44:44+02:00","updated_at":"2019-04-24T09:44:44+02:00","comments":[],"user":{"id":85994,"name":"CountZero","is_online":false,"photo":"https:\/\/4programmers.net\/uploads\/photo\/5a\/5a70a241c81c4.jpg","deleted_at":null,"is_blocked":false},"permissions":{"update":false,"moderate":false},"type":"microblog","assets":[],"is_sponsored":false,"metadata":"eyJpdiI6ImRYWEtWQWZBVlBOdXZoQlkzQ2VrVkE9PSIsInZhbHVlIjoiejhKNWZYdkN6c3h1UDk1Y2kvUkdFL0xwTkxROG94Qi9xQm5kM24zeEpIN2hTNFM3VUIyZVhRbDkwVkdPZ0RzcyIsIm1hYyI6IjgyYzExMzJjZDkzNTkwNWUxYmY1NWFhMjc0OGE0MzE5ZmUwYWQ2MjVlN2M4YjllZjZjN2IxMmYyZWVjYmFlNzMiLCJ0YWciOiIifQ==","deleted_at":null},"45930":{"id":45930,"votes":0,"views":0,"text":"zastanawia mnie: czy w ka\u017cdym poprawnym response zwracasz 200 OK? czy w prawdziwej implementacji zwracasz tez inne kody na sukces?","html":"