Изменить имена свойств Swagger - PullRequest
0 голосов
/ 24 июня 2019

Q. 1 Я пытаюсь подтолкнуть сущность в CRM. JSON выглядит так:

{
    "sub_AssignedToCompanyId@odata.bind": "/accounts(f52f9dd7-35e5-e711-813b-480fcff40721)"

}

Теперь у моего класса C # есть свойство AssignedToCompany, которое выглядит следующим образом:

[JsonProperty(PropertyName = "sub_AssignedToCompanyId@odata.bind")]
public int AssignedToCompany{ get; set; }

Мне нужен способ сериализации в sub_AssignedToCompanyId@odata.bind (что я и сделал с помощью JsonProperty («sub_AssignedToCompanyId@odata.bind»). Но тогда определение чванства выглядит не очень хорошо. Я хочу swagger определение этого свойства, чтобы сказать "assignToCompanyId". Есть ли в любом случае, чтобы сделать это? Я использую .Net Framework Web API.

Q.2 И есть ли способ, которым я могу перевести этот вход: f52f9dd7-35e5-e711-813b-480fcff40721

к этому выводу: / счета (f52f9dd7-35e5-e711-813b-480fcff40721)

автоматически при сериализации?

1 Ответ

1 голос
/ 24 июня 2019

Вы можете использовать IOperationFilter, ISchemaFilter или IDocumentFilter. В зависимости от ваших потребностей.

Примером ISchemaFilter может быть:

public class ODataTypeSchemaFilter : ISchemaFilter
{
   private const string propToRename = "sub_AssignedToCompanyId@odata.bind";

   public void Apply(Schema schema, SchemaRegistry schemaRegistry, Type, type)
   {
      if (type == typeof(MyObject))
      {
         // adding new schema property, and removing the old one
         schema.properties.Add(nameof(MyObject.AssignedToCompany), schema.properties[propToRename]);
         schema.properties.Remove(propToRename);
      }
   }
}

public class MyObject
{
   [JsonProperty(PropertyName = "sub_AssignedToCompanyId@odata.bind")]
   public int AssignedToCompany { get; set; }
}

Это мощная функция, изменение схемы может вызвать другие проблемы, если не будет сделано должным образом. См. Swagger документацию для получения дополнительной информации. Я использовал все три в своем опыте, просто найдите то, что соответствует вашим потребностям лучше всего.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...