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

RESTful веб-сервис автоматически генерирует WADL

Я создал веб-службу RESTful на С# и развернул ее в IIS. Когда я обращаюсь к службе HeadOffice.svc, у меня есть возможность просмотреть WSDL (HeadOffice.svc? Wsdl). Я хотел бы иметь возможность просмотра WADL (например, HeadOffice.svc? Wadl). Возможно ли это?

Я читал вокруг места, что общее мнение заключается в том, что это не лучшая практика. Тем не менее, мне нужен WADL для школьного задания, поэтому любая помощь будет очень оценена.

4b9b3361

Ответ 1

Предположим, что вы уже знаете, что WADL не является стандартным/не поддерживается широко. И когда кому-то нужен WADL, может быть лучше использовать WS */SOAP service + WSDL. Поэтому ваша задача выглядит очень странно.

В любом случае WADL не поддерживается "из коробки" в любой реализации REST от Microsoft, ни в WCF 3.5 Rest Starter Kit, ни в WCF 4 REST, ни в ASP.NET WebAPI.

Нет надежных инструментов для WADL для .NET.

Когда ваша цель - генерировать код клиента С# с помощью WADL, поверьте, вы потратите больше времени на то, чтобы написать код клиента самостоятельно. И для этого есть лучшие решения.

Вы можете использовать новые классы, такие как HttpClient class или RestSharp или аналогичных библиотек, чтобы легко вручную записать ваш клиент, и он будет еще быстрее, чем поисковая система для надежного решения WADL для .NET.

Аналогичный вопрос о stackoverflow: Восстановительный сервис в .NET с WADL вместо WSDL

ОБНОВЛЕНИЕ - Swagger: В течение нескольких лет swagger зарекомендовал себя как такой формат. Вы можете начать писать определение сервиса с помощью swagger YAML в Редактор Swagger или позволить генерировать чванство из существующих сервисов для .NET с использованием Swashbuckle. Второй - это то, что у нас было с WSDL, а редактор swagger позволяет создавать клиентские и серверные шаблоны. Независимо от того, что вы создаете свой сервер или клиент или нет поклонников, swagger на самом деле очень хороший формат обмена контрактами для службы REST, а не идеальный, но хороший вариант.