Swagger - Hinzufügen mehrerer Sicherheitsparameter zu derselben Schemadefinition

8

Ziel

Um mehrere Sicherheits-Header zu jeder Anfrage innerhalb der API hinzuzufügen

Problem

Ich versuche, meinen Swagger YAML-Sicherheitsdefinitionen mehrere Header hinzuzufügen. Ich habe zwar die API durchsucht, aber nicht viel Glück Aber ich stelle fest, dass ich bei der "Try-This-Operation" einen auswählen muss. Anstatt beides zu können. Ist das korrekt oder mache ich etwas falsch?

Snippet

%Vor%

Alternative?

Wenn ich versuche, das unmöglich zu machen ... Ist es möglich, diese Parameter als Standard für alle Restpfade innerhalb des Swagger-Dokuments anzugeben?

Ich bin Swagger diese Woche neu, alle haben alles andere ohne Probleme gefunden ... aber ich kann kein gutes Beispiel dafür finden.

Wenn irgendeine Anleitung gegeben werden könnte, wäre das unglaublich hilfreich Vielen Dank

    
Jon Whitefield 19.06.2015, 15:27
quelle

1 Antwort

6

Dein SecurityDefintions Objekt sieht gut aus. Vorsicht,

%Vor%

bedeutet, dass der API-Client die userEmail Authentifizierung und clientId Authentifizierung gleichzeitig verwenden muss! Du hast wahrscheinlich gemeint:

%Vor%

Dies bedeutet, dass der API-Client entweder userEmail authentication oder clientId authentication verwenden muss.

Um zu vermeiden, dass diese Definition immer wieder wiederholt wird, können Sie die globale Eigenschaft security verwenden, die für alle Pfade ohne ihr eigenes security -Objekt gilt:

%Vor%

oder verwenden Sie eine Referenz für die Explizitheit oder für mehrere gemeinsame Werte:

%Vor%

Referenz

Die Swagger2-Spezifikation gibt unter Operation Object an:

  

security :   [ Sicherheitsanforderungsobjekt ]

     

Eine Erklärung, welche Sicherheitsschemata für diesen Vorgang angewendet werden. Die Werteliste beschreibt alternative Sicherheitsschemata, die verwendet werden können (dh es gibt ein logisches ODER zwischen den Sicherheitsanforderungen). Diese Definition überschreibt jede deklarierte Sicherheit auf oberster Ebene. Um eine Top-Level-Sicherheitsdeklaration zu entfernen, kann ein leeres Array verwendet werden.

Das Sicherheitsanforderungsobjekt wird wie folgt beschrieben:

  

Listet die erforderlichen Sicherheitsschemata zum Ausführen dieser Operation auf. Das Objekt kann mehrere Sicherheitsschemata enthalten, die alle benötigt werden (das heißt, es gibt ein logisches UND zwischen den Schemas).

     

Der für jede Eigenschaft verwendete Name MUSS einem Sicherheitsschema entsprechen, das in den Sicherheitsdefinitionen deklariert wurde.

    
Daniel Böhmer 15.12.2015 17:14
quelle

Tags und Links