Generating an SDK

View as Markdown

Generate a Java SDK by following the instructions on this page.

1

Install the Fern CLI

$npm install -g fern-api
2

Initialize the fern folder

Initialize the fern folder with your existing OpenAPI specification, or start from scratch with a Fern Definition template. Specify your organization name using the --organization flag.

$fern init --openapi path/to/openapi.yml \
>--organization <YourOrganization>

OpenAPI accepts both JSON and YAML formats. You can always convert a Fern Definition to OpenAPI or OpenAPI to a Fern Definition later on.

This creates a fern folder in your current directory.

fern
fern.config.json# root-level configuration
api# your API
generators.yml# generators you're using
openapi
openapi.yml# API-level configuration
3

Validate your API definition

Check that your API definition is valid, and fix errors before proceeding:

$fern check

Add the SDK generator

Run the following command to add the Java SDK generator to generators.yml:

$fern add fern-java-sdk --group {{GROUP_NAME}}

This command adds the following group to generators.yml:

generators.yml
1 java-sdk: # group name
2 generators:
3 - name: fernapi/fern-java-sdk
4 version: 4.6.2
5 output:
6 location: local-file-system
7 path: ../sdks/java

Generate the SDK

Run the following command to generate your SDK:

$fern generate --group java-sdk

If you have multiple APIs, use the --api flag to specify the API you want to generate:

$fern generate --group java-sdk --api your-api-name

This creates a sdks folder in your current directory. The resulting folder structure looks like this:

fern# created by fern init
sdks# created by fern generate --group java-sdk
java
YourOrganizationApiClient.java
core
resources
imdb# or the name of your API
errors
types
15

Set up GitHub repositories

Fern uses a multi-repo structure: your source repository contains the fern/ folder, and each SDK gets its own separate repository.

  1. Create a source repository for your fern/ folder if you don’t have one already (e.g., your-org/your-api-definitions).
  2. Create an SDK repository for your SDK (e.g., your-org/your-api-java-sdk).
  3. Install the Fern GitHub App on both repositories.
16

Publish to Maven Central

Follow the Publishing to Maven Central guide to configure your package and set up automated publishing via GitHub Actions.