2017-06-05 1 views
0

Ich weiß, hinzufügen, dass ich Header-Parameter für alle API in Prahlerei, wie beschrieben in Web Api How to add a Header parameter for all API in SwaggerWie Header-Parameter auf spezifische Controller/Methoden für API.NET Web-API

Mit diesem Ansatz hinzufügen kann, zeigen die Header-Parameter nach oben in swagger UI für alle APIs.

Aber nicht alle meine APIs/Controller benötigen den Header-Parameter, gibt es eine Möglichkeit, Header nur für bestimmte Controller oder sogar eine bestimmte API hinzuzufügen?

Antwort

1

Obwohl dieser Beitrag alt ist, dachte ich, es würde Newcomern helfen, wenn sie in der gleichen Situation stecken bleiben .

public class AddRequiredHeaderParameter : IOperationFilter 
{ 
    public void Apply(Operation operation, SchemaRegistry schemaRegistry, 
         ApiDescription apiDescription) 
    { 
     if (operation.parameters == null) 
     { 
      operation.parameters = new List<Parameter>(); 
     } 

     /*System.Diagnostics.Trace.WriteLine(apiDescription.RelativePath + 
      "=paath");*/ 
     if (apiDescription.RelativePath.Contains(***{url***})) 
     { 
      operation.parameters.Add(new Parameter 
      { 
       name = "X-User-Token", 
       @in = "header", 
       type = "string", 
       required = false, 
       description="" 
      }); 
      operation.parameters.Add(new Parameter 
      { 
       name = "authorization", 
       @in = "header", 
       description = "Token", 
       type = "string", 
       required = true 
      }); 
     } 
     else 
     { 
      operation.parameters.Add(new Parameter 
      { 
       name = "X-User-Token", 
       @in = "header", 
       type = "string", 
       required = false, 
       description="description" 
      }); 
     } 
    } 
}