2017-12-01 3 views
1

Ich erstelle eine OpenAPI-Spezifikation (zB "swagger v3") für eine bestehende öffentliche API. Diese API hat nicht autorisierte und oauth2 autorisierte Endpunkte.Wie werden sowohl nicht autorisierte als auch Oauth2-Endpunkte in einer einzigen openapi (v3) -Spezifikation angegeben?

Ich habe auf die Spezifikation auf Github verwiesen und mit Stackoverflow und Google gesucht. Ich habe Beispiele für Single-Use-Protokolle gefunden, aber nicht, wenn zwei Protokolle vorhanden waren.

Bietet einige weiße Ritter ein Beispiel oder eine Dokumentreferenz darüber, wie man mit openapi v3 für beide Protokolle kodiert? Vielen Dank!!

+0

Meinst du 1) path '/ a' verwendet OAuth, aber Pfad'/b' verwendet nicht auth, oder 2) der gleiche Pfad '/ a' kann sowohl mit OAuth als auch ohne auth aufgerufen werden? – Helen

+0

Um zu klären, Helen, meine Anfrage hatte mit Ihrem # 1 Beispiel zu tun. Bei dieser spezifischen Instanz handelt es sich um einen Endpunkt, der den Status des Servers überprüft. Ich habe dies in der Dokumentation als Endpunkt/ping gesehen, für den keine Authentifizierung erforderlich sein sollte. – Mike

Antwort

2

Es scheint, dass die Lösung kein Sicherheitsobjekt beim Definieren des Endpunkts einbetten soll.

Der Codeblock unten ist ein vereinfachter Schein des Codes, den ich verwendet habe, um zu dieser Antwort zu gelangen.

paths: 
    /admin/status: 
    get: 
     tags: 
     - admin 
     responses: 
     '200': 
      description: successful operation 

components: 
    securitySchemes: 
    BASIC_AUTH: 
     type: http 
     scheme: basic 

Alle anderen Endpunkte in der API, an der ich arbeite, erfordern eine Authentifizierung. Für diese ist das Sicherheitsobjekt obligatorisch.

+0

Das stimmt. Fügen Sie "Sicherheit" nicht auf der Stammebene der Spezifikation hinzu und fügen Sie stattdessen "Sicherheit" zu bestimmten Operationen hinzu, die dies erfordern. – Helen

Verwandte Themen