openapi_java_httpclient

package
v0.0.0-...-293b089 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 18, 2026 License: MIT Imports: 1 Imported by: 0

README

{{- /*gotype: github.com/primelib/primecodegen/pkg/openapi/openapigenerator.SupportOnceTemplate*/ -}}
# {{ .Metadata.DisplayName }}

A java http client library for {{ .Metadata.DisplayName }}.

## Core Library

**Coordinates**

```
implementation("{{ .Metadata.ArtifactGroupId }}:{{ .Metadata.ArtifactId }}:<version>")
```

**Create client instances using the factory, you can choose different interfaces by changing the `api` parameter.**

```java
{{ .Metadata.Name }}Api client = {{ .Metadata.Name }}Factory.create(spec -> {
    spec.api({{ .Metadata.Name }}Api.class);
    spec.baseUrl("{{ .Common.Endpoints.DefaultEndpoint }}");
{{- if .Common.Auth.HasAuthScheme "apikey" }}
    spec.apiKeyAuth(auth -> {
        auth.propertyKey("x-api-key");
        auth.apiKey("<apiKey>");
    });
{{- end }}
{{- if .Common.Auth.HasAuthScheme "basic" }}
    spec.basicAuth(auth -> {
        auth.username("<admin>");
        auth.password("<password>");
    });
{{- end }}
{{- if .Common.Auth.HasAuthScheme "bearer" }}
    spec.bearerAuth(auth -> {
        auth.valueTemplate("Bearer {token}"); // optional, default is "Bearer {token}"
        auth.token("<token>");
    });
{{- end }}
{{- if .Common.Auth.HasAuthVariant "oauth2ClientCredentialAuth" }}
    spec.oauth2ClientCredentialAuth(auth -> {
        auth.tokenEndpoint("<tokenEndpoint>");
        auth.clientId("<clientId>");
        auth.clientSecret("<clientSecret>");
    });
{{- end }}
{{- if .Common.Auth.HasAuthVariant "oauth2PasswordAuth" }}
    spec.oauth2PasswordAuth(auth -> {
        auth.tokenEndpoint("<tokenEndpoint>");
        auth.clientId("<clientId>");
        auth.clientSecret("<clientSecret>");
        auth.username("<username>");
        auth.password("<password>");
    });
{{- end }}
    //spec.meterRegistry(meterRegistry);
    //spec.logLevel("FULL");
});
```

## Spring Boot Starter

**Coordinates**

```
implementation("{{ .Metadata.ArtifactGroupId }}:{{ .Metadata.ArtifactId }}-spring-boot-starter:<version>")
```

**Auto Configuration**

| Property                                                   | Description                      | Default Value    | Allowed Values                     |
|------------------------------------------------------------|----------------------------------|------------------|------------------------------------|
| {{ .Metadata.Name | kebabCase }}.url                       | Base URL of the API              | ""               |                                    |
| {{ .Metadata.Name | kebabCase }}.backend-name              | Backend name for metrics tagging | ""               |                                    |
| {{ .Metadata.Name | kebabCase }}.log-level                 | Log level for HTTP client        | ""               | none, full                         |
| {{ .Metadata.Name | kebabCase }}.insecure                  | Disable SSL verification         | false            | false, true                        |
| {{ .Metadata.Name | kebabCase }}.auth.type                 | Type of authentication           | ""               | oauth2-client, oauth2-user, bearer |
| {{ .Metadata.Name | kebabCase }}.auth.token-endpoint       | Full token endpoint URL          | ""               | oauth2 token endpoint              |
| {{ .Metadata.Name | kebabCase }}.auth.client-id            | Client ID for authentication     | ""               | oauth2 client id                   |
| {{ .Metadata.Name | kebabCase }}.auth.client-secret        | Client secret for authentication | ""               | oauth2 client secret               |
| {{ .Metadata.Name | kebabCase }}.auth.username             | Username for authentication      | ""               | oauth2 username (oauth2-user)      |
| {{ .Metadata.Name | kebabCase }}.auth.password             | Password for authentication      | ""               | oauth2 password (oauth2-password)  |
| {{ .Metadata.Name | kebabCase }}.auth.token                | Token / API Key                  | ""               |                                    |
| {{ .Metadata.Name | kebabCase }}.auth.token-property-key   | Header key to pass the token in  | "Authorization"  |                                    |
| {{ .Metadata.Name | kebabCase }}.auth.token-value-template | Template to generate token value | "Bearer {token}" |                                    |

