Wie importiere ich Swagger-APIs in Postman?


101

Kürzlich habe ich erholsame APIs mit SpringMvc und swagger-ui (v2) geschrieben. Ich habe die Importfunktion in Postman bemerkt:

Geben Sie hier die Bildbeschreibung ein

Meine Frage ist also, wie man die Datei erstellt, die Postman benötigt.

Ich kenne Swagger nicht.


6
Mann das ist wirklich toll ... !!!
— Adelin

Antworten:


111

Ich arbeite an PHP und habe Swagger 2.0 verwendet, um die APIs zu dokumentieren. Das Swagger-Dokument wird im laufenden Betrieb erstellt (zumindest verwende ich das in PHP). Das Dokument wird im JSON-Format generiert.

Beispieldokument

{
    "swagger": "2.0",
    "info": {
    "title": "Company Admin Panel",
        "description": "Converting the Magento code into core PHP and RESTful APIs for increasing the performance of the website.",
        "contact": {
        "email": "jaydeep1012@gmail.com"
        },
        "version": "1.0.0"
    },
    "host": "localhost/cv_admin/api",
    "schemes": [
    "http"
],
    "paths": {
    "/getCustomerByEmail.php": {
        "post": {
            "summary": "List the details of customer by the email.",
                "consumes": [
                "string",
                "application/json",
                "application/x-www-form-urlencoded"
            ],
                "produces": [
                "application/json"
            ],
                "parameters": [
                    {
                        "name": "email",
                        "in": "body",
                        "description": "Customer email to ge the data",
                        "required": true,
                        "schema": {
                        "properties": {
                            "id": {
                                "properties": {
                                    "abc": {
                                        "properties": {
                                            "inner_abc": {
                                                "type": "number",
                                                    "default": 1,
                                                    "example": 123
                                                }
                                            },
                                            "type": "object"
                                        },
                                        "xyz": {
                                        "type": "string",
                                            "default": "xyz default value",
                                            "example": "xyz example value"
                                        }
                                    },
                                    "type": "object"
                                }
                            }
                        }
                    }
                ],
                "responses": {
                "200": {
                    "description": "Details of the customer"
                    },
                    "400": {
                    "description": "Email required"
                    },
                    "404": {
                    "description": "Customer does not exist"
                    },
                    "default": {
                    "description": "an \"unexpected\" error"
                    }
                }
            }
        },
        "/getCustomerById.php": {
        "get": {
            "summary": "List the details of customer by the ID",
                "parameters": [
                    {
                        "name": "id",
                        "in": "query",
                        "description": "Customer ID to get the data",
                        "required": true,
                        "type": "integer"
                    }
                ],
                "responses": {
                "200": {
                    "description": "Details of the customer"
                    },
                    "400": {
                    "description": "ID required"
                    },
                    "404": {
                    "description": "Customer does not exist"
                    },
                    "default": {
                    "description": "an \"unexpected\" error"
                    }
                }
            }
        },
        "/getShipmentById.php": {
        "get": {
            "summary": "List the details of shipment by the ID",
                "parameters": [
                    {
                        "name": "id",
                        "in": "query",
                        "description": "Shipment ID to get the data",
                        "required": true,
                        "type": "integer"
                    }
                ],
                "responses": {
                "200": {
                    "description": "Details of the shipment"
                    },
                    "404": {
                    "description": "Shipment does not exist"
                    },
                    "400": {
                    "description": "ID required"
                    },
                    "default": {
                    "description": "an \"unexpected\" error"
                    }
                }
            }
        }
    },
    "definitions": {

    }
}

Dies kann wie folgt in Postman importiert werden.

  1. Klicken Sie auf die Schaltfläche " Importieren " in der oberen linken Ecke der Postman-Benutzeroberfläche.
  2. Sie sehen mehrere Optionen zum Importieren des API-Dokuments. Klicken Sie auf " Rohtext einfügen ".
  3. Fügen Sie das JSON-Format in den Textbereich ein und klicken Sie auf Importieren.
  4. Sie sehen alle Ihre APIs als " Postman Collection " und können sie vom Postman aus verwenden.

JSON in Postman importieren

Importierte APIs

Sie können auch "Aus Link importieren" verwenden. Fügen Sie hier die URL ein, die das JSON-Format der APIs aus dem Swagger oder einem anderen API-Dokument-Tool generiert.

Dies ist meine JSON-Generierungsdatei (Document). Es ist in PHP. Ich habe keine Ahnung von JAVA zusammen mit Swagger.

<?php
require("vendor/autoload.php");
$swagger = \Swagger\scan('path_of_the_directory_to_scan');
header('Content-Type: application/json');
echo $swagger;

1
danke, aber jetzt ist das problem, wie ich die datei von swagger-ui exportieren kann? und der link ist nutzlos.
— Demon Coldmist

@DemonColdmist Ich habe den Code zum Generieren der API hinzugefügt. Grundsätzlich durchsucht es das gesamte Verzeichnis, überprüft die Anmerkungen und gibt die JSON / YAML-Ausgabe aus. Entschuldigung, aber ich habe Swagger nicht mit JAVA verwendet.
— JDpawar

