mirror of
				https://github.com/OpenAPITools/openapi-generator.git
				synced 2025-11-04 10:43:44 +00:00 
			
		
		
		
	[GO] Add go.mod in go-gin-server generator (#15339)
* Add go.mod * Add test * Generate import path * Update samples
This commit is contained in:
		
							parent
							
								
									92bcdea2fa
								
							
						
					
					
						commit
						61aadb32bd
					
				@ -191,6 +191,7 @@ public class GoGinServerCodegen extends AbstractGoCodegen {
 | 
			
		||||
        supportingFiles.add(new SupportingFile("routers.mustache", apiPath, "routers.go"));
 | 
			
		||||
        supportingFiles.add(new SupportingFile("README.mustache", apiPath, "README.md")
 | 
			
		||||
                .doNotOverwrite());
 | 
			
		||||
        supportingFiles.add(new SupportingFile("go.mod.mustache", "go.mod"));
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										6
									
								
								modules/openapi-generator/src/main/resources/go-gin-server/go.mod.mustache
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								modules/openapi-generator/src/main/resources/go-gin-server/go.mod.mustache
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@ -0,0 +1,6 @@
 | 
			
		||||
module {{gitHost}}/{{gitUserId}}/{{gitRepoId}}{{#isGoSubmodule}}/{{packageName}}{{/isGoSubmodule}}
 | 
			
		||||
 | 
			
		||||
go 1.19
 | 
			
		||||
 | 
			
		||||
require github.com/gin-gonic/gin v1.9.0
 | 
			
		||||
 | 
			
		||||
@ -5,13 +5,9 @@ import (
 | 
			
		||||
	"log"
 | 
			
		||||
 | 
			
		||||
	// WARNING!
 | 
			
		||||
	// Change this to a fully-qualified import path
 | 
			
		||||
	// once you place this file into your project.
 | 
			
		||||
	// For example,
 | 
			
		||||
	// Pass --git-repo-id and --git-user-id properties when generating the code
 | 
			
		||||
	//
 | 
			
		||||
	//sw "github.com/{{{gitUserId}}}/{{{gitRepoId}}}/{{{apiPath}}}"
 | 
			
		||||
	//
 | 
			
		||||
	sw "./{{apiPath}}"
 | 
			
		||||
	sw "{{gitHost}}/{{gitUserId}}/{{gitRepoId}}{{#isGoSubmodule}}/{{packageName}}{{/isGoSubmodule}}/{{apiPath}}"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
func main() {
 | 
			
		||||
 | 
			
		||||
@ -0,0 +1,62 @@
 | 
			
		||||
/*
 | 
			
		||||
 * Copyright 2018 OpenAPI-Generator Contributors (https://openapi-generator.tech)
 | 
			
		||||
 * Copyright 2018 SmartBear Software
 | 
			
		||||
 *
 | 
			
		||||
 * Licensed under the Apache License, Version 2.0 (the "License");
 | 
			
		||||
 * you may not use this file except in compliance with the License.
 | 
			
		||||
 * You may obtain a copy of the License at
 | 
			
		||||
 *
 | 
			
		||||
 *     https://www.apache.org/licenses/LICENSE-2.0
 | 
			
		||||
 *
 | 
			
		||||
 * Unless required by applicable law or agreed to in writing, software
 | 
			
		||||
 * distributed under the License is distributed on an "AS IS" BASIS,
 | 
			
		||||
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 | 
			
		||||
 * See the License for the specific language governing permissions and
 | 
			
		||||
 * limitations under the License.
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
package org.openapitools.codegen.goginserver;
 | 
			
		||||
 | 
			
		||||
import org.openapitools.codegen.*;
 | 
			
		||||
import org.openapitools.codegen.config.CodegenConfigurator;
 | 
			
		||||
import org.openapitools.codegen.languages.GoClientCodegen;
 | 
			
		||||
import org.testng.Assert;
 | 
			
		||||
import org.testng.annotations.Test;
 | 
			
		||||
 | 
			
		||||
import java.io.File;
 | 
			
		||||
import java.io.IOException;
 | 
			
		||||
import java.nio.file.Files;
 | 
			
		||||
import java.nio.file.Path;
 | 
			
		||||
import java.nio.file.Paths;
 | 
			
		||||
import java.util.HashMap;
 | 
			
		||||
import java.util.List;
 | 
			
		||||
import java.util.Map;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
public class GoGinServerCodegenTest {
 | 
			
		||||
 | 
			
		||||
    @Test
 | 
			
		||||
    public void verifyGoMod() throws IOException {
 | 
			
		||||
        File output = Files.createTempDirectory("test").toFile();
 | 
			
		||||
        output.deleteOnExit();
 | 
			
		||||
 | 
			
		||||
        final CodegenConfigurator configurator = new CodegenConfigurator()
 | 
			
		||||
                .setGeneratorName("go-gin-server")
 | 
			
		||||
                .setGitUserId("my-user")
 | 
			
		||||
                .setGitRepoId("my-repo")
 | 
			
		||||
                .setPackageName("my-package")
 | 
			
		||||
                .setInputSpec("src/test/resources/3_0/petstore.yaml")
 | 
			
		||||
                .setOutputDir(output.getAbsolutePath().replace("\\", "/"));
 | 
			
		||||
 | 
			
		||||
        DefaultGenerator generator = new DefaultGenerator();
 | 
			
		||||
        List<File> files = generator.opts(configurator.toClientOptInput()).generate();
 | 
			
		||||
        files.forEach(File::deleteOnExit);
 | 
			
		||||
 | 
			
		||||
        TestUtils.assertFileExists(Paths.get(output + "/go.mod"));
 | 
			
		||||
        TestUtils.assertFileContains(Paths.get(output + "/go.mod"),
 | 
			
		||||
                "module github.com/my-user/my-repo");
 | 
			
		||||
        TestUtils.assertFileContains(Paths.get(output + "/go.mod"),
 | 
			
		||||
                "require github.com/gin-gonic/gin v1.9.0");
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
@ -1,5 +1,6 @@
 | 
			
		||||
Dockerfile
 | 
			
		||||
api/openapi.yaml
 | 
			
		||||
go.mod
 | 
			
		||||
go/README.md
 | 
			
		||||
go/api_pet.go
 | 
			
		||||
go/api_store.go
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										6
									
								
								samples/server/petstore/go-gin-api-server/go.mod
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								samples/server/petstore/go-gin-api-server/go.mod
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,6 @@
 | 
			
		||||
module github.com/GIT_USER_ID/GIT_REPO_ID
 | 
			
		||||
 | 
			
		||||
go 1.19
 | 
			
		||||
 | 
			
		||||
require github.com/gin-gonic/gin v1.9.0
 | 
			
		||||
 | 
			
		||||
@ -13,13 +13,9 @@ import (
 | 
			
		||||
	"log"
 | 
			
		||||
 | 
			
		||||
	// WARNING!
 | 
			
		||||
	// Change this to a fully-qualified import path
 | 
			
		||||
	// once you place this file into your project.
 | 
			
		||||
	// For example,
 | 
			
		||||
	// Pass --git-repo-id and --git-user-id properties when generating the code
 | 
			
		||||
	//
 | 
			
		||||
	//sw "github.com/GIT_USER_ID/GIT_REPO_ID/go"
 | 
			
		||||
	//
 | 
			
		||||
	sw "./go"
 | 
			
		||||
	sw "github.com/GIT_USER_ID/GIT_REPO_ID/go"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
func main() {
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user