Подтвердить что ты не робот

Добавить ссылку на службу службы веб-API ASP.NET

У меня есть решение MVC, на котором размещаются несколько маршрутов для служб Web API. В некоторых ситуациях я буду называть их с помощью JavaScript с помощью простого HTTP-get. В других случаях я хочу назвать их из некоторого .NET-кода, возможно, другого приложения MVC.

Есть ли способ добавить ссылку на службы к этим конечным точкам веб-API и создать инструментарий для создания прокси-клиента и типов CLR, как это было бы с типичной службой WCF? Я знаю, что здесь нет SOAP, но я читал, что это возможно, просто не так.

4b9b3361

Ответ 1

Нет, это служба REST. Служба REST не предоставляет метаданные для создания прокси по ссылке службы (кроме служб данных WCF, которые имеют определенную форму метаданных). Для вызова службы используйте класс Web-API HttpClient.

Ответ 2

У нас нет стандартного механизма для этого. REST - это создание систем, в которых все клиенты должны эволюционировать независимо от сервера. HTTP определяет единый интерфейс GET, PUT, POST, DELETE и т.д., Поэтому нет необходимости в описании метода. По обоим причинам не существует эквивалента REST WSDL, или я не должен говорить об эквиваленте, который действительно получил импульс среди сообщества REST (т.е. Есть WADL).

Точка связи в службах REST действительно связана с типом носителя/форматом тела. Для этого мы поддерживаем строго типизированный механизм. В Web API мы отправляем HttpClient (HttpClient on Nuget), который позволяет вам использовать тип CLR и преобразовать в некоторое представление. Из коробки он поддерживает XML и JSON.

Таким образом, вы можете создать тип CLR и поделиться им с клиентами, а затем использовать HttpClient на клиенте.

Чтобы создать сам тип, есть также несколько параметров.

  • Создайте его вручную.
  • Используйте инструмент "Вставить как Xml" и используйте функцию автоматической страницы страницы api api для копирования/вставки.

Ответ 3

Не напрямую, а из нескольких примеров, которые я видел, использование Web Api предполагает настройку ServiceContract. Похоже, что если вы добавите второй интерфейс контракта на обслуживание с регулярными атрибутами OperationContract и DataContract, как вам нужно, вы можете создать конечную точку со стандартным привязкой WCF по вашему выбору и соответствующей конечной точкой MEX. Служба будет реализовывать оба интерфейса, чтобы добавить ссылку на Service Reference WSDL-документ из стандартной конечной точки WCF.