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ư:
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.
Câu trả lời:
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.
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;
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 V2
với Spring Boot 2
và đó 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.xml
tệ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-docs
chỉ cần sao chép và dán vào Postman để nhập bộ sưu tập.
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.html
và 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.
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).