URI для веб-служб RESTful — часть 2

Я пытаюсь понять, как создавать URI для веб-служб RESTful. Предположим, у меня есть сайт знакомств, будет ли правильно следующее:

  • domain.com/profiles/ ‹-- список профилей
  • domain.com/profiles/123/ ‹-- номер профиля 123
  • domain.com/profiles/123/likes/ ‹ -- список лайков профиля 123
  • domain.com/profiles/123/likes/2/ ‹ -- 2-й пункт в списке лайков профиля 123

Я близко или я понял это совершенно неправильно?


person StackOverflowNewbie    schedule 23.10.2010    source источник
comment
stackoverflow.com/questions/4003665/   -  person StackOverflowNewbie    schedule 23.10.2010
comment
Я нашел следующий пост полезным, когда был на вашем месте: «понимание кодов ошибок и аутентификации остальных глаголов»> stackoverflow.com/questions/2001773/. Сосредоточьтесь на правильном определении ресурсов; после этого URL-адреса должны быть бесплатными.   -  person Roatin Marth    schedule 23.10.2010
comment
Как выглядят ваши URI, не имеет значения. Нет более «спокойных» URI, чем другие. Не существует такой вещи, как «спокойный» URI. Ничего о том, как выглядят ваши URI, не делает вашу службу удовлетворяющей условиям REST.   -  person rojoca    schedule 23.10.2010


Ответы (2)


Просто подумайте о том, обеспечивают ли ваши URL-адреса значимые операции для запросов GET, POST, PUT и DELETE. Вот что такое REST, а не красивые URL-адреса.

person Paul Dixon    schedule 23.10.2010

Похоже, вы пытаетесь вставить сюда цепочку методов. Если вы используете фреймворк, ваш метод может выглядеть так:

 function profiles($pid=0,$likes=0,$which=0){} 

которые могут быть более сложными для программирования.

когда вы действительно собираетесь:

 function listProfiles(){}
 function getProfile($profileID){}
 function getLikes($profileID){}
 function getLikeElement($profileID,$int){}

При этом ваша реализация полностью зависит от вас. Нет единого стандарта.

person Brandon Frohbieter    schedule 23.10.2010
comment
Конечно, у меня, вероятно, будут такие методы. Однако мой вопрос касается URI, RESTful. - person StackOverflowNewbie; 23.10.2010
comment
Я пытаюсь сказать, что это не имеет значения :) - person Brandon Frohbieter; 23.10.2010