OpenAPI
An OpenAPI Specification (OAS) is a description format for REST APIs. Swagger is a set of tools based on this specification for writing, documenting, and consuming REST APIs. For more information, refer to Swagger documentation.
CLion provides coding assistance for OpenAPI definitions in YAML and JSON files, and integration with Swagger Codegen for generating server stubs, client libraries (SDKs), and documentation based on your OpenAPI specification.
Create an OpenAPI specification
CLion recognizes a dedicated OpenAPI Specification file type with relevant coding assistance. These are regular YAML or JSON files with the definition of the OpenAPI specification version.
Create an OpenAPI Specification manually
In the Project tool window, press Alt+Insert and select OpenAPI Specification from the context menu.
Specify a name for the file and select the specification version and file format.
In an OpenAPI specification opened in the editor, use the gutter icons to quickly add specification sections.
![OpenAPI gutter icons](https://resources.jetbrains.com/help/img/idea/2024.2/openapi_gutter_icons_add.png)
You can disable the gutter icon in the IDE settings, under using the Gutter icons for quick specification edits checkbox.
Depending on the format and version, the new OpenAPI specification file contains the following template:
If you start with an empty YAML or JSON file, you can type opnp
or swag
and press Tab to insert the corresponding live template.
Reference a definition from a separate file
With OpenAPI 3.0, you can reference a definition hosted on any location using the $ref keyword. CLion provides you with path completion, validation, and quick navigation. For completion, CLion understands the context of the current file and of external files, and suggests using pointers to relevant elements.
Enter the
$ref
keyword.Start typing the path to the external definition.
You can press Ctrl+B to quickly navigate to the file and element you refer to.
![OpenAPI use ref](https://resources.jetbrains.com/help/img/idea/2024.2/openapi_ref.png)
Preview an OpenAPI specification
You can preview an OpenAPI specification using the integrated Swagger UI or Redoc UI. When an OpenAPI specification file is opened in the editor, use and
in the top-right corner to show or hide the preview.
To switch between Swagger UI and Redoc UI, hover over the preview area and click .
![Swagger Preview Swagger Preview](https://resources.jetbrains.com/help/img/idea/2024.2/openapi_preview_swaggerui.png)
![Swagger Preview Swagger Preview](https://resources.jetbrains.com/help/img/idea/2024.2/openapi_preview_redocui.png)
Split editor and preview horizontally
By default, the editor and the preview are split vertically (side by side), which is convenient for wide monitors. You can also split it horizontally, so that the preview is displayed in the lower part of the editor, which is more convenient for portrait displays.
In the top-right corner of the editor, click
to open the Editor Preview pane.
Click
to split the editor and the preview horizontally.
Add a remote OpenAPI specification
Endpoint URLs that you define in OpenAPI specifications in your project are available for code completion. If you are writing client code for an external specification, there is no need to add it as a file to your project for auto-completing endpoint URLs. You can add a link to the relevant remote specification.
In the Settings dialog (Ctrl+Alt+S) , select .
Click
in the Remote Specifications list and specify the URL of an OpenAPI specification file or find an OpenAPI specification on SwaggerHub.
![The OpenAPI Specification settings The OpenAPI Specification settings](https://resources.jetbrains.com/help/img/idea/2024.2/ac_openapi_remote_spec.png)
Use to reload specifications that were modified.
To add private OpenAPI specifications, provide your API key.
To add OpenAPI specifications from a self-hosted SwaggerHub On-Premise instance, specify the URL of your instance.
Compare OpenAPI specifications
When there is a newer specification version, you probably want to compare it against the older version to make sure that they are compatible. One way is to look at the diff Ctrl+D and compare lines that changed. However, not all changes are critical for compatibility. CLion can compare the structure of OpenAPI specifications and create a summary of changed paths, parameters, responses, and any other elements that may break the compatibility.
In the Project tool window, select two OpenAPI specification files, right-click them and select Compare OpenAPI Specifications.
This generates a Markdown file with a summary of modified specification elements. The file opens in the editor with a preview panel that makes it easy to navigate the changes. It shows the changes in the file that you selected second compared to the first one.
Generate code from an OpenAPI specification
When you have a valid OpenAPI specification open, CLion suggests generating code from it:
![Generate code based on the OpenAPI specification Generate code based on the OpenAPI specification](https://resources.jetbrains.com/help/img/idea/2024.2/openapi-codegen.png)
Click in the gutter and select Run 'openapi file'. CLion generates source code files in the specified location and shows a notification with options to open the files or import them into your project as a separate module.
Swagger Codegen run configuration
CLion creates a OpenAPI/Swagger Code Generator run configuration when you run code generation for the first time for a particular file. To modify the run configuration, open and select the necessary configuration, or click in the gutter and select Modify Run Configuration.
You can configure the following common options at the top of the OpenAPI/Swagger Code Generator run configuration:
General parameteres
Item | Description |
---|---|
Name | Specify a name for the run configuration to quickly identify it among others when editing or running. |
Store as project file | Save the file with the run configuration settings to share it with other team members. The default location is .idea/runConfigurations. However, if you do not want to share the .idea directory, you can save the configuration to any other directory within the project. By default, it is disabled, and CLion stores run configuration settings in .idea/workspace.xml. |
Code Generation Settings
Item | Description |
---|---|
Output Directory | Path to the directory for the generated files. |
Code Generator | Type of code generator:
|
Language | The target language of the generated code. |
Modify options
If some of the settings are hidden, click Modify options to show them.
Item | Description |
---|---|
Specification path | Path to the OpenAPI specification. |
JRE | Java runtime to use for running Swagger Codegen |
Custom templates path | Path to a directory with your Mustache templates. |
Generation Parameters
Provide configuration parameters depending on the target language. For more information, refer to the swagger-codegen/README.md.