Структура REST, где «обнаруживаемость» невозможна - PullRequest
1 голос
/ 21 февраля 2012

У меня проблемы с поиском какой-либо опции о том, как наилучшим образом определить службу REST / HATEOAS, когда исчерпывающий список доступных вариантов ресурсов невозможен из-за их огромного количества.

В частности, частьсистема будет представлять собой ресурсы для статистики использования индексированных слов в большом корпусе текста - что-то вроде GET http://mysite.org/word_statistics/foobar, которая возвращает информацию о foobar и URI в документы, где используется foobar.

Однако я могуне предоставляет какой-либо разумный способ, где приложение может обнаружить фактическую ссылку http://mysite.org/word_statistics/foobar - канонический подход, по-видимому, заключается в предоставлении ресурса, подобного http://mysite.org/word_statistics, который бы возвращал список отдельных URI, но вВ моем случае этот список будет около гигабайта, так что не очень практично.Поэтому мне нужно дать запрашивающему приложению что-то вроде http://mysite.org/word_statistics/{your_query_here},, но, похоже, RESTful способа для этого не существует.

Как это должно быть сделано правильно?

1 Ответ

2 голосов
/ 21 февраля 2012

Я бы просто следовал классической схеме поиска, используемой во многих местах.

  • http://example.org/word_statistics - это вернет все, слова и ссылки, но вы не хотите возвращать все, поэтому вы не возвращаете соответствующий код ошибки, возможно, с описанием того, что параметры запроса, которые вы поддерживаете. Или вы можете вернуть все, кроме страниц (10, 100, 1000 слов за раз ...).

  • http://example.org/word_statistics/{word} - статистика по данному слову.

  • http://example.org/word_statistics?like=word - возвращает список слов, которые являются «похожими» словами, может обрабатывать орфографические и звуковые ошибки или что-то подобное.

  • http://example.org/word_statistics?from_word=word1&to_word=word2 - возвращает список слов, который начинается в алфавитном порядке с from_word и переходит к to_word, но с теми же ограничениями и ограничениями подкачки, которые были бы для исходного списка.

Вы также можете сделать что-то вроде:

  • http://example.org/{document}/words - возвращает слова, которые есть только в этом документе, со ссылками на их статистику.

Все виды вещей, которые вы можете сделать здесь. Но суть в том, что базовый шаблон поиска должен быстро удовлетворить потребность.

...