Як імпортувати API Swagger в Postman?


120

Нещодавно я писав спокійні API з SpringMvc та swagger -ui (v2). Я помітив функцію імпорту в поштарці:

введіть тут опис зображення

Тож моє запитання - як створити файл, який потрібен був Листоноші?

Я не знайомий із Сваггером.


6
Чоловіче це справді чудово ... !!!
Adelin

Відповіді:


127

Я працюю на PHP і використовую Swagger 2.0 для документування API. Документ Swagger створюється на льоту (принаймні, це те, що я використовую в PHP). Документ сформовано у форматі JSON.

Зразок документа

{
    "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": {

    }
}

Її можна імпортувати до Поштовика наступним чином.

  1. Натисніть кнопку « Імпортувати » у верхньому лівому куті інтерфейсу Postman.
  2. Ви побачите кілька варіантів імпорту документа API. Клацніть на " Вставити необроблений текст ".
  3. Вставте формат JSON у текстову область та натисніть імпорт.
  4. Ви побачите всі свої API як " Колекція листонош ", і ви можете використовувати їх у Листоноші.

Імпортування JSON до поштарки

Імпортні API

Ви також можете використовувати "Імпортувати з посилання". Сюди вставте URL-адресу, яка генерує формат JSON API з Swagger або будь-якого іншого інструмента документа API.

Це мій файл генерації документа (JSON). Це в PHP. Я не маю уявлення про JAVA разом із Swagger.

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

1
дякую, але зараз проблема в тому, як я міг експортувати файл із swagger-ui? І посилання марне.
Demon Coldmist

@DemonColdmist Я додав код для генерації API. По суті, він сканує весь каталог, перевіряє анотації та робить вихід JSON / YAML. Вибачте, але я не використовував Swagger з JAVA.
JDpawar

дякую, якщо це можна було експортувати у PHP, то також і Java. Я перекладу його на Java.
Demon Coldmist

2
У програмі Java, яка використовує залежність springfox-swagger2, ви можете отримати JSON для імпорту в Postman, як описано у цій відповіді, відкривши браузер і направившись до localhost: 8080 / v2 / api-docs
Nacho Mezzadra

1
@JDpawar Дякую, імпорт вдався, але він не генерує жодної інформації про "тіло" у листоноші для будь-якого API POST. будь-які ідеї?
user1559625

36

З .Net Core тепер дуже просто:

  1. Ви знаходите URL-адресу JSON на своїй сторінці:

введіть тут опис зображення

  1. Клацніть на це посилання та скопіюйте URL-адресу
  2. Тепер перейдіть до Листоноша та натисніть Імпортувати:

введіть тут опис зображення

  1. Виберіть те, що вам потрібно, і у вас вийде приємна колекція кінцевих точок:

введіть тут опис зображення


8

Прийнята відповідь правильна, але я перепишу всі кроки для java.

В даний час я використовую Swagger V2з, Spring Boot 2і це простий 3-кроковий процес.

Крок 1: Додайте необхідні залежності у pom.xmlфайл. Друга залежність необов’язкова, використовуйте її лише за потреби 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>

Крок 2: Додайте клас конфігурації

@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);

    }
}

Крок 3: Налаштування завершено, і тепер вам потрібно задокументувати APIcontrollers

    @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
    }

Використання:

Ви можете отримати доступ до своєї Документації, http://localhost:8080/v2/api-docsпросто скопіювавши її та вставивши в Листоноша, щоб імпортувати колекцію.

введіть тут опис зображення

Необов’язковий інтерфейс Swagger: Ви також можете використовувати автономний інтерфейс без будь-якого іншого клієнта відпочинку, http://localhost:8080/swagger-ui.htmlі це досить добре, ви можете розміщувати свою документацію без зайвих клопотів.

введіть тут опис зображення


3
Помилка під час імпорту: Помилка під час імпортування Swagger 2.0: параметр (випрацьовуваний) параметр. Тип є обов’язковим для параметрів, не пов’язаних із тілом
Рамрадж,

0

Ви можете зробити це: Листоноша -> Імпорт -> Посилання -> {root_url}/v2/api-docs


-1
  • Натисніть на помаранчеву кнопку ("вибрати файли")
  • Перейдіть до документа Swagger (swagger.yaml)
  • Після вибору файлу в POSTMAN створюється нова колекція. Він міститиме папки на основі ваших кінцевих точок.

Ви також можете отримати в Інтернеті кілька зразків файлів обману, щоб переконатись у цьому (якщо у вашому документі похибки є помилки).


не могли б ви показати мені спосіб експортування swagger.yaml? Я використовую swagger-ui у SpringMvc.
Демон-холодник

звідки ви хочете експортувати шахрайство? ти вже використовуєш обману для створення свого YAML?
Ашвіні Кумар,
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.