@oop_ru

Страница 472 из 785
Sergey
25.01.2018
11:29:19
mdn в качестве спеки по http сойдет? w3 все же читается сложнее
ммм я бы w3 все ж рекомендовал... можешь сначала mdn что бы было проще

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

Bohdan
25.01.2018
11:29:42
да, это тоже открыто

Sergey
25.01.2018
11:29:59
Google
Sergey
25.01.2018
11:30:07
или на PUT

Bohdan
25.01.2018
11:30:31
я аж не знаю, какой извращенный ум до такого догадается

Maksim
25.01.2018
11:30:42
много таких. очень

Bohdan
25.01.2018
11:30:45
ну либо сервер сначала сделал, а потом посмотрел

в случае с delete

Sergey
25.01.2018
11:30:53
или есть еще апи платежек всяких которые... ну типа ты платежку послал и если что-то в пути не так случилось - то прости прощай, если все было ок а ты просто ответ не получил - просто деньги второй раз спишем)

Bohdan
25.01.2018
11:31:14
типа "чувак, удали мне номер..." —- "аааа, уже удалил, че ты там говорил? нет такого номера"

Sergey
25.01.2018
11:31:16
я аж не знаю, какой извращенный ум до такого догадается
я бы сказал что подобное по умолчанию у людей в головах. А уже потом они начинают думать

Sergey
25.01.2018
11:32:06
та не)
ты смеешься а я как-то систему завязал на метод апи такой (в блокчейнах) и потом страдал потому что сеть периодически падала)

потом просто разделил на отдельно создать транзакцию и послать транзакцию - идемпотентно, надежно, можно повторять хоть до посинения

Maksim
25.01.2018
11:32:46
ну за ваши эти модные блокчейны не скажу) в классических платёжках всё чуток иначе) там всё зависит от того, в какой момент времени ты отвалился)

Google
Bohdan
25.01.2018
11:33:11
надо бота завести который мониторит чат, слушает слова и кидает картинку triggered и упоминание человека

Maksim
25.01.2018
11:34:28
"DDD говно" -> Антон :) "я ваш SOLID на трубе шатал" -> Сергей...)

Sergey
25.01.2018
11:35:20
"DDD говно" -> Антон :) "я ваш SOLID на трубе шатал" -> Сергей...)
не меня тоже в ddd говно лучше запиши. Или "разделить на слои".

Maksim
25.01.2018
11:35:38
ну можно нескольких звать)

Bohdan
25.01.2018
11:35:50
сервисбасы еще можно

саги те же

Maksim
25.01.2018
11:36:11
тоже Антон)

Sergey
25.01.2018
11:39:03
саги это да, болше к антону - я не шарю

Maksim
25.01.2018
11:39:30
ага, не шарит он) прикидывайся дальше)

Bohdan
25.01.2018
11:39:40
окей, про идемпотентность put - да, post - нет в таком случае выходит так, что уникальные сущности должны быть созданы только через post?

на саги еще я могу затриггериться, для послушать

Bohdan
25.01.2018
11:40:26
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.

Sergey
25.01.2018
11:40:31
ну то есть если операция идемпотентная - ты можешь через put/get/delete все делать. А если нет - добро пожаловать в мир post-ов

Bohdan
25.01.2018
11:40:32
идентичные запросы

скорее получается наоборот

если айдишку создает сервер и нет уникальных полей - тогда можно юзать put

andretshurotshka?❄️кде
25.01.2018
11:41:01
опять фп

Bohdan
25.01.2018
11:41:14
а если клиент - тогда сугубо пост, ведь айдишка должна быть уникальной

Sergey
25.01.2018
11:41:30
если айдишку создает сервер и нет уникальных полей - тогда можно юзать put
ммм... нет, операция ж не идемпотентная. сервер на два одинаковых запроса тебе 2 разные айдишки сгенерит

Google
Sergey
25.01.2018
11:41:49
не путай уникальность с идемпотентностью

PUT /users/id {} PUT /users/id {} одинаковый результат

POST /users {} POST /users {} разный

все сводится к сайд эффектам

Roman
25.01.2018
11:42:57
все сводится к сайд эффектам
А Delete разве не должен удалять?

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

Sergey
25.01.2018
11:43:34
А Delete разве не должен удалять?
DELETE /users/{id} DELETE /users/{id} одинаковый результат - 204, все ок, ресурса больше нет

