IntelliJ IDEA 2021.3 Help

Ktor

Ktor is a web application framework for creating connected systems. You can use it to create server-side as well as client-side applications. It supports multiple platforms, including JVM, JavaScript, and Kotlin/Native.

IntelliJ IDEA provides the following capabilities for working with Ktor projects:

  • A wizard for creating new projects.

  • A dedicated run configuration for running and debugging Ktor projects.

  • Navigating to routes across a project.

  • Code editing assistance, including completion and renaming route names.

  • Assistance in automatic and manual testing of routes.

Create a new Ktor project

  1. On the Welcome screen, click New Project.

    Otherwise, from the main menu, select File | New | Project.

  2. In the New Project wizard, choose Ktor from the list on the left.

  3. On the right pane, you can specify the following settings:

    Ktor Project Settings
    • Name: Specify a project name.

    • Location: Specify a directory for your project.

    • Build System: Choose the desired build system. This can be Gradle with Kotlin or Groovy DSL, or Maven.

    • Website: Specify a domain used to generate a package name.

    • Artifact: This field shows a generated artifact name.

    • Ktor Version: Choose the required Ktor version.

    • Engine: Select an engine used to run a server.

    • Configuration in: Choose whether to specify server parameters in code or in a HOCON file.

    • Add sample code: Leave this option enabled to add sample code for plugins added on the next page.

    In this tutorial, we leave the default values for these settings. Click Next to go to the next page.

  4. On the next page, you can choose a set of plugins - building blocks that provide common functionality of a Ktor application, for example, authentication, serialization and content encoding, compression, cookie support, and so on.

    Ktor plugins

    For now, let's install only the Routing plugin to handle incoming requests. Start typing routing at the top left search box, find Routing in the list, and click Add.

    Add the Routing plugin

    Click Finish and wait until IntelliJ IDEA generates a project and installs the dependencies.

Run a Ktor application

IntelliJ IDEA creates a Ktor run/debug configuration automatically for newly created or imported Ktor projects. If necessary, you can disable creating a run configuration by using the Create Run Configuration automatically option on the Settings/Preferences | Languages & Frameworks | Ktor page.

To run an application using the Ktor run configuration, do one of the following:

  1. Select the Ktor run configuration in the main toolbar and click the Run button or press Shift+F10.

  2. Wait until IntelliJ IDEA runs the application. The Run tool window should show the following message:

    [main] INFO ktor.application - Responding at http://0.0.0.0:8080
    Run tool window

    This means that the server is ready to accept requests at the http://0.0.0.0:8080 address.

To find a specific route in your application using Search everywhere, follow the steps below:

  1. Press Shift twice to open the search window.

  2. Start typing a route name.

    Search Everywhere

To navigate between a route and its usages in a project, do one of the following:

  • Place the caret at the desired path or URL and press Ctrl+B.

  • Keeping Ctrl pressed, hover the mouse pointer over the path or URL. When a URL turns into a hyperlink, click it without releasing the key.

  • Click the Globe icon next to the path or URL and choose Go to declaration or usages from a popup.

IntelliJ IDEA will show related paths/URLs:

Find usages

To see all the routes defined in your Ktor application, you can use the Endpoints tool window:

  1. Click the Globe icon next to the path and choose Show all endpoints of module from a popup.

    Show endpoints
  2. In the invoked Endpoints tool window, you can see all the routes defined in your application.

    Ktor endpoints

    If a Ktor server is running, you can make a request using the HTTP Client to see a response immediately or open it in the editor.

    Ktor endpoints HTTP client

Code editing

Complete route names

IntelliJ IDEA allows you to complete names of routes:

  • Place the caret at the parameter that accepts a URL and press Ctrl+Space. The editor will show you the available routes.

    Complete route name

Rename routes

In IntelliJ IDEA, you can use rename refactoring to rename routes:

  1. Place the caret at the route name and press Shift+F6.

  2. Specify a new route name and click Refactor.

    Rename route

Testing

Create a test for a route

To create a test for a specific route, follow the steps below:

  1. Click the Globe icon next to the desired route and choose Generate test for current route from a popup.

    Generate test for route
  2. In the invoked dialog, specify a test name and click OK. IntelliJ IDEA will create a test that should be implemented.

    Generate test for route

    You can learn how to test a Ktor server from Testing.

Test a call in the HTTP editor

IntelliJ IDEA allows you to test Ktor routes using the HTTP client in code editor:

  1. Click the Globe icon next to the desired path and choose Generate request in HTTP Client.

    Generate request
  2. In the opened file, adjust request parameters.

    Adjust request parameters
  3. Click The Run button in the gutter to make a request.

    Run request
Last modified: 01 August 2022