최근에 SpringMvc 와 swagger-ui (v2)로 편안한 API를 작성했습니다 . Postman에서 가져 오기 기능을 발견했습니다.
그래서 내 질문은 Postman이 필요한 파일을 만드는 방법입니다.
나는 Swagger에 익숙하지 않습니다.
답변:
저는 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": {
}
}
다음과 같이 Postman으로 가져올 수 있습니다.
'링크에서 가져 오기'를 사용할 수도 있습니다. 여기에 Swagger 또는 기타 API 문서 도구에서 API의 JSON 형식을 생성하는 URL을 붙여 넣으십시오.
이것은 내 문서 (JSON) 생성 파일입니다. PHP에 있습니다. Swagger와 함께 JAVA에 대해 전혀 모릅니다.
<?php
require("vendor/autoload.php");
$swagger = \Swagger\scan('path_of_the_directory_to_scan');
header('Content-Type: application/json');
echo $swagger;
허용되는 답변은 정확하지만에 대한 전체 단계를 다시 작성하겠습니다 java
.
현재 Swagger V2
with를 사용 하고 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 단계 : 설정이 완료되었으며 이제 API를 문서화해야합니다.controllers
@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
복사하여 Postman에 붙여 넣기 만하면 문서에 액세스하여 컬렉션을 가져올 수 있습니다.
선택적 Swagger UI : 다른 클라이언트를 통해 다른 클라이언트없이 독립형 UI를 사용할 수도 있습니다. http://localhost:8080/swagger-ui.html
꽤 좋습니다. 번거 로움없이 문서를 호스팅 할 수 있습니다.
이를 확인하기 위해 온라인으로 샘플 swagger 파일을 얻을 수도 있습니다 (Swagger 문서에 오류가있는 경우).