Парсинг иерархических URL - PullRequest
       2

Парсинг иерархических URL

2 голосов
/ 10 августа 2010

Я новичок в REST и создаю сервис, используя предварительный просмотр стартового комплекта WCF REST 2 в C #. В большинстве примеров, показывающих, как определить UriTemplate, предполагается, что вы знаете точный формат URL и можете выбрать биты, необходимые для выполнения запроса. Но ...

Как мне разрешить пользователям вводить URL, который определяет иерархию, и как мне это обрабатывать? например скажем, я хочу предоставить онлайн-хранилище файлов, которое позволяет пользователю просматривать содержимое «папок» (все они обслуживаются из базы данных, а не из физических папок, разумеется)

http://mysite.com/MyService/Folder/root/level1/level2/level3

т.е. пользователь хочет перечислить содержимое «Папки», которая указана как «root / level1 / level2 / level3». Затем я могу выбрать этот путь и обслуживать данные из моей БД на основе этой информации.

Спасибо!

1 Ответ

2 голосов
/ 10 августа 2010

Вы можете использовать подстановочный знак (*) в вашем UriTemplate.Например:

[WebGet(UriTemplate="Folder/{*path}")]
public List<Files> GetStuff(string path) {
  //path is 'root/level1/level2/level3', which you can then parse
}

Вот ссылка на MSDN, которая предоставляет описание и правила для UriTemplates (правила примерно на 1/2 пути вниз).Главное, что нужно иметь в виду, это то, что вы можете иметь только один сегмент шаблона для строки шаблона.Надеюсь, это поможет!

Кстати, ссылка на документы MSDN для .NET 4. Я думаю, это также относится и к 3.5.

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