{{ if .Metadata.LicenseName }}
## License

This project is licensed under the [{{ .Metadata.LicenseName }}]({{ .Metadata.LicenseUrl }}) license.
{{- end }}

Documentation

Index

Constants

This section is empty.

Variables

View Source
var Template = templateapi.Config{
	ID:          "openapi-java-httpclient",
	Description: "OpenAPI Client for Java",
	Files: []templateapi.File{

		{
			SourceTemplate:  "build.gradle.kts.core.gohtml",
			Snippets:        templateapi.DefaultSnippets,
			TargetDirectory: "core",
			TargetFileName:  "build.gradle.kts",
			Type:            templateapi.TypeSupportOnce,
			Kind:            templateapi.KindBuildSystem,
		},

		{
			SourceTemplate:  "api_factory.gohtml",
			Snippets:        templateapi.DefaultSnippets,
			TargetDirectory: "core/src/main/java/{{ .Common.Packages.Root | toFilePath }}",
			TargetFileName:  "{{ .Metadata.Name }}Factory.java",
			Type:            templateapi.TypeAPIOnce,
			Kind:            templateapi.KindAPI,
		},
		{
			SourceTemplate:  "api_factoryspec.gohtml",
			Snippets:        templateapi.DefaultSnippets,
			TargetDirectory: "core/src/main/java/{{ .Common.Packages.Root | toFilePath }}",
			TargetFileName:  "{{ .Metadata.Name }}FactorySpec.java",
			Type:            templateapi.TypeAPIOnce,
			Kind:            templateapi.KindAPI,
		},

		{
			SourceTemplate:  "api_main_default.gohtml",
			Snippets:        templateapi.DefaultSnippets,
			TargetDirectory: "core/src/main/java/{{ .Common.Packages.Client | toFilePath }}",
			TargetFileName:  "{{ .Metadata.Name }}Api.java",
			Type:            templateapi.TypeAPIOnce,
			Kind:            templateapi.KindAPI,
		},
		{
			SourceTemplate:  "api_main_consumer.gohtml",
			Snippets:        templateapi.DefaultSnippets,
			TargetDirectory: "core/src/main/java/{{ .Common.Packages.Client | toFilePath }}",
			TargetFileName:  "{{ .Metadata.Name }}ConsumerApi.java",
			Type:            templateapi.TypeAPIOnce,
			Kind:            templateapi.KindAPI,
		},

		{
			SourceTemplate:  "api_service_default.gohtml",
			Snippets:        templateapi.DefaultSnippets,
			TargetDirectory: "core/src/main/java/{{ .Common.Packages.Client | toFilePath }}",
			TargetFileName:  "{{ .Service.Type }}Api.java",
			Type:            templateapi.TypeAPIEach,
			Kind:            templateapi.KindAPI,
		},
		{
			SourceTemplate:  "api_service_consumer.gohtml",
			Snippets:        templateapi.DefaultSnippets,
			TargetDirectory: "core/src/main/java/{{ .Common.Packages.Client | toFilePath }}",
			TargetFileName:  "{{ .Service.Type }}ConsumerApi.java",
			Type:            templateapi.TypeAPIEach,
			Kind:            templateapi.KindAPI,
		},

		{
			SourceTemplate:  "operation.gohtml",
			Snippets:        templateapi.DefaultSnippets,
			TargetDirectory: "core/src/main/java/{{ .Common.Packages.Operations | toFilePath }}",
			TargetFileName:  "{{ .Operation.Name }}OperationSpec.java",
			Type:            templateapi.TypeOperationEach,
			Kind:            templateapi.KindAPI,
		},

		{
			SourceTemplate:  "model.gohtml",
			Snippets:        templateapi.DefaultSnippets,
			TargetDirectory: "core/src/main/java/{{ .Common.Packages.Models | toFilePath }}",
			TargetFileName:  "{{ .Name }}.java",
			Type:            templateapi.TypeModelEach,
			Kind:            templateapi.KindModel,
		},
		{
			SourceTemplate:  "enum.gohtml",
			Snippets:        templateapi.DefaultSnippets,
			TargetDirectory: "core/src/main/java/{{ .Common.Packages.Enums | toFilePath }}",
			TargetFileName:  "{{ .Name }}.java",
			Type:            templateapi.TypeEnumEach,
			Kind:            templateapi.KindModel,
		},

		{
			SourceTemplate:  "build.gradle.kts.spring.gohtml",
			Snippets:        templateapi.DefaultSnippets,
			TargetDirectory: "spring",
			TargetFileName:  "build.gradle.kts",
			Type:            templateapi.TypeSupportOnce,
			Kind:            templateapi.KindBuildSystem,
		},
		{
			SourceTemplate:  "spring_auto_configuration.gohtml",
			Snippets:        templateapi.DefaultSnippets,
			TargetDirectory: "spring/src/main/java/{{ .Common.Packages.Root | toFilePath }}/spring",
			TargetFileName:  "{{ .Metadata.Name }}SpringAutoConfiguration.java",
			Type:            templateapi.TypeAPIOnce,
			Kind:            templateapi.KindAPI,
		},
		{
			SourceTemplate:  "spring_auto_configuration_imports.gohtml",
			Snippets:        templateapi.DefaultSnippets,
			TargetDirectory: "spring/src/main/resources/META-INF/spring",
			TargetFileName:  "org.springframework.boot.autoconfigure.AutoConfiguration.imports",
			Type:            templateapi.TypeSupportOnce,
			Kind:            templateapi.KindAPI,
		},

		{
			Description:    "README.md",
			SourceTemplate: "readme.gohtml",
			Snippets:       templateapi.DefaultSnippets,
			TargetFileName: "README.md",
			Type:           templateapi.TypeSupportOnce,
			Kind:           templateapi.KindDocumentation,
		},

		{
			SourceTemplate: "build.gradle.kts.root.gohtml",
			Snippets:       templateapi.DefaultSnippets,
			TargetFileName: "build.gradle.kts",
			Type:           templateapi.TypeSupportOnce,
			Kind:           templateapi.KindBuildSystem,
		},
		{
			SourceTemplate: "settings.gradle.kts.gohtml",
			Snippets:       templateapi.DefaultSnippets,
			TargetFileName: "settings.gradle.kts",
			Type:           templateapi.TypeSupportOnce,
			Kind:           templateapi.KindBuildSystem,
		},
		{
			SourceTemplate:  "libs.versions.toml.gohtml",
			Snippets:        templateapi.DefaultSnippets,
			TargetDirectory: "gradle",
			TargetFileName:  "libs.versions.toml",
			Type:            templateapi.TypeSupportOnce,
			Kind:            templateapi.KindBuildSystem,
		},
		{
			SourceTemplate: "gradle.properties.gohtml",
			Snippets:       templateapi.DefaultSnippets,
			TargetFileName: "gradle.properties",
			Type:           templateapi.TypeSupportOnce,
			Kind:           templateapi.KindBuildSystem,
		},

		{
			SourceFile:      "gradle/gradle-wrapper.properties",
			Snippets:        templateapi.DefaultSnippets,
			TargetDirectory: "gradle/wrapper",
			TargetFileName:  "gradle-wrapper.properties",
			Type:            templateapi.TypeSupportOnce,
			Kind:            templateapi.KindBuildSystem,
		},
		{
			SourceFile:      "gradle/gradle-wrapper.jar",
			Snippets:        templateapi.DefaultSnippets,
			TargetDirectory: "gradle/wrapper",
			TargetFileName:  "gradle-wrapper.jar",
			Type:            templateapi.TypeSupportOnce,
			Kind:            templateapi.KindBuildSystem,
		},
		{
			SourceFile:      "gradle/gradlew",
			Snippets:        templateapi.DefaultSnippets,
			TargetDirectory: "",
			TargetFileName:  "gradlew",
			Type:            templateapi.TypeSupportOnce,
			Kind:            templateapi.KindBuildSystem,
		},
		{
			SourceFile:      "gradle/gradlew.bat",
			Snippets:        templateapi.DefaultSnippets,
			TargetDirectory: "",
			TargetFileName:  "gradlew.bat",
			Type:            templateapi.TypeSupportOnce,
			Kind:            templateapi.KindBuildSystem,
		},
	},
}

Functions

This section is empty.

Types

This section is empty.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL