REST с asp.net 2.0

Использование пакета stringi для извлечения соответствующих единиц:

library(stringi)

Raw <- c("6'2\"", "5'10\"", "5'5\"", "5'1\"", "5'5\"", "5'4\"")

## Extract Feet units by regex searching for 1 or more digits followed by a '
Feet <- stri_extract_first_regex(Raw, "[[:digit:]]+(?=')"))

## Extract Inch units by regex searching for 1 or 2 digits followed by a "
Inches <- stri_extract_first_regex(Raw, "[[:digit:]]{1,2}(?=\")"))

## Combine Feet and Inches
TotalInches <- 12 * as.numeric(Feet) + as.numeric(Inches)

## Convert to cm
CM <- 2.54 * TotalInches

print(CM)
# [1] 187.96 177.80 165.10 154.94 165.10 162.56

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

Еще одно соображение, принятое здесь в версии функции, заключается в замене NA совпадений на значения 0, чтобы действительные измерения, такие как 1' или 11", возвращали действительные результаты вместо NA.

FtInToCm <- function(x){
  Feet <- as.numeric(stringi::stri_extract_first_regex(Raw, "[[:digit:]]+(?=')"))
  Inches <- as.numeric(stringi::stri_extract_first_regex(Raw, "[[:digit:]]{1,2}(?=\")"))
  return(2.54 * (12 * ifelse(is.na(Feet),0,Feet) + ifelse(is.na(Inches),0,Inches)))
}

FtInToCm(Raw)
#[1] 187.96 177.80 165.10 154.94 165.10 162.56
13
задан weslleywang 28 March 2009 в 23:37
поделиться

7 ответов

Если Ваш поиск проекта, который обрабатывает сервис REST по шаблону, Вы корректны в высказывании, что существует не вне готового решения. Однако УСПОКОИТЕЛЬНЫЕ веб-сервисы являются возможным использованием WCF. Ключевая роль должна использовать несколько атрибутов при определении служебных функций, которые позволяют платформе.NET знать, что функция не ожидает SOAP. Основной атрибут для использования является атрибутом WebInvoke.

Вот пример из developer.com:

[OperationContract]
[WebInvoke(Method = "PUT", UriTemplate = "/admin/post/{id}")]
void UpdatePost(string id, Post post);

Вышеупомянутый код будет на самом деле определен в интерфейсе для Вашего веб-сервиса. Интерфейс создается автоматически при создании проекта веб-сервиса WCF. Фактический код для функции будет помещен в класс, используемый для реализации веб-сервиса.

Проверьте статью о developer.com для полного учебного руководства. Могло бы казаться подавляющим сначала, если Ваше новое для WCF, но после дайвинга в него я уверен, что Вы начнете брать вещи быстро. Вот ссылка для artile: http://www.developer.com/net/article.php/10916_3695436_1

Отвечать на все Ваши вопросы,

a) В.NET 2.0 необходимо смочь создать УСПОКОИТЕЛЬНЫЕ сервисы с помощью WSE2.0, но если бы у Вас есть опция использовать.NET 3.5, я настоятельно рекомендовал бы идти путем WCF, так как это намного легче и разработано с REST в памяти.

b) Преобразование Вашего проекта не будет трудно вообще. Это - просто вопрос предназначения для новой версии платформы в Ваших настройках проекта. Преобразование веб-сервиса от сервиса WSE2.0 до сервиса WCF будет немного более хитрым все же. Самый легкий способ сделать так состоял бы в том, чтобы скопировать код с каждой из различных функций веб-сервиса в класс, где Вы реализуете новую версию функции. Вставка копии shinanigans :)

c) Я не уверен, что этот стартовый набор - то, что Вы обращаетесь к. УСПОКОИТЕЛЬНЫЕ веб-сервисы должны полностью поддерживаться в WCF, который был полностью выпущен с 3,5

d) Было бы полезно понять WCF, по крайней мере, немного перед началом, но это не crutial для понимания этого полностью для начала работы. Я рекомендовал бы просто прочитать статью MSDN о WCF, по крайней мере, однажды и затем начал бы работать. Я уверен, что Вы столкнетесь с другими вопросами, как Вы начинаете, но можно искать те части, поскольку Вы сталкиваетесь с ними.

Так или иначе я надеюсь, что эта информация помогает. Удача Вам.

