Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / REST. Как сохранять сортировку? / 12 сообщений из 12, страница 1 из 1
22.05.2013, 11:51
    #38268008
Shitbox2
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
REST. Как сохранять сортировку?
Имеется приложение, построенное согласно REST и CRUD. Там есть редактируемое сортируемое меню. При изменении любой записи на сервер посылается массив всех записей. При изменении порядка — массив вида: id - newPos. Какими должны быть запросы, чтобы попадать под перечисленные выше концепции?
...
Рейтинг: 0 / 0
22.05.2013, 12:10
    #38268067
r u
r u
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
REST. Как сохранять сортировку?
Shitbox2,

какие запросы? http?
...
Рейтинг: 0 / 0
22.05.2013, 13:04
    #38268163
Shitbox2
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
REST. Как сохранять сортировку?
Ага HTTP Т.е. GET: site/menu и т. п.
...
Рейтинг: 0 / 0
22.05.2013, 21:12
    #38269075
Ренат
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
REST. Как сохранять сортировку?
Shitbox2,

PUT http://yousite.ru/menu

не?
...
Рейтинг: 0 / 0
22.05.2013, 22:07
    #38269140
Shitbox2
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
REST. Как сохранять сортировку?
И что по этой команде делать? Слать объект меню когда был добавлен новый пункт? Или когда был изменен? Или когда сортировка поменялась?
...
Рейтинг: 0 / 0
23.05.2013, 05:47
    #38269356
r u
r u
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
REST. Как сохранять сортировку?
Shitbox2,

а вы почитайте про REST что это и как работает. и вопросы сами отпадут
...
Рейтинг: 0 / 0
25.05.2013, 16:28
    #38273189
Shitbox2
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
REST. Как сохранять сортировку?
Читал несколько раз. Ну не врубаюсь! Если исходить из их принципов то будет:

GET: \menu — получение всех пунктов меню
PUT: \menu — создание всего меню
POST: \menu — обновление всего меню (вот тут есть смысл сохранять сортировку)
DELETE: \menu — удаление всего меню

GET: \menu\item — получение отдельного пункта меню (не могу представить когда такое требуется)
PUT: \menu\item — создание пункта меню
POST: \menu\item — обновление пункта меню
DELETE: \menu\item — удаление пункта меню

Рассмотрим подробнее POST: \menu — обновление всего меню
Оно делится на части:
- обновление сразу нескольких пунктов (например, заголовков)
- обновление порядка расположения пунктов.

В идеале, нужно при любом изменении отсылать на сервер всю структуру меню, но для сортировки это будет слишком накладно. Поэтому при перетаскивании отсылается лишь массив с новыми позициями.
...
Рейтинг: 0 / 0
25.05.2013, 16:56
    #38273205
Shitbox2
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
REST. Как сохранять сортировку?
И, кстати, как быть с добавлением пункта меню?

PUT: \menu\item (где item — айдишник), но айдишник-то назначается автоматически. Т.е. вместо item что угодно писать?
...
Рейтинг: 0 / 0
26.05.2013, 12:03
    #38273549
Ренат
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
REST. Как сохранять сортировку?
Shitbox2....
PUT: \menu — создание всего меню
POST: \menu — обновление всего меню (вот тут есть смысл сохранять сортировку)
....
если мне память не обманывает PUT это не только создание нового но и апдейт
а пост это все что не входит во все остальные методы

Я бы на вашем месте сделал так


GET /menu - возращает все меню
PUT /menu?Action=childs - записывает меню начиная с верхней иерархии
PUT /menu/123 - обновляет у меню с id=123 $_POST[title],$_POST[order] etc
PUT /menu/123?Action=childs - записывает у меню id=123 детей. $_POST[childs'] - массив из субменю. как имено хотите передавать придумать ваше право, можете даже сортировку сами высчитывать, как вариант:
$_POST[childs] = [{title:File,childs:[{title:Save as},...]}]
...
Рейтинг: 0 / 0
26.05.2013, 17:00
    #38273753
Shitbox2
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
REST. Как сохранять сортировку?
Спасибо! как раз узнал про действия в запросах. За одно перевел статью по теме: http://habrahabr.ru/post/180941/ Надеюсь, пригодится.

В дополнение хочу спросить. Как быть с запросами, не предполагающими получение данных? Т.е. всеми, кроме GET. В ответ сервер ничего не должен слать или все же отсылать текст статуса, true, например?
...
Рейтинг: 0 / 0
27.05.2013, 09:40
    #38274237
Inkelyad
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
REST. Как сохранять сортировку?
Shitbox2PUT: \menu\item (где item — айдишник), но айдишник-то назначается автоматически. Т.е. вместо item что угодно писать?
Без item, просто /menu (те в какой раздел добавить надо)
В теле запроса - текст позиции.
id назначается на сервере и возвращается в ответе на PUT
...
Рейтинг: 0 / 0
27.05.2013, 13:56
    #38274834
Shitbox2
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
REST. Как сохранять сортировку?
Inkelyadid назначается на сервере и возвращается в ответе на PUT
Вот тут загвоздка. Использую CRUD из $resource Ангуляра (думаю, и остальных так же). Если в ответ не слать ничего, то все ОК. Если же что-то прислать, то это добавится в ресурс. т.е., вернув айдишник, он перезапишет такой же на клиенте. Это не страшно. Но если верну служебную информацию (а такой случай есть), то она так же добавится в ресурс и потом будет при любом случае отправляться на сервер. Что делаю неправильно в этой цепочке?
...
Рейтинг: 0 / 0
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / REST. Как сохранять сортировку? / 12 сообщений из 12, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]