2015-04-23 12 views
12

Swagger supporta la sicurezza di api key, ma sembra essere limitato a un singolo parametro.Utilizzo di una chiave API e segreto per lo schema di sicurezza Swagger

C'è un modo per definire un set di parametri (chiave e segreto) che sono previsti come parametri in una richiesta?

Oppure è l'unico modo per saltare lo schema di sicurezza e aggiungere solo quei parametri ad ogni richiesta?

+0

Hai provato questo? http://stackoverflow.com/questions/26742521/sending-dynamic-custom-headers-in-swagger-ui-try-outs – suresh2

+0

@ suresh2 Funzionerebbe, ma cercava una risposta se è possibile farlo come lo schema di sicurezza. Per quanto ne so, sarebbe solo un parametro obbligatorio. Che può funzionare, voglio solo usare lo schema di sicurezza, se possibile. –

risposta

16

Sì, OpenAPI (Swagger) 2.0 e 3.0 consentono di definire più definizioni di sicurezza e contrassegnare un'operazione come richiesta di più valori, ad esempio una coppia di chiavi API.

Nell'esempio seguente, sto definendo due chiavi API, Key e SecretKey, che devono essere entrambi presenti nelle intestazioni di ciascuna richiesta per poter essere autenticati.

swagger: '2.0' 
info: 
    version: 0.0.0 
    title: Simple API 
securityDefinitions: 
    key: 
    type: apiKey 
    in: header 
    name: Key 
    secret_key: 
    type: apiKey 
    in: header 
    name: SecretKey 
paths: 
    /: 
    get: 
     # Both 'Key' and 'SecretKey' must be used together 
     security: 
     - key: [] 
      secret_key: [] 
     responses: 
     200: 
      description: OK 

noti che questo è diverso da

 security: 
     - key: [] 
     - secret_key: [] # <-- Note the leading dash here 

che significa l'endpoint aspetta sia Key o SecretKey, ma non entrambe.

+0

Grazie! Completamente mancato il 'può avere più schemi di sicurezza 'e ciò che praticamente significava nelle specifiche. –

+1

btw, l'editor di Swagger ora supporta più titoli. Il problema è risolto. – Mohsen

+10

Quindi, dove impostare la chiave API segreta? – ChrisRich

Problemi correlati