Я хочу разработать новый API.Он должен соединять Dynamics CRM и фронт-разработчиков.
На сегодняшний день разработан «обходной путь»:
- Заполните файл Excel для описания CRM и пользовательских объектов (с fetchXml,...)
- Записать и объединить строки для записи файла YAML.
- Скопировать этот файл в редактор swagger и выполнить тесты с почтальоном
На первом этапеЯ хочу создать схему без конкатенации строк ... (временно ожидая замены файла Excel на OData и ASP.NET Core, чтобы получить что-то более мощное)
На данный момент я использую отражение для построенияобъекты из файла Excel:
using System.Reflection;
using System.Reflection.Emit;
using Swashbuckle.Swagger;
...
var assemblyName = new AssemblyName(Guid.NewGuid().ToString();
var assemblyBuilder = AssemblyBuilder.DefineDynamicAssembly(assemblyName, AssemblyBuilderAccess.Run);
var moduleBuilder = assemblyBuilder.DefineDynamicModule("Module");
var typeBuilder = moduleBuilder.DefineType(entity.CrmEntityName);
foreach (var attribute in entity.Attributes)
{
Type t = typeof(int);
switch (attribute.DataType.ToLower())
{
case "string":
t = typeof(string);
break;
case "integer":
t = typeof(int);
break;
case "date":
t = typeof(DateTime);
break;
}
typeBuilder.DefineField(attribute.CrmName, t.GetType(), FieldAttributes.Public);
var type = typeBuilder.CreateType();
// create the Swagger models here
}
Как я могу сгенерировать свой чванство из этих типов и свойств?Я просматривал объект с именем Schema
, который содержит имя и другое Schema
, я не знаю, является ли это неправильным способом ...