Править

Некоторые улучшения были сделаны в остальных миром. Как Darrel Miller упомянул в комментариях, WCF не был на самом деле создан с REST в памяти. Я неправильно произнес ранее. На самом деле платформа создается с SOAP в памяти, и атрибут WebInvoke заполняет разрыв. Хотя существует много дебатов вокруг темы (сеть API по сравнению с REST WCF), сеть ASP.NET, API является новой опцией для создания сервисов REST в.NET. Я настоятельно рекомендовал бы, чтобы любой, кто читает это сообщение и может использовать.NET 4.5 в их проекте, изучил его как опцию.

9
ответ дан 2 December 2019 в 00:03
поделиться

Вы могли посмотреть на использование ASP.NET MVC как УСПОКОИТЕЛЬНАЯ платформа веб-сервисов. WCF является, вероятно, способом пойти в длительный период, но MVC должен легко обработать его. Ваши действия должны были бы просто быть настроены для возврата JSON или XML, в зависимости от того, как Вы хотите сериализировать его. MVC предлагает и JsonResult и полностью настраиваемый ContentResult - т.е. Вы сериализируете свой ответ на свойство строки на результате и устанавливаете, это - тип и кодирование.

Примечание: MVC действительно требует 3,5 SP1, таким образом, это не будет 2,0 решениями. Если Вы потребуете 2.0, то необходимо будет посмотреть в другом месте.

2
ответ дан 2 December 2019 в 00:03
поделиться

If you want a framework built with REST in mind, you should have a look at OpenRasta...

http://openrasta.org/

4
ответ дан 2 December 2019 в 00:03
поделиться

Используйте REST WCF.

Сегодня можно использовать его. Библиотека WCF REST готова пойти, применимая в производстве.

Стартовый набор WCF (см. http://msdn.microsoft.com/en-us/netframework/cc950529.aspx) является чем-то еще. Это поставляет дополнительный материал; это включает ряд шаблонов проекта VS, документов, образцов и нескольких инструментов для создания приложений REST (клиент или сервер) с WCF. Один классный инструмент является дополнением команды "Paste Xml as Type" к Visual Studio.

С другой стороны, создавая клиент REST, в общем случае, я рекомендовал бы использовать в своих интересах блок HttpClient в стартовом наборе (Microsoft.Http.dll). Это является маленьким, простым, и полезным. Низкий риск и зависимость высокого значения даже в текущем состоянии "предварительного просмотра" Стартового набора.

Если Вы использовали просто единственный сервис REST, то Вам не нужен общий блок Microsoft.Http.dll; можно сделать весь материал, который это делает в некотором коде, который использует WebRequest. Но если Вы хотели более общий гибкий класс для управления клиентскими запросами REST, затем захватите тот Microsoft.Http.dll.

1
ответ дан 2 December 2019 в 00:03
поделиться

Я не уверен в решении REST для 2,0. Таким образом, я думаю, что WCF будет путем, необходимо будет пойти с этим. MSDN имеет долгое введение в него.

Моя персональная философия - то, что, если технология все еще в бета-версии затем, я не использовал бы ее для чего-то, что потенциально будет производственным приложением, таким образом, я запустил бы с WCF, так как она была представлена в 3,0 версиях платформы.

3.0 и 3.5 на самом деле обновление библиотек, но CLR все еще 2.0 поэтому, если библиотеки, которыми Вы пользуетесь, не удерживаются от использования или изменяются в новых платформах, это должно быть хорошо.

0
ответ дан 2 December 2019 в 00:03
поделиться

Смотрите на этот CodeProject для начальной точки. Это кажется несколько... hacky. Модернизация к WCF была бы более чистой.

0
ответ дан 2 December 2019 в 00:03
поделиться

REST или УСПОКОИТЕЛЬНОЕ Добавление этого к Системе. Сеть в web.config включит http, добираются и помещают.. иначе Подобный REST..., но не полный отдых.

<System.Web>
  <webServices>
            <protocols>
                <add name="HttpSoap"/>
                <add name="HttpPost"/>
                <add name="HttpGet"/>
            </protocols>
        </webServices>
</System.Web>
0
ответ дан 2 December 2019 в 00:03
поделиться
Другие вопросы по тегам:

Похожие вопросы: