Size: a a a

Saint P Ruby Community

2020 September 22

VK

Vladimir Kalinkin in Saint P Ruby Community
max
Обсуждение началось с проектирования интерфейса апи. Я поделился опытом и привёл аргументацию почему считаю один подход лучше другого. Какие проблемы встречаются и какие принципы нарушаются при предложенных решениях.

Как я понял, у уважаемых людей конструктивных аргументов нет. Поэтому предлагаю продолжить дискуссию когда они появятся
нет цели и мотивации вас в чём-то переубедить. я просто ещё один ничтожный голос в толпе, который говорит, что выбранный вами подход несколько спорный, а проблемы, которые вы обозначаете несколько надуманны, и принципы, с которыми пытаетесь их решить не из той оперы. делайте, что делаете, главное, чтобы другие потом от этого не страдали.
источник

m

max in Saint P Ruby Community
Да. Без аргументов сложно относится к вашему мнению как то иначе
источник

VK

Vladimir Kalinkin in Saint P Ruby Community
max
Да. Без аргументов сложно относится к вашему мнению как то иначе
мне кажется, здесь уже со всех сторон обжевали, спасибо @morozzzko , и аргументов вполне достаточно.
источник

w

wi11son in Saint P Ruby Community
max
Да. Без аргументов сложно относится к вашему мнению как то иначе
А можете поделиться тем кейсом, когда нужно перенаправить пользователя, и стоит это делать не через 301?
источник

w

wi11son in Saint P Ruby Community
Я просто искренне пытаюсь найти оправдание такому апи, где мы делаем запрос на картинку, а в ответ, если картинки нет, мне возвращается 200 и json, мол сорян, картинки нет
источник

w

wi11son in Saint P Ruby Community
Или же, если картинка по другому адресу, то на запрос я получу 200 и описание куда мне сходить вмксто 301...
источник

m

max in Saint P Ruby Community
Например ajax form.
Пользователь заполняет форму, но по сабмиту она сериализуется и отправляется аяксом в апи. На стороне приложения, если форма корректно заполнена, инфа сохраняется и надо чтото ответить что потом перенаправит пользователя на след страницу. А в случае ошибок валидации вернуть список этих ошибок для отображения.
источник

AG

Alexander G in Saint P Ruby Community
ну это какой-то неправильный пример. кто ж так делает?
источник

m

max in Saint P Ruby Community
например, http://malsup.com/jquery/form/#getting-started
это сейчас spa и vue+react+angular
а раньше было такое и этот легаси надо поддерживать

а что, собственно, в нем неправильного? чем плохо желание сабмитить форму аяксом и обрабатывать ответ?
источник

AG

Alexander G in Saint P Ruby Community
я думаю, что правильным примером могло быть что-то вроде апи, где информация запрашивается по никнейму юзера

типа get /api/user/nick/friends

А потом разрешили пользователям менять ники и он изменил на другой. Старый ник мог остаться где-то на клиентах
источник

CM

Cucumba Morozov in Saint P Ruby Community
для этого ещё есть другие статусы для редиректа, не ток 301. их клиенты могут по-другому обрабатывать
источник

AG

Alexander G in Saint P Ruby Community
Cucumba Morozov
для этого ещё есть другие статусы для редиректа, не ток 301. их клиенты могут по-другому обрабатывать
это ты кому ответил? )
источник

CM

Cucumba Morozov in Saint P Ruby Community
вот тебе)
источник

m

max in Saint P Ruby Community
Alexander G
я думаю, что правильным примером могло быть что-то вроде апи, где информация запрашивается по никнейму юзера

типа get /api/user/nick/friends

А потом разрешили пользователям менять ники и он изменил на другой. Старый ник мог остаться где-то на клиентах
вот это как раз случай когда надо вернуть 301 для редиректа самого запроса api
источник

AG

Alexander G in Saint P Ruby Community
max
вот это как раз случай когда надо вернуть 301 для редиректа самого запроса api
я запутался в вашем споре, сорян. Да, это был пример случая, когда в апи стоит вернуть 301
источник

CM

Cucumba Morozov in Saint P Ruby Community
Alexander G
я думаю, что правильным примером могло быть что-то вроде апи, где информация запрашивается по никнейму юзера

типа get /api/user/nick/friends

А потом разрешили пользователям менять ники и он изменил на другой. Старый ник мог остаться где-то на клиентах
в таком примере как раз другие трёхсотые статусы, т.к. 301 клиент не обработает ж
источник

CM

Cucumba Morozov in Saint P Ruby Community
ну т.е. он просто зашлёт гет на новый урл, но софтина не узнает, что урл поменялся и будет дальше жить в неведении
источник

CM

Cucumba Morozov in Saint P Ruby Community
хотя если такое поведение и нужно, то ок
источник

CM

Cucumba Morozov in Saint P Ruby Community
max
Например ajax form.
Пользователь заполняет форму, но по сабмиту она сериализуется и отправляется аяксом в апи. На стороне приложения, если форма корректно заполнена, инфа сохраняется и надо чтото ответить что потом перенаправит пользователя на след страницу. А в случае ошибок валидации вернуть список этих ошибок для отображения.
а зачем редиректить после сабмита формы аяксом? понятно, зачем редиректить, когда отправляется обычный POST запрос. а защем это в аяксах?
источник

AG

Alexander G in Saint P Ruby Community
Cucumba Morozov
в таком примере как раз другие трёхсотые статусы, т.к. 301 клиент не обработает ж
если тут клиент = клиентское приложение, то да, не обработает.
но 301 и нужен, когда есть клиенты, которые ничего не знают об изменении и не собираются ничего никак обрабатывать
источник