Roman
25.01.2018
11:43:38
И такое получается через post фигачить надо типа сайд-эффект?

Roman
25.01.2018
11:43:48
А ресурса нет - NotFound поидее

мысли вслух

Sergey
25.01.2018
11:44:08
А ресурса нет - NotFound поидее
это 404 и ошибка клиента что не является "ок"

Roman
25.01.2018
11:44:19
сам пидор

раз делает такое

Sergey
25.01.2018
11:44:31
ну так он удаляет удалённое
он мог повторить запрос если сеть лагнула

клиенту класть

Roman
25.01.2018
11:44:47
он мог повторить запрос если сеть лагнула
а меня как сервера это должно волновать?)

Я запрос получил, действие выполнил

Google
Sergey
25.01.2018
11:45:10
а меня как сервера это должно волновать?)
тебя это тоже не должно волновать - если кто-то хочет удалить удаленный ресурс - ну он уже удален так что мне работы меньше

верну ему 204 что ресурса больше нет)

Sergey
25.01.2018
11:45:50
Ну по мне так логичнее таки ошибку вернуть...
но в этом нет смысла ни для сервера ни для клиента

Roman
25.01.2018
11:45:56
ресурса то не существует больше

Sergey
25.01.2018
11:45:57
это только добавляет лишней логики

ресурса то не существует больше
если тебе во все это сложно - для тебя есть json rpc

POST /deleteUser(id)

и все счастливы

Admin
ERROR: S client not available

Sergey
25.01.2018
11:46:55
а потом можно и graphql-ем обмазаться

и будет

mutation deleteUser(id: Number) { }

andretshurotshka?❄️кде
25.01.2018
11:47:30
вооо

Sergey
25.01.2018
11:47:31
ресурса то не существует больше
ресурсы не важны - важно сделать удобно

andretshurotshka?❄️кде
25.01.2018
11:47:33
вот это норм вещь

наконецта

Sergey
25.01.2018
11:48:20
ну то есть ни клиенту ни серверу никакого профита от того что бы кинуть ошибку на удаление ресурса которого не существует нет.

только усложнения

Google
Roman
25.01.2018
11:48:29
а потом можно и graphql-ем обмазаться
по мне так это недо-protobuf на жсоне

Sergey
25.01.2018
11:48:43
по мне так это недо-protobuf на жсоне
там вся соль в композиции данных

Roman
25.01.2018
11:48:44
Sergey
25.01.2018
11:49:11
почему?
потому что тебе не хочется на клиенте обрабатывать эту ошибку и глушить ее.

Roman
25.01.2018
11:49:20
Ты говоришь: "Эй мужик, ты делаешь хуитуууу!!!" и клиент такой "Ок, понял" и рисует юзеру "Сорри, вы сделали хуиту"

по мне так логично такое

Sergey
25.01.2018
11:50:10
Ты говоришь: "Эй мужик, ты делаешь хуитуууу!!!" и клиент такой "Ок, понял" и рисует юзеру "Сорри, вы сделали хуиту"
представь что ты открываешь апку и тыкаешь кнопку delete когда вьезжаешь в туннель. Связь резко рвется и запрос как бы на сервер ушел но ты получил таймаут. Твоя приложенька умная и просто повторит запрос. Но сервер уже возвращает ошибку.

Tex
25.01.2018
11:50:17
ну то есть ни клиенту ни серверу никакого профита от того что бы кинуть ошибку на удаление ресурса которого не существует нет.
многим помогает переосознание того, что DELETE это не запрос действия на удаление, а запрос факта удаления. задача проверить наличие записи, сделать так, чтобы её не было, вернуть "ок" и как раз формулировка "сделать так, чтобы её не было" кладёт на то, есть она или нет изначально.

Tex
25.01.2018
11:50:33
есть - удалить - окей нет - уже хорошо - окей

Sergey
25.01.2018
11:50:39
это не процедура - это описание

Sergey
25.01.2018
11:51:07
это надо написать

ты я так понимаю клиенты вообще не пишешь?)

Tex
25.01.2018
11:52:06
А подробнее есть где глянуть?
я это из головы взял, не думаю что там можно что-то глянуть

но можешь попробовать

Sergey
25.01.2018
11:52:17
А подробнее есть где глянуть?
https://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html

Страница 472 из 785