Я конвертирую SOAP API в REST в устаревшем веб-приложении.
Я начал с проекта webapi (C#) - настроил его с помощью swagger и swashbuckle. Я добавил к этому конечные точки с комментариями XML. При этом используется полная структура, а не. NET Core.
Все комментарии выглядят так, как и ожидалось в swagger-ui (XML генерация документов работает нормально, файл забирается swagger через config).
Этот проект ссылается на старые SOAP API-классы (написанные на VB. NET). Я пытался пометить эти классы с помощью RequiredAttribute
(например) и добавить к ним XML комментариев, но они не отображаются вообще в swagger-ui. Они настроены в очень мелкой иерархии классов (базовый класс, от которого все они наследуются - я включил эту информацию для полноты).
В этих других VB. NET проектах действительно включена документация XML, и я см. XML файлы с документацией, которую я добавил в папку bin проекта webapi, как и ожидалось. Я добавил их в конфигурацию swagger и считаю, что они загружены правильно (поскольку при загрузке страницы не возникает исключений).
Однако - ни одна из моделей в swagger-ui не отображает DataAnnotation
атрибуты, которые я добавил, или любую из XML документации в этих проектах VB. NET.
Я бы хотел, чтобы они отображались, а также были перечислены в разделе Modles swagger -ui (который сейчас не существует).
Что мне не хватает?
Обновление:
Я провел некоторое тестирование с внешним библиотека (C#, полный каркас), с использованием тестовой модели.
Это только что сработало, как и ожидалось - XML документация и DataAnnotation
атрибуты обнаруживаются и отображаются на swagger-ui без проблем.
Сейчас я подозреваю VB. NET, хотя, возможно, это проблема с проектами VB. NET, являющимися проектами WCF.
Обновление:
Сделано то же самое с новым VB. NET библиотека классов и все просто работает ™, так что ... возможно, иерархия классов или что-то с этими другими VB проекты (вероятно, не простые библиотеки классов или что-то еще мешает).
Обновление:
Это не наследование наследования.