2016-07-14 21 views

Antwort

8

schreiben: Haustiere und lesen: Haustiere sind Oauth2 scopes und sind nicht auf OpenAPI (fka Swagger.) operations categorization bezogen.

OAuth2 Tive

Wenn eine API mit Oauth gesichert ist, Bereiche verwendet werden, um unterschiedliche Rechte/Privilegien an die API Verbraucher zu geben. Bereiche werden durch einen Namen definiert (Sie können verwenden, was Sie wollen).

Oauth Bereiche Zulassung in SwaggerUI, die als API Verbraucher handeln kann:

  • Lese: Haustiere: enter image description here

    In diesem Fall ist diese oauth2 gesicherte API-2-Bereiche vorschlagen ändern Haustiere in Ihrem Konto

  • schreiben: Haustiere: Lesen Sie Ihre Haustiere

Bei der Beschreibung einer API mit einem Op enAPI (fka. Swagger) Spezifikation, können Sie diese Bereiche wie in der Frage gezeigt definieren.

Die Definition dieses Bereichs ist jedoch nur dann sinnvoll, wenn Sie nicht deklarieren, welche Operation von diesen Bereichen abgedeckt wird. Es wird durch das Hinzufügen dieser zu einer Operation durchgeführt:

 security: 
     - petstore_auth: 
      - read:pets 

In diesem Beispiel ist der Betrieb nur an den API Verbraucher zugänglich, wenn er erlaubt wurde, den read:pets Umfang nutzen zu können. Beachten Sie, dass eine einzelne Operation zu mehreren oauth2-Bereichen und auch mehreren Sicherheitsdefinitionen gehören kann.

Sie können mehr über Sicherheit in OpenAPI lesen (fka. Swagger) hier

OpenAPI (fka. Swagger) Betrieb Kategorisierung

Unabhängig von OAuth2 Umfang, wenn Sie eine API-Operationen kategorisieren müssen, können Sie tags verwenden:

 tags: 
     - pets 

dies zu einer Operation Durch die Zugabe wird es in der Kategorie pets gestellt werden. Eine einzelne Operation kann mehreren Kategorien angehören.

Diese Kategorien werden von SwaggerUI verwendet, um Operationen neu zu gruppieren. Im Screen-Capture unten, können wir drei Kategorien (pet, zu speichern und Benutzer) finden Sie unter: enter image description here Sie können mehr über Kategorien lesen Sie hier:

Hier ist das vollständige Beispiel mit Oauth2-Bereichen und einer Kategorie

swagger: "2.0" 
info: 
    version: "1.0.0" 
    title: Swagger Petstore 

securityDefinitions: 
    petstore_auth: 
    type: oauth2 
    authorizationUrl: http://petstore.swagger.io/api/oauth/dialog 
    flow: implicit 
    scopes: 
     write:pets: modify pets in your account 
     read:pets: read your pets 

paths: 
    /pets/{petId}: 
    parameters: 
     - in: path 
     name: petId 
     description: ID of pet that needs to be fetched 
     required: true 
     type: integer 
     format: int64 
    get: 
     tags: 
     - pets 
     summary: Find pet by ID 
     responses: 
     "404": 
      description: Pet not found 
     "200": 
      description: A pet 
      schema: 
      $ref: "#/definitions/Pet" 
     security: 
     - petstore_auth: 
      - read:pets 
    delete: 
     tags: 
     - pets 
     summary: Deletes a pet 
     responses: 
     "404": 
      description: Pet not found 
     "204": 
      description: Pet deleted 
     security: 
     - petstore_auth: 
      - write:pets 

definitions: 
    Pet: 
    type: object 
    properties: 
     id: 
     type: integer 
     format: int64 
     name: 
     type: string 
     example: doggie 
+0

Vielen Dank, @Arnaud! BTW, ich hatte schon geplant, eure "writing-openapi-swagger-specification-tutorial" -Reihe zu lesen! :) – lfree