2017-01-19 4 views
0

У меня есть конечная точка api, которая принимает пользовательский заголовок. Этот заголовок является объект, который выглядит следующим образом:Добавить определение типа для типа, не используемого в каком-либо методе api

User: {"UserId":"someguid"} 

Если у меня есть тип в качестве параметра в методе апи я могу сделать следующим образом:

public class AddFileParamTypes : IOperationFilter 
{ 
    public void Apply(Operation operation, SchemaRegistry schemaRegistry, ApiDescription apiDescription) 
    { 
     if (operation.operationId == "FileDelivery_Post") 
     { 

      operation.consumes.Add("multipart/form-data"); 
      operation.parameters.Add(new Parameter 
      { 
       name = "file", 
       required = true, 
       type = "file", 
       @in = "formData" 
      }); 
      operation.parameters.Add(new Parameter 
      { 
       name = "User", 
       required = true, 
       schema = new Schema() { @ref = "#/definitions/User" }, 
       @in = "header" 
      }); 
     } 
    } 
} 

Но тип пользователя не будет параметр для метода, поэтому как добавить определение в swashbuckle?

ответ

0

Узнал, это было просто, но не хватает в документации:

public class AddFileParamTypes : IOperationFilter 
{ 
    public void Apply(Operation operation, SchemaRegistry schemaRegistry, ApiDescription apiDescription) 
    { 
     if (operation.operationId == "FileDelivery_Post") 
     { 

      operation.consumes.Add("multipart/form-data"); 
      operation.parameters.Add(new Parameter 
      { 
       name = "file", 
       required = true, 
       type = "file", 
       @in = "formData" 
      }); 
      operation.parameters.Add(new Parameter 
      { 
       name = "User", 
       required = true, 
       schema = schemaRegistry.GetOrRegister(typeof(User)), 
       @in = "header" 
      }); 
     } 
    } 
} 
Смежные вопросы