|
|
|
True REST and OPTION
|
|||
|---|---|---|---|
|
#18+
Привет. Мы тут пытаемся сделать небольшой веб-сервис, и с прототипа, который работает целиком на GET запросах, очень хочется двинуть в сторону настоящего REST. Дабы не углубляться в тему, что есть настоящий труЪ REST, я опишу то, что мы называем этим странным словосочетанием в виде примера. Допустим, у нас есть такой набор методов: POST /users - создает нового пользователя, возвращает id новичка. GET /users - возвращает всех пользователей в системе PUT /users/:id - обновление пользователя с id = :id DELETE /users/:id - удаление пользователя. И все бы казалось хорошо, до тех пор пока мы не добрались до его величества браузера, аякса и кроссдоменных запросов. Дело в том, что каждый PUT и DELETE из браузера предвосхищается т.н. preflight запросом c глаголом OPTION. Этот самый запрос должен вернуть пачку заголовков, в духе: "да, так и быть вам можно совершить этот PUT запрос." И собственно вот какие вопросы меня беспокоят: 1) Какого черта? Зачем нужен этот OPTION? 2) Можно ли этого как-то избежать? 3) А как поступают корифеи REST? Идея использовать PUT, GET, POST, DELETE запросы выглядит очень многообещающей. Разумеется, перед тем как задать вопросы, я героически погуглил, и нашел вот что в MDN. Если коротко, то там сказано, что OPTION запрос посылается при аяксовом запросе если он PUT или DELETE, а также в любом случае, если были модифицированы заголовки. Собственно это и было подтверждено практикой. Теперь вопрос: как с этим жить дальше? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2012, 17:47 |
|
||
|
True REST and OPTION
|
|||
|---|---|---|---|
|
#18+
wertlex... 3) А как поступают корифеи REST? Идея использовать PUT, GET, POST, DELETE запросы выглядит очень многообещающей. ...DELETE PUT и пользуют что осталось :). Серьезно - как-то в практике надобности не ощущалось. Из кроссплатформенных заморок - часто тот необходимый объем, что нужно отправить не сервер, помещается в ГЕТ-хвост. Еще есть извращения, когда данные режут кусочками и ГЕТят как из пулемета :). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2012, 10:44 |
|
||
|
True REST and OPTION
|
|||
|---|---|---|---|
|
#18+
iConst, А как насчет модификации заголовков? Кажется удобным завернуть аутентификацию через HTTP заголовки. При этом снова выплывает метод OPTION, даже при POST и GET. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2012, 11:48 |
|
||
|
True REST and OPTION
|
|||
|---|---|---|---|
|
#18+
wertlexiConst, А как насчет модификации заголовков? Кажется удобным завернуть аутентификацию через HTTP заголовки. При этом снова выплывает метод OPTION, даже при POST и GET.Да, при работе с некоторыми сервисами такое делали. Но не помню к-либо проблем. По хттпс отправляем аут.параметры в заголовке, сервис жует и дает/не дает... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2012, 12:11 |
|
||
|
|

start [/forum/topic.php?fid=22&fpage=148&tid=1449009]: |
0ms |
get settings: |
9ms |
get forum list: |
11ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
74ms |
get topic data: |
6ms |
get forum data: |
2ms |
get page messages: |
24ms |
get tp. blocked users: |
1ms |
| others: | 235ms |
| total: | 366ms |

| 0 / 0 |
