Имеет ли смысл использовать внутренние якоря для фильтрации представления REST API? - PullRequest
0 голосов
/ 31 марта 2010

В продолжение до моего предыдущего вопроса о REST URI для получения статистической информации для ресурса веб-форума, я хочу знать, возможно ли использовать внутренние якоря в качестве подсказок фильтра. Смотрите пример ниже:

а) Получить всю статистику:

GET /group/5t7yu8i9io0op/stat
{ 
    group_id: "5t7yu8i9io0op",
    top_ranking_users: {
      [ { user: "george", posts: 789, rank: 1 }, 
        { user: "joel", posts: 560, rank: 2 }  ...]
      },
    popular_topics: {
      [ ... ]
    },
    new_topics: {
      [ ... ]
    }
}

б) ПОЛУЧИТЬ только популярные темы

GET /group/5t7yu8i9io0op/stat#popular_topics
{ 
    group_id: "5t7yu8i9io0op",
    popular_topics: {
      [ ... ]
    }
}

в) ПОЛУЧИТЬ только самых популярных пользователей

GET /group/5t7yu8i9io0op/stat#top_ranking_users
{ 
    group_id: "5t7yu8i9io0op",
    top_ranking_users: {
      [ { user: "george", posts: 789, rank: 1 }, 
        { user: "joel", posts: 560, rank: 2 }  ...]
    }
}

Или я должен использовать параметры запроса?

Ответы [ 4 ]

2 голосов
/ 31 марта 2010

Не уверен, что именно вы пытаетесь сделать, но убедитесь, что вы понимаете, что идентификаторы фрагментов не видны на сервере, они отсекаются соединителем клиента.

См .: http://www.nordsc.com/blog/?p=17

0 голосов
/ 31 марта 2010

Нет, вы не можете этого сделать, потому что, как указывает Ян, сервер никогда не увидит этот идентификатор фрагмента. Буквально, эта часть URL не достигнет сервера.

0 голосов
/ 31 марта 2010

Я думаю, что было бы больше смысла иметь:

/group/5t7yu8i9io0op/stat/top_users
/group/5t7yu8i9io0op/stat/popular_topics
/group/5t7yu8i9io0op/stat/new_topics
/group/5t7yu8i9io0op/stat/user/george
0 голосов
/ 31 марта 2010

Я никогда не видел, чтобы якоря использовались таким образом - это интересно. При этом я бы предложил использовать параметры запроса по нескольким причинам:

  1. Они стандартные - и пользователям вашего API будет удобно с ними. Нет ничего более раздражающего, чем иметь дело с причудливым API.

  2. Многие фреймворки будут автоматически анализировать параметры запроса и устанавливать их в словаре объекта запроса (или любого другого аналога, существующего в вашей библиотеке фреймворка / http-сервера).

...