Javascript-форум (https://javascript.ru/forum/)
-   ExtJS (https://javascript.ru/forum/extjs/)
-   -   DELETE и rest (https://javascript.ru/forum/extjs/63270-delete-i-rest.html)

Capito882 27.05.2016 20:59

DELETE и rest
 
Подскажите, кто как решал вопрос с

type: 'rest',
batchActions: true,

Дело в том, насколько я понимаю, спецификация REST не позволяет отправлять в теле запроса какие-то данные. Некоторые библиотеки забивают на это, а Sencha строго следует спецификации видимо.
Соотв. нельзя удалить скажем 100 записей одним запросом.

Кто как вышел из положения?

nohuhu 27.05.2016 21:17

Ext Direct вам в помощь: http://examples.sencha.com/extjs/6.0...ensink/#direct.

Capito882 27.05.2016 21:40

Эм... Ext.Direct вроде по JSON-RPC работает, a не REST?

khusamov 27.05.2016 22:00

Через опцию extraParams можно передать дополнительные параметры
http://docs.sencha.com/extjs/6.0/6.0...fg-extraParams

khusamov 27.05.2016 22:00

Цитата:

Сообщение от Capito882 (Сообщение 417835)
Эм... Ext.Direct вроде по JSON-RPC работает, a не REST?

Он предлагает вообще забыть про REST.

Capito882 27.05.2016 22:29

Забыть про REST не рассматривается -) Я знаю, что у него есть проблемы и т.п. но все же плюсов больше.

Цитата:

Сообщение от khusamov
Через опцию extraParams

Я правильно понял, что он будет в тело запроса эти параметры пихать?
То есть, урл будет не тронут, типа:

DELETE /app/users
а в теле будет допустим массив [1,2,3]

Так?

khusamov 27.05.2016 22:45

Не знаю. Обычно в запросе, а не в теле. Даже при POST

Capito882 27.05.2016 22:49

Тогда это уже не REST :(

Ладно, спс. Будем копать дальше -)


P.S. Сам подумал ща че сказал, по идее DELETE /app/users уже вообще не REST -)

kolka 28.05.2016 01:21

У меня в таком случае как раз на практике:
DELETE /app/users
а в теле будет допустим массив [1,2,3]

все работает на ура :)

nohuhu 31.05.2016 20:59

@kolka,

Работает, но это уже не REST. Это начатки доморощенного RPC, несовместимые ни с чем - включая ваше же приложение через пару лет.

@Capito882,

Ext Direct это один из вариантов RPC. Direct похож на JSON-RPC во многом, но напрямую не совместим. Какое-то время назад я игрался с идеей убить Direct и заменить его на JSON-RPC, но потом передумал: JSON-RPC слишком уж примитивный, а если его нафаршировать до нужного состояния, то получится фактически опять Direct, и опять несовместимый с оригиналом.

Поэтому вместо того, чтобы Direct убивать, я его пофиксил. :) У нас на Direct многие внутренние проекты живут: портал поддержки, Fiddle, и др. На Fiddle нагрузка довольно приличная, на портал ещё выше, но транспорт работает адекватно. Я поэтому Direct и рекламирую, что решение проверено на многих зрелых проектах, и не только в Sencha.


Часовой пояс GMT +3, время: 12:15.