@symfony_php

Страница 291 из 1418
Виктор
18.09.2017
07:48:28
например PUT /api/messages/123/likes
ВОпрос тогда можно, а если надо коогда вы дергаете PUT /api/messages/123/likes запустить какой-нить фоновый процесс, отправить скажем сообщение телеграм ботом. Вы эти вызовы в сущности закинете? То есть будете делать то, что не рекомендуется разработчиками доктрины, использовать в сущностях объекты более выского уровня, которые наоборот как раз сами должны оперировать с сущностями?

Sergey
18.09.2017
07:48:49
но это не "настоящая" сущность. это отношение между сущностью и пользователем
GET /api/messages/123/likes вернет тебе список сущностей, нет разве?

Виктор
18.09.2017
07:48:58
Поэтому я считаю что АПИ-шка не должна работать непоследственно с сущностями - должен быть еще слой бизнес-логики дополнитлеьный

Google
Sergey
18.09.2017
07:49:20
GET /api/messages/123/likes вернет тебе список сущностей, нет разве?
вернет массив людей. Но ты же не скажешь что like это человек

в целом оно вернет тебе ресурсы

репрезентацию данных

я могу делать всякие разные репрезентации даже не имея таких "сущностей"

ну либо определись что есть "сущность" что бы мы случайно про сущности доктрины не говорили

Sergey
18.09.2017
07:50:12
ты ж не вернешь просто список людей, которые пролайкали? у каждого лайка будет свой идентификатор, что делает его в принципе сущностью

Sergey
18.09.2017
07:50:26
Поэтому я считаю что АПИ-шка не должна работать непоследственно с сущностями - должен быть еще слой бизнес-логики дополнитлеьный
не бизнес логики - адаптеров между http и твоим приложением. И этими адаптерами и являются контроллеры

а сущности там внутри. dao и процедурки или еще чего - это не столь важно.

Виктор
18.09.2017
07:51:15
Так REST у меня или RPC? ))))

Sergey
18.09.2017
07:51:18
проблемы начинаются когда люди начинают настолько сильно обобщать что у них теперь REST работает с сущностями

интересно как много тут людей знают как аббривиатура REST расшифровывается

Google
Sergey
18.09.2017
07:51:40
и какое отношение REST имеет к конечным автоматам

Anatoly
18.09.2017
07:52:16
Виктор
18.09.2017
07:54:32
Вот и я не понимаю- хотя лет 6 где-то пишу апишки разные и всегда называл их REST, когда это все укладывается в спецификации сваггера.

Sergey
18.09.2017
07:55:19
GET /api/v1/peoples/?message=123?like=true :)
хреново потому что схема ресурса может отличаться

Виктор
18.09.2017
07:55:22
а то что оказывается надо было с Entity работать чтобы называть это REST-ом - впервые узнал. Да правда такой REST не знаю как применять даже в реалльных задачах...

Borys
18.09.2017
07:55:23
не поверишь, только на прошлой неделе перечитывал :))

интересно как много тут людей знают как аббривиатура REST расшифровывается

Sergey
18.09.2017
07:55:58
не поверишь, только на прошлой неделе перечитывал :))
что именно? википедию? или диссертацию Роя Филдинга?

Виктор
18.09.2017
07:56:09
Кстати говоря про RPC написано: однако, некоторые построены на основе HTTP (что нарушает архитектуру ISO/OSI, так как HTTP изначально не транспортный протокол). https://ru.wikipedia.org/wiki/Удалённый_вызов_процедур

Borys
18.09.2017
07:56:13
ща вспомню...

все таки википедию...

Sergey
18.09.2017
07:57:05
ну на вики англоязычной во всяком случае было норм написано

русскоязычную не помню

Anatoly
18.09.2017
07:57:23
хреново потому что схема ресурса может отличаться
на что и указывает смайл. Вообще должно быть что то вроде GET /api/v2/peoples/like_by_msg/?id=123

Sergey
18.09.2017
07:58:21
потому что повторюсь - это хоть и похожие ресурсы но они разные

если у тебя у лайка есть собственный идентификатор - хоть GET /likes делай

Anatoly
18.09.2017
07:59:11
Sergey
18.09.2017
07:59:27
это зависит от стиля
REST не про урлы, так что пофиг)

Виктор
18.09.2017
08:00:20
https://ru.wikipedia.org/wiki/REST#.D0.A2.D1.80.D0.B5.D0.B1.D0.BE.D0.B2.D0.B0.D0.BD.D0.B8.D1.8F_.D0.BA_.D0.B0.D1.80.D1.85.D0.B8.D1.82.D0.B5.D0.BA.D1.82.D1.83.D1.80.D0.B5_REST Хоть одну строчку мне тут или где-то покажите, почему надо юзать Entity для REST?

Google
Sergey
18.09.2017
08:00:39
удаленный вызов процедур... штука в том что процедуры не должны ничего возвращать)

Sergey
18.09.2017
08:01:03
удаленный вызов процедур... штука в том что процедуры не должны ничего возвращать)
точно так же как ответы на POST/PUT запросы не должны содержать тела

но они у тебя содержат тело?)

или только локейшен на новый ресурс?

Sergey
18.09.2017
08:01:50
у меня нет rest апишек)

Sergey
18.09.2017
08:01:58
)

как бы ты делал array_pop по ресту?) ну и array_replace например

Sergey
18.09.2017
08:04:02
а при чем тут рест?
это на самом деле не к тебе вопрос... это я хотел про еще один "косяк" людей напомнить - стериотип что post для создания и put для обновления

