2016-02-04 3 views
-4

У меня есть xsd в качестве контракта на мой веб-сервис. Веб-сервис реализован как web api, я ищу инструмент, который генерирует веб-модель api из xsd. Этот инструмент должен добавлять атрибуты из xsd, поэтому asp.Net будет знать, чтобы подтвердить запрос.Auto generate web api model от xsd

+1

Вопросы, предлагающие нам рекомендовать или находить книгу, инструмент, библиотеку программного обеспечения, учебное пособие или другой ресурс вне сайта, не относятся к теме для переполнения стека, поскольку они склонны привлекать упрямые ответы и спам. Вместо этого [описать проблему] (http://meta.stackoverflow.com/questions/254393/what-exactly-is-a-commcommation-question) и что было сделано до сих пор, чтобы решить эту проблему. –

+0

Не знаю, как я могу задать его по-разному ... Я сталкиваюсь с таким трудным переводом xsd на веб-модель api. и я спросил, есть ли автоматизация, которую я могу использовать? xsd длинный и сложный. –

+0

В зависимости от того, что вы подразумеваете под «автоматизацией для перевода XSD в модель Web API». XSD будет содержать только определения типов, а не Web API. Вы можете использовать «XSD.EXE» из командной строки в файле .XSD, чтобы сгенерировать классы C#. –

ответ

0

Способ для этого - использовать XSD.EXE для создания классов C# (POCO), в которых вы нуждаетесь. Затем используйте строительные леса с шаблонами T4 для генерации кода API.

Я хотел бы начать, глядя на блоге ScottGu в: http://weblogs.asp.net/scottgu/asp-net-mvc-1-0-release-candidate-now-available

Это немного старый, но до сих пор relvant.

Что я хотел бы сделать, это создать пользовательские scaffolders для создания контроллеров WebAPI, вот описание: https://www.credera.com/blog/technology-insights/microsoft-solutions/create-custom-scaffold-templates-asp-net-mvc/

Короткая версия: % ProgramFiles% \ Microsoft Visual Studio 12.0 \ Common7 \ IDE \ Extensions \ Microsoft \ Web \ Mvc \ Scaffolding \ Templates содержит исходные шаблоны. Скопируйте их в свой проект под папкой \ CodeTemplates. Измените их по мере необходимости (ex change: Controller to ApiController)

Соглашение состоит в том, что механизм лесов использует шаблоны в папке проекта CodeTemplates, если он существует, вместо глобальных шаблонов.