Ответ 1
Нет, это служба REST. Служба REST не предоставляет метаданные для создания прокси по ссылке службы (кроме служб данных WCF, которые имеют определенную форму метаданных). Для вызова службы используйте класс Web-API HttpClient
.
У меня есть решение MVC, на котором размещаются несколько маршрутов для служб Web API. В некоторых ситуациях я буду называть их с помощью JavaScript с помощью простого HTTP-get. В других случаях я хочу назвать их из некоторого .NET-кода, возможно, другого приложения MVC.
Есть ли способ добавить ссылку на службы к этим конечным точкам веб-API и создать инструментарий для создания прокси-клиента и типов CLR, как это было бы с типичной службой WCF? Я знаю, что здесь нет SOAP, но я читал, что это возможно, просто не так.
Нет, это служба REST. Служба REST не предоставляет метаданные для создания прокси по ссылке службы (кроме служб данных WCF, которые имеют определенную форму метаданных). Для вызова службы используйте класс Web-API HttpClient
.
У нас нет стандартного механизма для этого. REST - это создание систем, в которых все клиенты должны эволюционировать независимо от сервера. HTTP определяет единый интерфейс GET, PUT, POST, DELETE и т.д., Поэтому нет необходимости в описании метода. По обоим причинам не существует эквивалента REST WSDL, или я не должен говорить об эквиваленте, который действительно получил импульс среди сообщества REST (т.е. Есть WADL).
Точка связи в службах REST действительно связана с типом носителя/форматом тела. Для этого мы поддерживаем строго типизированный механизм. В Web API мы отправляем HttpClient (HttpClient on Nuget), который позволяет вам использовать тип CLR и преобразовать в некоторое представление. Из коробки он поддерживает XML и JSON.
Таким образом, вы можете создать тип CLR и поделиться им с клиентами, а затем использовать HttpClient на клиенте.
Чтобы создать сам тип, есть также несколько параметров.
Не напрямую, а из нескольких примеров, которые я видел, использование Web Api предполагает настройку ServiceContract. Похоже, что если вы добавите второй интерфейс контракта на обслуживание с регулярными атрибутами OperationContract и DataContract, как вам нужно, вы можете создать конечную точку со стандартным привязкой WCF по вашему выбору и соответствующей конечной точкой MEX. Служба будет реализовывать оба интерфейса, чтобы добавить ссылку на Service Reference WSDL-документ из стандартной конечной точки WCF.