Làm cách nào để nhập các API Swagger vào Postman?


115

Gần đây, tôi đã viết các API yên tĩnh với SpringMvc và swagger-ui (v2). Tôi nhận thấy chức năng Nhập trong Người đưa thư:

nhập mô tả hình ảnh ở đây

Vì vậy, câu hỏi của tôi là làm thế nào để tạo tệp mà Postman cần?

Tôi không quen thuộc với Swagger.


6
Người đàn ông này thực sự tuyệt vời ... !!!
Adelin

Câu trả lời:


121

Tôi làm việc trên PHP và đã sử dụng Swagger 2.0 để ghi lại các API. Tài liệu Swagger được tạo nhanh chóng (ít nhất đó là những gì tôi sử dụng trong PHP). Tài liệu được tạo ở định dạng JSON.

Tài liệu mẫu

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

    }
}

Điều này có thể được nhập vào Postman như sau.

  1. Nhấp vào nút ' Nhập ' ở góc trên cùng bên trái của Giao diện người dùng Người đưa thư.
  2. Bạn sẽ thấy nhiều tùy chọn để nhập tài liệu API. Nhấp vào ' Dán văn bản thô '.
  3. Dán định dạng JSON vào vùng văn bản và nhấp vào nhập.
  4. Bạn sẽ thấy tất cả các API của mình là ' Bộ sưu tập Người đưa thư ' và có thể sử dụng nó từ Người đưa thư.

Nhập JSON vào Postman

API đã nhập

Bạn cũng có thể sử dụng 'Nhập từ liên kết'. Tại đây, hãy dán URL tạo định dạng JSON của các API từ Swagger hoặc bất kỳ công cụ Tài liệu API nào khác.

Đây là tệp tạo Tài liệu (JSON) của tôi. Nó bằng PHP. Tôi không biết JAVA cùng với Swagger.

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

1
cảm ơn, nhưng bây giờ vấn đề là làm thế nào tôi có thể xuất tệp từ swagger-ui? Và liên kết vô dụng.
Demon Coldmist

@DemonColdmist Tôi đã thêm mã để tạo API. Về cơ bản, nó quét toàn bộ thư mục, kiểm tra các chú thích và tạo đầu ra JSON / YAML. Xin lỗi, nhưng tôi chưa sử dụng Swagger với JAVA.
JDpawar

cảm ơn, nếu nó có thể được xuất bằng PHP, thì Java cũng vậy. Tôi sẽ dịch nó sang Java.
Demon Coldmist,

2
Trong một ứng dụng java bằng cách sử dụng phụ thuộc springfox-swagger2, bạn có thể lấy JSON để nhập khẩu trong Postman như mô tả trong câu trả lời này bằng cách mở trình duyệt và hướng tới localhost: 8080 / v2 / api-docs
Nacho Mezzadra

1
@JDpawar Cảm ơn, quá trình nhập thành công, nhưng nó không tạo ra bất kỳ thông tin 'cơ thể' nào trong người đưa thư cho bất kỳ API POST nào. bất kỳ ý tưởng?
dùng1559625

33

Với .Net Core, bây giờ rất dễ dàng:

  1. Bạn đi và tìm URL JSON trên trang swagger của mình:

nhập mô tả hình ảnh ở đây

  1. Nhấp vào liên kết đó và sao chép URL
  2. Bây giờ đi tới Người đưa thư và nhấp vào Nhập:

nhập mô tả hình ảnh ở đây

  1. Chọn những gì bạn cần và bạn sẽ có một bộ sưu tập các điểm cuối tuyệt vời:

nhập mô tả hình ảnh ở đây


8

Câu trả lời được chấp nhận là đúng nhưng tôi sẽ viết lại các bước hoàn chỉnh cho java.

Tôi hiện đang sử dụng Swagger V2với Spring Boot 2và đó là quy trình 3 bước đơn giản.

Bước 1: Thêm các phụ thuộc bắt buộc vào pom.xmltệp. Sự phụ thuộc thứ hai là tùy chọn sử dụng nó chỉ khi bạn cần 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>

Bước 2: Thêm lớp cấu hình

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

    }
}

Bước 3: Thiết lập hoàn tất và bây giờ bạn cần ghi lại các API trongcontrollers

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

Sử dụng:

Bạn có thể truy cập Tài liệu của mình từ http://localhost:8080/v2/api-docschỉ cần sao chép và dán vào Postman để nhập bộ sưu tập.

nhập mô tả hình ảnh ở đây

Giao diện người dùng Swagger tùy chọn: Bạn cũng có thể sử dụng giao diện người dùng độc lập mà không cần bất kỳ ứng dụng khách nghỉ ngơi nào khác http://localhost:8080/swagger-ui.htmlvà nó khá tốt, bạn có thể lưu trữ tài liệu của mình mà không gặp bất kỳ rắc rối nào.

nhập mô tả hình ảnh ở đây


3
Lỗi trong khi nhập khẩu: Lỗi trong khi nhập khẩu Swagger 2.0: (patchable) parameter.type là bắt buộc đối với các thông số phi cơ
Ramraj

0

Bạn có thể làm điều đó: Người đưa thư -> Nhập -> Liên kết -> {root_url}/v2/api-docs


-1
  • Nhấp vào nút màu cam ("chọn tệp")
  • Duyệt đến tài liệu Swagger (swagger.yaml)
  • Sau khi chọn tệp, một bộ sưu tập mới sẽ được tạo trong POSTMAN. Nó sẽ chứa các thư mục dựa trên các điểm cuối của bạn.

Bạn cũng có thể tải trực tuyến một số tệp swagger mẫu để xác minh điều này (nếu bạn có lỗi trong tài liệu swagger của mình).


bạn có thể chỉ cho tôi cách xuất swagger.yaml được không? Tôi đang sử dụng swagger-ui trong SpringMvc.
Demon Coldmist

bạn muốn xuất swagger từ đâu? bạn đã sử dụng swagger để tạo YAML của mình chưa?
Ashwini Kumar
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.