2009-08-31 3 views
1

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

Ну, на самом деле я создаю веб-приложение, в частности, на рельсах. Все модели были построены, и теперь я притворялся, что начал строить контроллеры и маршрутизацию. Итак, у меня есть пара вопросов относительно правильного способа построения этих маршрутов.

Первое, что я сделал, это поиск через полезные приложения и проверка того, как они построили свою структуру маршрутизации. У Twitter есть хорошие, я заметил, что они создали сеанс для каждого входа, и вся следующая маршрутизация основана на корневом уровне, поэтому пользователь/учетная запись наследуется. (То есть: http://twitter.com/status/update)


Ну, основная структура моего приложения является:

счета/блог/# {ID}/страниц/# {ID} ... и так далее ...

Собственно, владелец учетной записи может быть разработчиком или просто простым пользователем, в то время как у разработчика есть больше возможностей для решения. Но это та же модель только с attr разработчик: Boolean, устанавливающий его разрешения.

счета {: идентификатор,: имя пользователя, адрес: Электронный адрес,: разработчик}

Так что мой вопрос: Какой самый лучший способ, чтобы создать некоторые интересные маршруты, чтобы создать эту учетную запись, если у меня есть два разных типа пользователь/разработчик?

Я думаю, если это будет правильно:

/счет/создать для простых пользователей

/счет/создать тип = разработчик для разработчиков

Могу ли я использовать дополнительные? параметры, объявленные в почтовом запросе, или, по крайней мере, на GET для отображения формы?


И в то же время я проверил некоторые руководства, и я прочитал о какой-то RESTful маршрутизации , где мы можем иметь что-то вроде:

счета/1/блоги/1/Страницы/1

, но, например, stackoverflow.com wesite действует так:

/пользователей/165750/ludicco и /пользователи/править/165750

Значит, он использует немного другой порядок. это правильный отформатированный способ сделать это?


Извините, но я потерян, поэтому я не знаю, как продолжить работу на этом поле. Любая помощь или советы по этому поводу будут высоко оценены.

Заранее спасибо

ответ

1

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

создать: Поскольку вы публикуете имя/адрес электронной почты/и т. Д. данных, я бы опубликовал флаг разработчика. Мне нужно узнать больше о вашей форме, чтобы сказать, является ли параметр разработчика хорошей идеей; в этом случае это не имеет большого значения. Я бы сказал, если это флаг в вашем представлении формы регистрации, параметр хорош, и если они действительно разные страницы, другой базовый url будет иметь больше смысла.

обычные страницы: ваш accounts/1/blogs/1/pages/1 очень однозначен для людей и должен быть легким на машинах. Stackoverflow использует более компактную нотацию с некоторой избыточной информацией, помогающей людям и поисковым системам. Используйте то, что вам больше нравится.

+0

Ну, это была очень хорошая помощь Джастину, спасибо за это. Я буду больше читать о REST и так, где я могу получить. Первоначально я прочитал эту статью wonderfullyflawed.com/2009/07/... И это заставило меня подумать о возможном будущем использовании в качестве API, поэтому я получил некоторые идеи оттуда. поскольку это было очень полезно для меня. Это совершенно новый мир для меня, но мне это очень нравится, так как это не сложно, мне просто интересно сделать все правильно, но, как вы сказали, для начала это своего рода продолжающаяся вещь, и я могу продолжать модифицировать свой код позже. Большое спасибо Justin – zanona

Смежные вопросы