Size: a a a

iOS Developers — русскоговорящее сообщество

2020 July 06

AK

Anton K. in iOS Developers — русскоговорящее сообщество
нельзя юзать, потому что не гарантируется, что запрос не реджектнется
источник

В

Вовка in iOS Developers — русскоговорящее сообщество
get /api/model/7

вот это ты взял
источник

AK

Anton K. in iOS Developers — русскоговорящее сообщество
ну не. ты не прав
источник

AK

Anton K. in iOS Developers — русскоговорящее сообщество
а если GET /api?model=7
то ты взял или что?
источник

В

Вовка in iOS Developers — русскоговорящее сообщество
ты обращаешься куда-то за чем-то.
источник

AK

Anton K. in iOS Developers — русскоговорящее сообщество
и в чем координальная разница между тем, что ты передаешь какие-то данные в body, а не в uri, query_string?
источник

В

Вовка in iOS Developers — русскоговорящее сообщество
Anton K.
а если GET /api?model=7
то ты взял или что?
Это ты условие наложил на данные, которые берешь из апи
источник

AK

Anton K. in iOS Developers — русскоговорящее сообщество
ну ты уже про rest. где есть ресурсы.
источник

В

Вовка in iOS Developers — русскоговорящее сообщество
Anton K.
ну ты уже про rest. где есть ресурсы.
конечно)
источник

AK

Anton K. in iOS Developers — русскоговорящее сообщество
а мы про хттп. в самом http нет ресурсов
источник

В

Вовка in iOS Developers — русскоговорящее сообщество
Anton K.
нельзя юзать, потому что не гарантируется, что запрос не реджектнется
Давай на этом остановимся, это корректно звучит
источник

AK

Anton K. in iOS Developers — русскоговорящее сообщество
и как транспорту ему пофиг, в query_string, в uri или в body ты будешь передавать
источник

В

Вовка in iOS Developers — русскоговорящее сообщество
Верно
источник

AK

Anton K. in iOS Developers — русскоговорящее сообщество
Вовка
Давай на этом остановимся, это корректно звучит
давай. потому что имхо это самое важное для новичков и не только
источник

В

Вовка in iOS Developers — русскоговорящее сообщество
Anton K.
давай. потому что имхо это самое важное для новичков и не только
🤝
источник

РМ

Рафаил Мамедов... in iOS Developers — русскоговорящее сообщество
Get предназначен для получения данных
Вопрос почему лучше использовать get /product/id вместо get /product с телом запрос { id: 1 }

Ответов множество
1) Архитектурный, во втором примере получается, что адрес получаемой информации мы делим на 2 части, что является лапшой
2) Нам сложнее описать кеширующий\редирект сервер, потому что в первом случае мы можем отдавать кеш\редирект только по адресу, во втором нам нужно будет парсить боди. В моем примере кода для парсинга тела даже пришлось подключать бибилоитеки и увеличивать размер итогового сервера.
3) Непреемственный подход, единообразие сетевого интрерфейса, подавляющее большинство доки именно в таком стиле, где адрес получаемой инфы будет полностью находиться в URI. И это касается не только GET запросов, но и всех остальеых - адрес должен быть в параметрах, а "посылка" в боди. Написать post c боди { id: 1, newModelData: {} } ровно также плохо

Но никаких технических ограничений на боди при гет запросе нет, в моем экзампле я взял один из популярных http серверов и показал это. Если взять другие, то будет ровно тот же результат.

То, что там где-то какой-то админ что-то реализовал это его частный случай и не более.
Обычно (правильно) использовать валидаторы для запросов и таких проблем быть просто не может.
источник

РМ

Рафаил Мамедов... in iOS Developers — русскоговорящее сообщество
А новичкам такую информацию тем более давать не стоит. Новичек может написать скопипасть из офф доки 20 строк тестового сервера и увидеть, что его обманули.
Для новичка лучше сказать, что вот есть Rest - архитектурный стиль, часто реализуется на HTTP. Вот в нем есть такие правила. Почему они такие? Для упрощения архитектуры. Это будет абсолютной правдой и не смутит человека при дайоьнейшнем изучении серверов.
источник

AK

Anton K. in iOS Developers — русскоговорящее сообщество
Рафаил, я цитату из официальной RFC привел по http
источник

AK

Anton K. in iOS Developers — русскоговорящее сообщество
и мы обсуждали изначально http. rest это абстракция над http. он тут вообще ни при чем
источник

AK

Anton K. in iOS Developers — русскоговорящее сообщество
какие еще валидаторы запросов, если веб-сервер или промежуточный прокси сервер может просто забраковать гет запрос с боди? твой запрос просто не дойдет до твоей реализации. я больше об этом
источник