Danke, wenn es in PHP exportiert werden könnte, dann auch Java. Ich werde es in Java übersetzen.
— Dämon Coldmist

2
In einer Java-App, die die Abhängigkeit springfox-swagger2 verwendet, können Sie den JSON wie in dieser Antwort beschrieben in Postman importieren lassen, indem Sie einen Browser öffnen und zu localhost gehen: 8080 / v2 / api-docs
— Nacho Mezzadra

1
@JDpawar Danke, der Import ist erfolgreich, aber es werden keine Post-Informationen in Postman für eine POST-API generiert. irgendwelche Ideen?
— user1559625

30

Mit .Net Core ist es jetzt sehr einfach:

  1. Sie finden die JSON-URL auf Ihrer Prahlerseite:

Geben Sie hier die Bildbeschreibung ein

  1. Klicken Sie auf diesen Link und kopieren Sie die URL
  2. Gehen Sie nun zu Postman und klicken Sie auf Importieren:

Geben Sie hier die Bildbeschreibung ein

  1. Wählen Sie aus, was Sie benötigen, und Sie erhalten eine schöne Sammlung von Endpunkten:

Geben Sie hier die Bildbeschreibung ein


7

Die akzeptierte Antwort ist korrekt, aber ich werde die vollständigen Schritte für neu schreiben java.

Ich benutze derzeit Swagger V2mit Spring Boot 2und es ist unkompliziert 3-Schritt-Prozess.

Schritt 1: Fügen Sie der pom.xmlDatei die erforderlichen Abhängigkeiten hinzu . Die zweite Abhängigkeit ist optional. Verwenden Sie sie nur, wenn Sie sie benötigen Swagger UI.

        <!-- https://mvnrepository.com/artifact/io.springfox/springfox-swagger2 -->
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger2</artifactId>
            <version>2.9.2</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/io.springfox/springfox-swagger-ui -->
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger-ui</artifactId>
            <version>2.9.2</version>
        </dependency>

Schritt 2: Konfigurationsklasse hinzufügen

@Configuration
@EnableSwagger2
public class SwaggerConfig {

     public static final Contact DEFAULT_CONTACT = new Contact("Usama Amjad", "https://stackoverflow.com/users/4704510/usamaamjad", "hello@email.com");
      public static final ApiInfo DEFAULT_API_INFO = new ApiInfo("Article API", "Article API documentation sample", "1.0", "urn:tos",
              DEFAULT_CONTACT, "Apache 2.0", "http://www.apache.org/licenses/LICENSE-2.0", new ArrayList<VendorExtension>());

    @Bean
    public Docket api() {
        Set<String> producesAndConsumes = new HashSet<>();
        producesAndConsumes.add("application/json");
        return new Docket(DocumentationType.SWAGGER_2)
                .apiInfo(DEFAULT_API_INFO)
                .produces(producesAndConsumes)
                .consumes(producesAndConsumes);

    }
}

Schritt 3: Setup abgeschlossen und jetzt müssen Sie APIs in dokumentierencontrollers

    @ApiOperation(value = "Returns a list Articles for a given Author", response = Article.class, responseContainer = "List")
    @ApiResponses(value = { @ApiResponse(code = 200, message = "Success"),
            @ApiResponse(code = 404, message = "The resource you were trying to reach is not found") })
    @GetMapping(path = "/articles/users/{userId}")
    public List<Article> getArticlesByUser() {
       // Do your code
    }

Verwendung:

Sie können auf Ihre Dokumentation zugreifen, indem Sie sie http://localhost:8080/v2/api-docseinfach kopieren und in Postman einfügen, um die Sammlung zu importieren.

Geben Sie hier die Bildbeschreibung ein

Optionale Swagger-Benutzeroberfläche: Sie können die eigenständige Benutzeroberfläche auch ohne einen anderen Rest-Client über verwenden, http://localhost:8080/swagger-ui.htmlund es ist ziemlich gut, dass Sie Ihre Dokumentation problemlos hosten können.

Geben Sie hier die Bildbeschreibung ein


3
Fehler beim Importieren: Fehler beim Importieren von Swagger 2.0: (Patchable) parameter.type ist für Nicht-Body-Parameter obligatorisch
— Ramraj

-1
  • Klicken Sie auf die orangefarbene Schaltfläche ("Dateien auswählen")
  • Navigieren Sie zum Swagger-Dokument (swagger.yaml).
  • Nach Auswahl der Datei wird in POSTMAN eine neue Sammlung erstellt. Es enthält Ordner, die auf Ihren Endpunkten basieren.

Sie können auch einige Beispiel-Swagger-Dateien online abrufen, um dies zu überprüfen (wenn Sie Fehler in Ihrem Swagger-Dokument haben).


Können Sie mir zeigen, wie man swagger.yaml exportiert? Ich verwende swagger-ui in SpringMvc.
— Demon Coldmist

Woher möchten Sie Swagger exportieren? Verwenden Sie Swagger bereits, um Ihre YAML zu verfassen?
— Ashwini Kumar
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.