forked from loafle/openapi-generator-original
[POSTMAN] [BUG] Correct order of the Postman requests (#16983)
* Make public for testing * Sort endpoints as they are added in the list/map * Test endpoints are sorted * Regenerate Postman sample
This commit is contained in:
parent
f83cb60f27
commit
5e8e301869
@ -75,9 +75,9 @@ public class PostmanCollectionCodegen extends DefaultCodegen implements CodegenC
|
|||||||
|
|
||||||
|
|
||||||
// operations grouped by tag
|
// operations grouped by tag
|
||||||
protected Map<String, List<CodegenOperation>> codegenOperationsByTag = new HashMap<>();
|
public Map<String, List<CodegenOperation>> codegenOperationsByTag = new HashMap<>();
|
||||||
// list of operations
|
// list of operations
|
||||||
protected List<CodegenOperation> codegenOperationsList = new ArrayList<>();
|
public List<CodegenOperation> codegenOperationsList = new ArrayList<>();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Configures the type of generator.
|
* Configures the type of generator.
|
||||||
@ -307,7 +307,7 @@ public class PostmanCollectionCodegen extends DefaultCodegen implements CodegenC
|
|||||||
* The map groups the CodegenOperations by tag as defined in the OpenAPI spec
|
* The map groups the CodegenOperations by tag as defined in the OpenAPI spec
|
||||||
* @param codegenOperation Codegen operation instance
|
* @param codegenOperation Codegen operation instance
|
||||||
*/
|
*/
|
||||||
void addToMap(CodegenOperation codegenOperation){
|
public void addToMap(CodegenOperation codegenOperation){
|
||||||
|
|
||||||
String key = null;
|
String key = null;
|
||||||
if(codegenOperation.tags == null || codegenOperation.tags.isEmpty()) {
|
if(codegenOperation.tags == null || codegenOperation.tags.isEmpty()) {
|
||||||
@ -325,10 +325,16 @@ public class PostmanCollectionCodegen extends DefaultCodegen implements CodegenC
|
|||||||
|
|
||||||
codegenOperationsByTag.put(key, list);
|
codegenOperationsByTag.put(key, list);
|
||||||
|
|
||||||
|
// sort requests by path
|
||||||
|
Collections.sort(list, Comparator.comparing(obj -> obj.path));
|
||||||
}
|
}
|
||||||
|
|
||||||
void addToList(CodegenOperation codegenOperation) {
|
public void addToList(CodegenOperation codegenOperation) {
|
||||||
|
|
||||||
codegenOperationsList.add(codegenOperation);
|
codegenOperationsList.add(codegenOperation);
|
||||||
|
|
||||||
|
// sort requests by path
|
||||||
|
Collections.sort(codegenOperationsList, Comparator.comparing(obj -> obj.path));
|
||||||
}
|
}
|
||||||
|
|
||||||
String getResponseBody(CodegenResponse codegenResponse) {
|
String getResponseBody(CodegenResponse codegenResponse) {
|
||||||
|
@ -4,6 +4,7 @@ import com.fasterxml.jackson.databind.JsonNode;
|
|||||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||||
import com.fasterxml.jackson.databind.node.ArrayNode;
|
import com.fasterxml.jackson.databind.node.ArrayNode;
|
||||||
import com.fasterxml.jackson.databind.node.ObjectNode;
|
import com.fasterxml.jackson.databind.node.ObjectNode;
|
||||||
|
import io.swagger.v3.oas.models.tags.Tag;
|
||||||
import org.junit.Assert;
|
import org.junit.Assert;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
import org.openapitools.codegen.*;
|
import org.openapitools.codegen.*;
|
||||||
@ -16,6 +17,8 @@ import java.io.IOException;
|
|||||||
import java.nio.file.Files;
|
import java.nio.file.Files;
|
||||||
import java.nio.file.Path;
|
import java.nio.file.Path;
|
||||||
import java.nio.file.Paths;
|
import java.nio.file.Paths;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Arrays;
|
||||||
import java.util.LinkedHashMap;
|
import java.util.LinkedHashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@ -690,4 +693,73 @@ public class PostmanCollectionCodegenTest {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testAddToList() {
|
||||||
|
|
||||||
|
PostmanCollectionCodegen postmanCollectionCodegen = new PostmanCollectionCodegen();
|
||||||
|
|
||||||
|
CodegenOperation operationUsers = new CodegenOperation();
|
||||||
|
operationUsers.path = "/users";
|
||||||
|
postmanCollectionCodegen.addToList(operationUsers);
|
||||||
|
|
||||||
|
CodegenOperation operationGroups = new CodegenOperation();
|
||||||
|
operationGroups.path = "/groups";
|
||||||
|
postmanCollectionCodegen.addToList(operationGroups);
|
||||||
|
|
||||||
|
CodegenOperation operationUserId = new CodegenOperation();
|
||||||
|
operationUserId.path = "/users/{id}";
|
||||||
|
postmanCollectionCodegen.addToList(operationUserId);
|
||||||
|
|
||||||
|
assertEquals(3, postmanCollectionCodegen.codegenOperationsList.size());
|
||||||
|
// verify order
|
||||||
|
assertEquals("/groups", postmanCollectionCodegen.codegenOperationsList.get(0).path);
|
||||||
|
assertEquals("/users", postmanCollectionCodegen.codegenOperationsList.get(1).path);
|
||||||
|
assertEquals("/users/{id}", postmanCollectionCodegen.codegenOperationsList.get(2).path);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testAddToMap() {
|
||||||
|
|
||||||
|
PostmanCollectionCodegen postmanV2Generator = new PostmanCollectionCodegen();
|
||||||
|
|
||||||
|
CodegenOperation operationUsers = new CodegenOperation();
|
||||||
|
operationUsers.path = "/users";
|
||||||
|
operationUsers.tags = new ArrayList<>(Arrays.asList(new Tag().name("basic")));
|
||||||
|
postmanV2Generator.addToMap(operationUsers);
|
||||||
|
|
||||||
|
CodegenOperation operationGroups = new CodegenOperation();
|
||||||
|
operationGroups.path = "/groups";
|
||||||
|
operationGroups.tags = new ArrayList<>(Arrays.asList(new Tag().name("basic")));
|
||||||
|
postmanV2Generator.addToMap(operationGroups);
|
||||||
|
|
||||||
|
CodegenOperation operationUserId = new CodegenOperation();
|
||||||
|
operationUserId.path = "/users/{id}";
|
||||||
|
operationUserId.tags = new ArrayList<>(Arrays.asList(new Tag().name("basic")));
|
||||||
|
postmanV2Generator.addToMap(operationUserId);
|
||||||
|
|
||||||
|
// verify tag 'basic'
|
||||||
|
assertEquals(1, postmanV2Generator.codegenOperationsByTag.size());
|
||||||
|
assertEquals(true, postmanV2Generator.codegenOperationsByTag.containsKey("basic"));
|
||||||
|
|
||||||
|
List<CodegenOperation> operations = postmanV2Generator.codegenOperationsByTag.get("basic");
|
||||||
|
// verify order
|
||||||
|
assertEquals("/groups", operations.get(0).path);
|
||||||
|
assertEquals("/users", operations.get(1).path);
|
||||||
|
assertEquals("/users/{id}", operations.get(2).path);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testAddToMapUsingDefaultTag() {
|
||||||
|
|
||||||
|
PostmanCollectionCodegen postmanV2Generator = new PostmanCollectionCodegen();
|
||||||
|
|
||||||
|
CodegenOperation operationUsers = new CodegenOperation();
|
||||||
|
operationUsers.path = "/users";
|
||||||
|
postmanV2Generator.addToMap(operationUsers);
|
||||||
|
|
||||||
|
// verify tag 'default' is used
|
||||||
|
assertEquals(1, postmanV2Generator.codegenOperationsByTag.size());
|
||||||
|
assertEquals(true, postmanV2Generator.codegenOperationsByTag.containsKey("default"));
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -192,6 +192,53 @@
|
|||||||
"name": "basic",
|
"name": "basic",
|
||||||
"item": [
|
"item": [
|
||||||
{
|
{
|
||||||
|
"name": "/user",
|
||||||
|
"description": "Create a new user.",
|
||||||
|
"item": [
|
||||||
|
{
|
||||||
|
"name": "Example request for Get User",
|
||||||
|
"request": {
|
||||||
|
"method": "POST",
|
||||||
|
"header": [
|
||||||
|
{
|
||||||
|
"key": "Content-Type",
|
||||||
|
"value": "application/json",
|
||||||
|
"disabled": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "Accept",
|
||||||
|
"value": "application/json",
|
||||||
|
"disabled": false
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"body": {
|
||||||
|
"mode": "raw",
|
||||||
|
"raw": "{\n \"id\" : 777,\n \"firstName\" : \"Alotta\",\n \"lastName\" : \"Rotta\",\n \"email\" : \"alotta.rotta@gmail.com\",\n \"dateOfBirth\" : \"1997-10-31\",\n \"emailVerified\" : true,\n \"createDate\" : \"2019-08-24\"\n}",
|
||||||
|
"options": {
|
||||||
|
"raw": {
|
||||||
|
"language": "json"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"url": {
|
||||||
|
"raw": "{{baseUrl}}/user",
|
||||||
|
"host": [
|
||||||
|
"{{baseUrl}}"
|
||||||
|
],
|
||||||
|
"path": [
|
||||||
|
"user"
|
||||||
|
],
|
||||||
|
"variable": [
|
||||||
|
],
|
||||||
|
"query": [
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"description": "Create a new user."
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
"name": "/users/",
|
"name": "/users/",
|
||||||
"description": "Retrieve the information of the user with the matching user ID.",
|
"description": "Retrieve the information of the user with the matching user ID.",
|
||||||
"item": [
|
"item": [
|
||||||
@ -246,53 +293,6 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "/user",
|
|
||||||
"description": "Create a new user.",
|
|
||||||
"item": [
|
|
||||||
{
|
|
||||||
"name": "Example request for Get User",
|
|
||||||
"request": {
|
|
||||||
"method": "POST",
|
|
||||||
"header": [
|
|
||||||
{
|
|
||||||
"key": "Content-Type",
|
|
||||||
"value": "application/json",
|
|
||||||
"disabled": false
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"key": "Accept",
|
|
||||||
"value": "application/json",
|
|
||||||
"disabled": false
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"body": {
|
|
||||||
"mode": "raw",
|
|
||||||
"raw": "{\n \"id\" : 777,\n \"firstName\" : \"Alotta\",\n \"lastName\" : \"Rotta\",\n \"email\" : \"alotta.rotta@gmail.com\",\n \"dateOfBirth\" : \"1997-10-31\",\n \"emailVerified\" : true,\n \"createDate\" : \"2019-08-24\"\n}",
|
|
||||||
"options": {
|
|
||||||
"raw": {
|
|
||||||
"language": "json"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"url": {
|
|
||||||
"raw": "{{baseUrl}}/user",
|
|
||||||
"host": [
|
|
||||||
"{{baseUrl}}"
|
|
||||||
],
|
|
||||||
"path": [
|
|
||||||
"user"
|
|
||||||
],
|
|
||||||
"variable": [
|
|
||||||
],
|
|
||||||
"query": [
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"description": "Create a new user."
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user