хотя этот момент как раз таки в спеке по http очень даже хорошо прописан

Sergey
18.09.2017
08:04:34
если array_pop еще можно отделаться с DELETE messages/last, то replace работает сразу со всей коллекцией же

Sergey
18.09.2017
08:05:16
если array_pop еще можно отделаться с DELETE messages/last, то replace работает сразу со всей коллекцией же
вооот. DELETE должен гарантировать идемпотентность. array_pop не идемпонетная операция. Следовательно единственная штука которая нам поможет тут это POST. и выбора у тебя как бы и нет)

Sergey
18.09.2017
08:05:58
и если у тебя (предположим) все операции над сущностями не идемпотентны ты закончишь с rpc хочешь ты того или нет. И это будет по rest-у (с оговоркой что нет)

Sergey
18.09.2017
08:06:03
и с реплейсом в принципе так же

Sergey
18.09.2017
08:06:07
Sergey
18.09.2017
08:06:25
зато рест

Sergey
18.09.2017
08:06:27
POST /collection/pop

вот rest

Sergey
18.09.2017
08:06:35
это рпц

Google
Sergey
18.09.2017
08:06:59
это рпц
тебе тайну открыть?) все rest апишки это на самом деле rpc

Sergey
18.09.2017
08:07:15
в наших реалиях? да

Sergey
18.09.2017
08:07:31
в наших реалиях? да
вообще, в принципе. У тебя не может быть rest если клиент у тебя не браузер

Sergey
18.09.2017
08:07:50
какая разница кто клиент?

Sergey
18.09.2017
08:07:54
или если твое мобильное приложение умеет себя рисовать исходя из гипертекста который ему приходит

какая разница кто клиент?
REST это когда у тебя выполняются определенные ограничения наложенные на архитектуру взаимодействия клиент-сервер

одно из них - Unified Interface

и вот с ним беда

Sergey
18.09.2017
08:08:42
единственная имплементация REST на сегодняшний день это WWW

Sergey
18.09.2017
08:08:54
у тебя браузеры научились делать DELETE/PUT?

Sergey
18.09.2017
08:09:17
идемпотентный DELETE - что за чушь? где вы эту дрянь взяли. Только GETы идемпотентны.
9.1.2 Idempotent Methods Methods can also have the property of "idempotence" in that (aside from error or expiration issues) the side-effects of N > 0 identical requests is the same as for a single request. The methods GET, HEAD, PUT and DELETE share this property. Also, the methods OPTIONS and TRACE SHOULD NOT have side effects, and so are inherently idempotent.

https://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html

у тебя браузеры научились делать DELETE/PUT?
ну как бы... ты можешь http verb указать в form тэге если хочешь

идея в том что сервер регламентирует клиенту "куда дальше можно". Делается это элементами гипермедиа такие как ссылки, формы и т.д

это то и дает вэбу бесконечный скейлинг

а тебе для твоей мобилки нужен просто rpc

Sergey
18.09.2017
08:11:08
Sergey
18.09.2017
08:11:46
в method? не поддерживается же
я даже по другому отвечу - где ты в диссертации филдинга чего про DELETE запросы увидал?)

Anatoly
18.09.2017
08:11:52
Google
Sergey
18.09.2017
08:11:57
это часть спеки http

и не более

Anatoly
18.09.2017
08:12:30
скорее всего имелись в веду ошибки сети а не ресурса

Sergey
18.09.2017
08:12:39
я тебе за веб и формочки говорю
то есть ты хочешь мне сказать что формочки не REST?)))

скорее всего имелись в веду ошибки сети а не ресурса
экспирейшен действия может быть над ресурсом

Sergey
18.09.2017
08:13:25
единственная имплементация REST на сегодняшний день это WWW
http как бы. а http не ограничен www. ты ж не напрямую по tcp пакетами общаешься, без поддержки всех методов. или юних сокетами, или вообще по фтп заливаешь командочки?

Sergey
18.09.2017
08:13:33
я тебе за веб и формочки говорю
REST это обоснование архитектурного стиля выбранного для WEB. Это единственное назначение этой терминологии.

Sergey
18.09.2017
08:13:43
то есть ты хочешь мне сказать что формочки не REST?)))
формочки поддерживают только GET/POST. может щас и поменялось что-то, но так всегда было

Sergey
18.09.2017
08:13:44
если мы говорим про HTTP API - то тогда все клево

Anatoly
18.09.2017
08:14:07
почему не согласен?
ну нельзя по логике вещей называть иденпотентным то что не может быть им по своей сути DELETE Отрабатывает коректно только один раз и все последующие разы отдает ошибку, это нельзя назвать идемпотентным поведением.

Sergey
18.09.2017
08:14:53
повторюсь, ты хочешь сказать что WEB это не REST?))
я говорю что web это не только браузеры

XMLHttpRequest это не совсем браузер

Sergey
18.09.2017
08:15:14
я говорю что web это не только браузеры
http это не только браузеры, а web это только html и браузеры

Anatoly
18.09.2017
08:15:15
гарантия идемпотентности как раз таки позволяет нам в случае ошибки повторить операцию
ошибки сети, а не когда ошибка яляется правильным поведением

Sergey
18.09.2017
08:15:33
а rest != http

Sergey
18.09.2017
08:15:39
http это не только браузеры, а web это только html и браузеры
ну вот ты утверждаешь что rest это только веб, т.е хтмл и браузеры

Sergey
18.09.2017
08:15:58
а все остальное - http api

Страница 291 из 1418