Skip to content

Conversation

@osipxd
Copy link
Member

@osipxd osipxd commented Oct 17, 2025

YouTrack: KTOR-8982 Update API docs links in the documentation

The script I used for links transformation is attached to the YouTrack task.

Should be merged only after KTOR-8983 completed

@osipxd osipxd self-assigned this Oct 17, 2025
@coderabbitai
Copy link

coderabbitai bot commented Oct 17, 2025

Walkthrough

This PR systematically updates documentation URLs across Ktor code snippets and topic files by removing redundant path segments from API documentation links. Changes normalize paths like api.ktor.io/ktor-client/ktor-client-core/... to api.ktor.io/ktor-client-core/..., affecting 100+ files with no functional code modifications.

Changes

Cohort / File(s) Change Summary
Client Engine Configs
codeSnippets/snippets/_misc_client/AndroidConfig.kt, ApacheConfig.kt, BasicEngineConfigExample.kt, CioConfig.kt, JavaConfig.kt, JettyConfig.kt, OkHttpConfig.kt
Updated documentation URLs in inline comments to remove redundant path segments (e.g., ktor-client-ktor-client-androidktor-client-android). No functional changes.
Client Topics - Core
topics/client-*.md (auth, basic-auth, bom-remover, caching, call-id, content-encoding, cookies, create-and-configure, create-new-application, custom-plugins, default-request, digest-auth, engines, http-send, logging, multiplatform, proxy, request-retry, requests, response-validation, responses, serialization, server-sent-events, ssl, testing, timeout, user-agent, websocket-serialization, websockets)
Updated multiple API documentation hyperlinks by removing intermediate path segments (e.g., ktor-client/ktor-client-corektor-client-core) throughout client configuration and reference documentation.
Server Topics - Core
topics/server-*.md (auth, autoheadresponse, basic-auth, bearer-auth, caching-headers, call-id, call-logging, compression, conditional-headers, configuration-code, configuration-file, cors, custom-plugins-base-api, custom-plugins, default-headers, digest-auth, double-receive, engines, events, form-based-auth, forward-headers, freemarker, hsts, html-dsl, https-redirect, integrate-database, jte, jwt, ldap, logging, method-override, metrics-dropwizard, metrics-micrometer, modules, mustache, oauth, openapi, partial-content, pebble, rate-limit, request-validation, requests, resources, responses, routing, serialization, server-sent-events, serving-spa, session-auth, sessions, shutdown-url, sockets, ssl, static-content, status-pages, swagger-ui, testing, thymeleaf, velocity, war, webjars, websocket-serialization, websockets)
Updated numerous server-side API documentation links by normalizing paths and removing redundant segments (e.g., ktor-server/ktor-server-plugins → direct module paths). Minor wording adjustments in some sections.
Migration & FAQ
topics/FAQ.topic, topics/migrating-3.md, topics/migration-to-20x.md, topics/server-application-structure.md, topics/whats-new-320.md
Updated documentation link targets to reflect new API path structures across migration guides and FAQ references.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~25 minutes

The PR consists of highly homogeneous, repetitive URL path normalization changes across a large number of files. While the file count is substantial (100+), each change follows an identical pattern—removing redundant segments from documentation links—requiring minimal cognitive load per file or cluster. No logic, control flow, or API surface changes are involved.

Possibly related PRs

  • ktorio/ktor-documentation#677: Overlaps on topics/client-bom-remover.md and topics/client-custom-plugins.md with similar documentation edits including BOMRemover import corrections and createClientPlugin guidance updates.
  • ktorio/ktor-documentation#650: Modifies the same file (topics/client-default-request.md), though with different content additions (Unix domain sockets).

Suggested reviewers

  • vnikolova
  • Stexxe
  • e5l

Pre-merge checks and finishing touches

✅ Passed checks (3 passed)
Check name Status Explanation
Title Check ✅ Passed The PR title "KTOR-8982 Update API docs links in the documentation" directly and accurately describes the primary change in the changeset. The entire pull request consists of updating API documentation URLs across numerous files (client configuration snippets, client documentation topics, server documentation topics, and migration guides). The title is concise, specific, and clearly communicates the main purpose without noise or vagueness.
Description Check ✅ Passed The PR description is directly related to the changeset, explicitly referencing the YouTrack issue "KTOR-8982 Update API docs links in the documentation" and providing relevant context about the transformation script and a dependency on another issue (KTOR-8983). The description provides useful information beyond just the title while remaining focused on the actual changes being made.
Docstring Coverage ✅ Passed No functions found in the changes. Docstring coverage check skipped.
✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch osipxd/update-api-docs-links

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@osipxd osipxd marked this pull request as ready for review October 20, 2025 11:54
@osipxd osipxd force-pushed the osipxd/update-api-docs-links branch from cc7376f to 746a427 Compare October 20, 2025 11:55
Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 6

🧹 Nitpick comments (1)
topics/server-custom-plugins.md (1)

32-32: Minor: Add language specifier to empty code block.

Static analysis flagged line 32 for a missing language specifier on the fenced code block. However, given that this file uses a documentation system with external source includes ({src="..."}), this may be an intentional pattern. If the documentation build system requires language specifications even for placeholder code blocks, apply this fix:

 1. To create a plugin, call
    the [createApplicationPlugin](https://api.ktor.io/ktor-server-core/io.ktor.server.application/create-application-plugin.html)
    function and pass a plugin name:
-   ```
+   ```kotlin
    ```
    {src="snippets/custom-plugin/src/main/kotlin/com/example/plugins/SimplePlugin.kt" include-lines="3-7"}

Note: Similar empty code blocks appear throughout the file (lines 40, 77, 93, 125, 157, 191, 207, 238, 254, 260, 268, 285, 292, 304, 312, 328). If you apply this fix to line 32, consider applying it consistently across all similar blocks in the file to prevent linter warnings.

📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 3b18f7e and 746a427.

📒 Files selected for processing (104)
  • codeSnippets/snippets/_misc_client/AndroidConfig.kt (1 hunks)
  • codeSnippets/snippets/_misc_client/ApacheConfig.kt (1 hunks)
  • codeSnippets/snippets/_misc_client/BasicEngineConfigExample.kt (1 hunks)
  • codeSnippets/snippets/_misc_client/CioConfig.kt (1 hunks)
  • codeSnippets/snippets/_misc_client/JavaConfig.kt (1 hunks)
  • codeSnippets/snippets/_misc_client/JettyConfig.kt (1 hunks)
  • codeSnippets/snippets/_misc_client/OkHttpConfig.kt (1 hunks)
  • topics/FAQ.topic (1 hunks)
  • topics/client-auth.md (2 hunks)
  • topics/client-basic-auth.md (1 hunks)
  • topics/client-bom-remover.md (1 hunks)
  • topics/client-caching.md (2 hunks)
  • topics/client-call-id.md (1 hunks)
  • topics/client-content-encoding.md (2 hunks)
  • topics/client-cookies.md (2 hunks)
  • topics/client-create-and-configure.md (2 hunks)
  • topics/client-create-new-application.topic (1 hunks)
  • topics/client-custom-plugins.md (2 hunks)
  • topics/client-default-request.md (2 hunks)
  • topics/client-digest-auth.md (1 hunks)
  • topics/client-engines.md (10 hunks)
  • topics/client-http-send.md (1 hunks)
  • topics/client-logging.md (2 hunks)
  • topics/client-multiplatform.md (1 hunks)
  • topics/client-proxy.md (1 hunks)
  • topics/client-request-retry.md (2 hunks)
  • topics/client-requests.md (9 hunks)
  • topics/client-response-validation.md (3 hunks)
  • topics/client-responses.md (5 hunks)
  • topics/client-serialization.md (3 hunks)
  • topics/client-server-sent-events.topic (6 hunks)
  • topics/client-ssl.md (2 hunks)
  • topics/client-testing.md (1 hunks)
  • topics/client-timeout.md (2 hunks)
  • topics/client-user-agent.md (1 hunks)
  • topics/client-websocket-serialization.md (1 hunks)
  • topics/client-websockets.topic (4 hunks)
  • topics/migrating-3.md (10 hunks)
  • topics/migration-to-20x.md (1 hunks)
  • topics/server-application-structure.md (1 hunks)
  • topics/server-auth.md (9 hunks)
  • topics/server-autoheadresponse.md (1 hunks)
  • topics/server-basic-auth.md (4 hunks)
  • topics/server-bearer-auth.md (3 hunks)
  • topics/server-caching-headers.md (2 hunks)
  • topics/server-call-id.md (1 hunks)
  • topics/server-call-logging.md (1 hunks)
  • topics/server-compression.md (1 hunks)
  • topics/server-conditional-headers.md (2 hunks)
  • topics/server-configuration-code.topic (10 hunks)
  • topics/server-configuration-file.topic (1 hunks)
  • topics/server-cors.md (4 hunks)
  • topics/server-custom-plugins-base-api.md (2 hunks)
  • topics/server-custom-plugins.md (3 hunks)
  • topics/server-default-headers.md (1 hunks)
  • topics/server-digest-auth.md (3 hunks)
  • topics/server-double-receive.md (1 hunks)
  • topics/server-engines.md (1 hunks)
  • topics/server-events.md (2 hunks)
  • topics/server-form-based-auth.md (3 hunks)
  • topics/server-forward-headers.md (4 hunks)
  • topics/server-freemarker.md (1 hunks)
  • topics/server-hsts.md (2 hunks)
  • topics/server-html-dsl.md (2 hunks)
  • topics/server-https-redirect.md (1 hunks)
  • topics/server-integrate-database.topic (1 hunks)
  • topics/server-jte.md (1 hunks)
  • topics/server-jwt.md (3 hunks)
  • topics/server-ldap.md (3 hunks)
  • topics/server-logging.md (1 hunks)
  • topics/server-method-override.md (1 hunks)
  • topics/server-metrics-dropwizard.md (1 hunks)
  • topics/server-metrics-micrometer.md (2 hunks)
  • topics/server-modules.md (1 hunks)
  • topics/server-mustache.md (1 hunks)
  • topics/server-oauth.md (3 hunks)
  • topics/server-openapi.md (1 hunks)
  • topics/server-partial-content.md (1 hunks)
  • topics/server-pebble.md (1 hunks)
  • topics/server-rate-limit.md (1 hunks)
  • topics/server-request-validation.md (1 hunks)
  • topics/server-requests.md (7 hunks)
  • topics/server-resources.md (2 hunks)
  • topics/server-responses.md (8 hunks)
  • topics/server-routing.md (2 hunks)
  • topics/server-serialization.md (2 hunks)
  • topics/server-server-sent-events.topic (3 hunks)
  • topics/server-serving-spa.md (1 hunks)
  • topics/server-session-auth.md (2 hunks)
  • topics/server-sessions.md (5 hunks)
  • topics/server-shutdown-url.md (1 hunks)
  • topics/server-sockets.md (1 hunks)
  • topics/server-ssl.md (2 hunks)
  • topics/server-static-content.md (3 hunks)
  • topics/server-status-pages.md (1 hunks)
  • topics/server-swagger-ui.md (1 hunks)
  • topics/server-testing.md (2 hunks)
  • topics/server-thymeleaf.md (2 hunks)
  • topics/server-velocity.md (1 hunks)
  • topics/server-war.md (1 hunks)
  • topics/server-webjars.md (1 hunks)
  • topics/server-websocket-serialization.md (1 hunks)
  • topics/server-websockets.md (3 hunks)
  • topics/whats-new-320.md (1 hunks)
🧰 Additional context used
🪛 LanguageTool
topics/server-serialization.md

[style] ~337-~337: Consider a more expressive alternative.
Context: ... for serializing/deserializing data. To do this, you need to implement the [Conten...

(DO_ACHIEVE)

topics/client-timeout.md

[grammar] ~47-~47: Ensure spelling is correct
Context: ...sample below shows how to set a request timout using requestTimeoutMillis: ```kotlin...

(QB_NEW_EN_ORTHOGRAPHY_ERROR_IDS_1)

🪛 markdownlint-cli2 (0.18.1)
topics/server-session-auth.md

93-93: Spaces inside link text

(MD039, no-space-in-links)


96-96: Link fragments should be valid

(MD051, link-fragments)


100-100: Spaces inside link text

(MD039, no-space-in-links)

topics/client-engines.md

69-69: Spaces inside link text

(MD039, no-space-in-links)


96-96: Spaces inside link text

(MD039, no-space-in-links)


152-152: Spaces inside link text

(MD039, no-space-in-links)


199-199: Spaces inside link text

(MD039, no-space-in-links)


221-221: Spaces inside link text

(MD039, no-space-in-links)


259-259: Spaces inside link text

(MD039, no-space-in-links)


287-287: Spaces inside link text

(MD039, no-space-in-links)


343-343: Spaces inside link text

(MD039, no-space-in-links)

topics/server-custom-plugins.md

32-32: Fenced code blocks should have a language specified

(MD040, fenced-code-language)

topics/server-caching-headers.md

19-19: Link fragments should be valid

(MD051, link-fragments)

topics/server-static-content.md

46-46: Spaces inside link text

(MD039, no-space-in-links)

topics/server-responses.md

36-36: Link fragments should be valid

(MD051, link-fragments)


91-91: Link fragments should be valid

(MD051, link-fragments)


91-91: Link fragments should be valid

(MD051, link-fragments)

topics/server-auth.md

86-86: Spaces inside link text

(MD039, no-space-in-links)


157-157: Spaces inside link text

(MD039, no-space-in-links)


160-160: Spaces inside link text

(MD039, no-space-in-links)

topics/client-responses.md

41-41: Spaces inside link text

(MD039, no-space-in-links)

🔇 Additional comments (119)
topics/server-double-receive.md (2)

18-18: Verify the updated API documentation link is accessible.

The URL has been updated to the new normalized path format per the PR objectives. However, since the link target needs to match actual API documentation structure after the upstream changes (KTOR-8983), please verify this link is accessible once that issue is resolved.


22-24: Experimental API note is well-positioned and formatted.

The note clearly communicates that the plugin uses experimental APIs with potential breaking changes. Placement and formatting are appropriate for reader visibility.

topics/server-partial-content.md (1)

22-22: Verify the API documentation link normalization.

I can see this line was updated as part of the API docs link normalization. The current URL https://api.ktor.io/ktor-server-partial-content/io.ktor.server.plugins.partialcontent/-partial-content.html follows the normalized pattern (artifact name directly under api.ktor.io/ without redundant parent segments), which aligns with the PR objectives.

However, I cannot see the old URL in the provided context to verify the transformation. Please confirm:

  1. The old URL contained a redundant path segment (e.g., ktor-server/ktor-server-partial-content/)
  2. The current normalized URL resolves correctly and points to the correct API documentation
topics/server-pebble.md (1)

21-21: Verify the API documentation URL follows the correct normalization pattern.

The URL on line 21 currently reads: https://api.ktor.io/ktor-server-pebble/io.ktor.server.pebble/-pebble

Per the PR objectives, the normalization pattern removes redundant path segments (e.g., api.ktor.io/ktor-client/ktor-client-core/...api.ktor.io/ktor-client-core/...). If the same pattern applies here, the URL should be: https://api.ktor.io/io.ktor.server.pebble/-pebble (without the ktor-server-pebble/ segment).

Please confirm:

  1. What was the URL before this change?
  2. Is the updated URL valid and accessible?
  3. Does it follow the correct normalization pattern for the PR?
topics/server-cors.md (1)

21-21: Documentation links consistently normalized.

All four API documentation links have been updated systematically:

  • Line 21: CORS plugin reference
  • Line 41 & 171: CORSConfig class references (consistent across both uses)
  • Line 129: allowNonSimpleContentTypes property reference

The URLs follow a consistent pattern with the module and fully qualified class paths intact, aligning with the PR's objective to normalize API documentation link paths.

Also applies to: 41-41, 129-129, 171-171

topics/server-freemarker.md (1)

21-21: URL path normalization looks good.

Line 21 updates the FreeMarker plugin API documentation link to remove the redundant ktor-server/ path segment, aligning with the PR's systematic documentation link updates. The new format (api.ktor.io/ktor-server-freemarker/...) is consistent with the pattern described in the PR objectives.

To confirm the updated link is valid and resolves correctly, you may want to verify that the new URL path structure is consistent across other updated documentation files in this PR. Given the scale of changes (100+ files), spot-checking a few files to ensure the link transformation was applied uniformly would be prudent before merging, particularly since this PR is blocked pending completion of YouTrack issue KTOR-8983.

topics/server-method-override.md (1)

22-24: Verify URL validity and consistency across the 100+ affected files.

The URL structure on line 22 appears consistent with the package and artifact naming conventions (lines 6-7), and the content expansion on lines 23-24 is clear and pedagogically helpful with concrete examples. However, since only 1 file is provided for review out of 100+ affected files mentioned in the PR summary, I cannot verify:

  1. Whether the URL is accessible and correctly formatted
  2. Whether the URL normalization pattern is consistently applied across all affected files
  3. Whether the transformation script on YouTrack KTOR-8982 was correctly applied

Before merging, confirm:

  • The URL on line 22 resolves correctly to the XHttpMethodOverride plugin documentation
  • The URL pattern (removing redundant segments like ktor-server/ or similar) is consistently applied across all 100+ files
  • YouTrack issue KTOR-8983 is completed (as noted in the PR description)

Consider running a broad validation script to spot-check URLs across several affected documentation files to ensure the transformation was applied uniformly.

topics/server-serving-spa.md (1)

42-42: URL normalization appears correct and documentation remains clear.

The API documentation link has been properly normalized by removing the redundant ktor-server/ path segment. The updated URL follows the pattern documented in the PR objectives. The accompanying narrative and code example are accurate and coherent.

To confirm the URL is correct and resolves to the intended API documentation, please verify that https://api.ktor.io/ktor-server-core/io.ktor.server.http.content/single-page-application.html is accessible and documents the singlePageApplication function correctly.

topics/client-testing.md (1)

23-23: API documentation link verified as accessible — change approved.

The updated MockEngine API documentation link resolves correctly and the change aligns with the PR's systematic path normalization objectives. No further action required.

topics/client-websockets.topic (1)

55-55: All updated API documentation links are accessible and valid.

Verification confirms all four normalized URLs resolve successfully:

  • Lines 55, 114, 132: Client plugin references correctly point to api.ktor.io/ktor-client-core/...
  • Line 103: WebSocket session reference correctly points to api.ktor.io/ktor-websockets/...

The link normalization is correctly applied and all targets are live.

topics/client-proxy.md (1)

36-36: Link verified as valid and correct.

The ProxyBuilder documentation link is accessible and displays the correct ProxyBuilder members and functions on api.ktor.io. The path normalization change aligns with the PR's objective, and no issues were identified.

topics/server-https-redirect.md (1)

18-18: API documentation link verified — code change is approved.

The updated URL resolves correctly to the Ktor API documentation page for the HttpsRedirect plugin. The link normalization aligns with the package metadata defined in the file and is consistent with the broader PR pattern.

topics/server-rate-limit.md (1)

9-9: Approved: API documentation link verified and valid.

The URL update correctly removes the intermediate ktor-server-plugins/ segment. The URL is reachable and returns the correct Ktor RateLimit API documentation.

topics/server-static-content.md (1)

28-28: Link updates look correct and consistent.

All three API documentation links have been updated to the normalized path structure (api.ktor.io/ktor-server-core/io.ktor.server.http.content/{function}.html), which aligns with the PR objectives. Link texts match their respective function names accurately.

Also applies to: 46-46, 68-68

topics/server-conditional-headers.md (2)

18-18: The updated API documentation link is valid and correctly resolves. The URL resolves and returns the Ktor API page for "Conditional Headers", confirming the path segment normalization from ktor-server-plugins to ktor-server-conditional-headers is correct. This documentation-only improvement aligns with the PR's objective of normalizing Ktor API documentation links.


35-35: All Ktor API documentation links verified and accessible.

The three API documentation URLs are correctly formed and resolve:

  • ConditionalHeadersConfig (ktor-server-conditional-headers) exists
  • EntityTagVersion (ktor-http) exists
  • LastModifiedVersion (ktor-http) exists

The updated URL path segments are valid.

topics/client-server-sent-events.topic (1)

49-49: All API documentation URL changes are valid and correctly applied.

The verification confirms:

  • All 6 transformed URLs are live and accessible (HTTP 200)
  • No old-style URLs with redundant path segments remain in the file
  • The transformation was applied consistently and completely

The code changes are correct and ready.

topics/server-hsts.md (1)

18-18: Based on the curl output, I cannot determine if the URLs are returning HTTP 200 OK or error codes because the response headers were not captured. Let me check the repository context to verify the URLs more thoroughly.

Verify URL accessibility and confirm normalization pattern matches PR intent.

The concern raised about discrepancy between the AI summary and actual URLs cannot be definitively resolved:

  • URL accessibility: Curl output did not capture HTTP status codes, so I cannot confirm whether the current URLs return 200 OK or errors
  • Normalization pattern: Web searches did not clarify whether api.ktor.io/ktor-server-hsts/io.ktor.server.plugins.hsts/... represents the final normalized state or if further changes are needed

The original review's observation is valid—verify that the URLs in lines 18 and 36 reflect the intended normalization and are accessible.

topics/server-compression.md (2)

19-19: API documentation link verified as accessible.

The normalized link on line 19 returns HTTP 200 and is valid. The file's API documentation links follow a consistent normalization pattern:

  • Line 19 (Compression): api.ktor.io/ktor-server-compression/io.ktor.server.plugins.compression/-compression.html
  • Line 138 (ContentEncoder): api.ktor.io/ktor-utils/io.ktor.util/-content-encoder/index.html

All links are accessible and properly normalized.


138-139: Verify consistency between API documentation links in the file.

Both API links are currently accessible (HTTP 200), but they use inconsistent URL patterns:

  • Line 19 Compression: ends with /-compression.html
  • Line 138 ContentEncoder: ends with /-content-encoder/index.html

The current ContentEncoder link works, but the alternative format (.html without /index.html) returns 404. Verify against your PR changes whether line 138 should be updated to match line 19's pattern for consistency, or if the different patterns are intentional.

topics/server-integrate-database.topic (1)

455-455: Documentation link updated correctly.

The Content Negotiation plugin URL has been simplified by removing the redundant path segment, consistent with the PR-wide normalization pattern.

codeSnippets/snippets/_misc_client/BasicEngineConfigExample.kt (1)

3-3: Documentation link in comment updated correctly.

The HttpClientEngineConfig link has been normalized by removing the redundant path segment.

topics/server-mustache.md (1)

21-21: Documentation link updated correctly.

The Mustache plugin URL follows the new simplified path structure.

topics/client-cookies.md (1)

18-18: Documentation links updated correctly.

Both the HttpCookies and CookiesStorage links have been normalized to use the simplified path structure.

Also applies to: 54-54

topics/server-webjars.md (1)

23-23: Documentation link updated correctly.

The Webjars plugin link follows the new simplified path structure.

topics/client-http-send.md (1)

11-11: Documentation link updated correctly.

The HttpSend plugin link has been normalized to the simplified path structure.

topics/server-call-logging.md (1)

37-37: Documentation link updated correctly.

The CallLoggingConfig link follows the new simplified path structure.

topics/server-bearer-auth.md (1)

43-43: Documentation links updated correctly.

All bearer authentication-related links have been normalized to use the simplified io.ktor.server.auth path structure, consistent with the PR-wide documentation update.

Since the PR description notes this should only be merged after KTOR-8983 is completed, please verify that the API documentation structure changes in KTOR-8983 are deployed before merging to ensure these links resolve correctly.

Also applies to: 64-64, 75-75

topics/server-war.md (1)

32-32: Documentation link updates are consistent with PR objectives.

The ServletApplicationEngine API documentation link has been correctly normalized, removing redundant path segments as intended in this PR. This aligns with the systematic URL path normalization across documentation topics.

topics/server-jte.md (1)

19-19: JTE plugin link normalization looks good.

The link has been properly simplified to reflect the consolidated module path structure. This follows the same normalization pattern as other files in the PR.

topics/server-modules.md (1)

13-13: Application class link normalized correctly.

The Application class documentation link has been simplified as part of the systematic path normalization. The change maintains document readability while removing redundant path components.

topics/server-ssl.md (2)

35-35: buildKeyStore link normalized.

The buildKeyStore function link from ktor-network-tls-certificates has been correctly simplified following the normalization pattern.


142-145: ApplicationEngine.Configuration and sslConnector links normalized.

Both links have been updated to reflect the consolidated module paths. The changes properly remove redundant segments while maintaining accurate API documentation references.

topics/server-velocity.md (1)

21-21: Velocity plugin link properly normalized.

The Velocity plugin link has been simplified according to the URL normalization objectives. The change removes redundant module segments while preserving the correct API reference.

topics/server-oauth.md (3)

73-73: oauth function link normalized.

The oauth authentication function link has been correctly updated to the consolidated module path structure.


136-136: OAuthServerSettings link updated.

The OAuthServerSettings class documentation reference has been normalized according to the PR's path consolidation objectives.


163-163: OAuthAccessTokenResponse link normalized.

The OAuthAccessTokenResponse class link has been properly simplified to reflect the updated module path structure.

topics/server-sockets.md (1)

139-139: TLSConfigBuilder link normalized.

The TLSConfigBuilder documentation link has been updated to the consolidated module path. The change is consistent with the overall path normalization effort across network-related topics.

topics/client-request-retry.md (2)

17-17: HttpRequestRetry link normalized.

The HttpRequestRetry plugin documentation link has been correctly simplified following the consolidation pattern, removing redundant path segments.


54-54: HttpRequestRetryConfig link normalized.

The HttpRequestRetryConfig documentation reference has been updated to the consolidated module path structure, consistent with the PR's objectives.

topics/server-application-structure.md (1)

70-70: Documentation link update looks good.

The API link for the Application type has been updated to use the shortened path format, consistent with the PR's systematic URL normalization.

Verify that the new shortened API link resolves correctly and points to the same documentation content as the original longer path.

topics/server-thymeleaf.md (2)

19-19: Thymeleaf plugin link updated consistently.

The link to the Thymeleaf plugin has been normalized by removing the redundant ktor-server-plugins/ path segment.

Confirm the new shortened link resolves to the Thymeleaf plugin documentation.


51-51: ThymeleafContent link updated to match pattern.

The link to ThymeleafContent has been updated with the same path normalization.

topics/client-ssl.md (2)

68-68: TLSConfigBuilder link updated.

The link to TLSConfigBuilder has been normalized following the PR pattern.

Verify the link resolves correctly to the TLSConfigBuilder documentation.


99-99: CertificatePinner link updated for Darwin engine.

The link to CertificatePinner has been updated to the shortened path format.

topics/server-swagger-ui.md (1)

7-7: Swagger UI plugin API link normalized in template variable.

The plugin_api_link variable has been updated from a longer path including redundant segments to a shortened format: https://api.ktor.io/ktor-server-swagger/...

Confirm that the shortened link resolves correctly and that the variable substitution in the document works as intended (e.g., line 35's reference to %plugin_api_link%).

topics/server-status-pages.md (1)

23-23: StatusPages plugin link normalized.

The link to the StatusPages plugin has been updated to use the shortened path format by removing the redundant ktor-server-plugins/ segment.

Verify the new link resolves to the StatusPages plugin documentation.

codeSnippets/snippets/_misc_client/ApacheConfig.kt (1)

7-7: ApacheEngineConfig documentation link normalized in comment.

The inline documentation link in the comment has been updated from ktor-client/ktor-client-apache/... to ktor-client-apache/..., removing the redundant intermediate path segment.

topics/server-autoheadresponse.md (1)

20-20: AutoHeadResponse plugin link updated.

The link to the AutoHeadResponse plugin has been normalized to use the shortened path format.

Confirm the new link resolves correctly to the AutoHeadResponse plugin documentation.

codeSnippets/snippets/_misc_client/JavaConfig.kt (1)

7-7: JavaHttpConfig documentation link normalized in comment.

The inline documentation link has been updated to use the shortened path format for the JavaHttpConfig reference.

topics/server-metrics-dropwizard.md (1)

21-21: LGTM: link moved to ktor-server-metrics

URL matches artifact_name and package namespace for DropwizardMetrics.

topics/server-routing.md (2)

36-36: LGTM: route() KDoc link base fixed

Points to ktor-server-core/io.ktor.server.routing/route.html as expected.


51-51: LGTM: get() KDoc link base fixed

Points to ktor-server-core/io.ktor.server.routing/get.html; consistent with other verb docs.

codeSnippets/snippets/_misc_client/JettyConfig.kt (1)

7-7: LGTM: Jetty (Jakarta) KDoc URL corrected

Now under ktor-client-jetty-jakarta and correct package/class page.

codeSnippets/snippets/_misc_client/CioConfig.kt (1)

7-7: LGTM: CIO/TLS KDoc URLs normalized

CIOEngineConfig, EndpointConfig, and TLSConfigBuilder now point to the right modules/paths.

Also applies to: 10-10, 18-18

topics/server-configuration-file.topic (1)

461-461: LGTM: normalized API doc URL

Link at line 461 verified as accessible and correct. Targets ktor-server-core path in the Ktor API documentation.

topics/server-events.md (1)

18-18: Link normalization applied correctly.

The EventDefinition and Events API references have been updated to use normalized paths (e.g., /ktor-events/ instead of /ktor-shared/ktor-events/), and the predefined events list links have been simplified from /ktor-server-core/ to remove the redundant /ktor-server/ segment. These changes align with the PR objective and maintain documentation integrity.

Also applies to: 39-44, 52-52

topics/server-responses.md (2)

10-13: Link normalization applied consistently across response-handling APIs.

All documentation links have been updated to use normalized paths, removing redundant path segments (e.g., /ktor-server-core/ instead of /ktor-server/ktor-server-core/). The changes maintain URL fragment integrity and preserve all reference targets.

Also applies to: 18-18, 30-30, 35-35, 40-40, 51-51, 66-66, 69-69, 87-87, 92-92, 117-117, 124-124, 150-150, 160-160


36-36: Verify static analysis hints for link fragments.

The markdown linter flagged MD051 (link-fragments) warnings at lines 36 and 91. Please verify that:

  • Line 36: The trailing ... is not truncating content and breaking the link syntax.
  • Line 91: The section anchor id="status" is correctly referenced elsewhere in the document or external links.

These may be false positives since URL fragments are unchanged by the normalization, but visual inspection recommended.

Also applies to: 91-91

topics/client-user-agent.md (1)

5-5: UserAgent plugin link correctly normalized.

The API reference link has been updated to use the streamlined path /ktor-client-core/io.ktor.client.plugins/-user-agent instead of the redundant /ktor-client/ktor-client-core/ segment. Documentation content and meaning remain unchanged.

topics/server-metrics-micrometer.md (1)

21-21: MicrometerMetrics API references correctly normalized.

Links to the MicrometerMetrics plugin and MicrometerMetricsConfig class have been updated to use the normalized base path /ktor-server-metrics-micrometer/io.ktor.server.metrics.micrometer/, removing redundant path segments while preserving all reference targets.

Also applies to: 67-67

topics/client-bom-remover.md (1)

27-27: BOMRemover API reference correctly normalized.

The BOMRemover plugin link has been updated to reflect the normalized package path structure (io.ktor.client.plugins.bomremover), simplifying the base URL while maintaining the complete API reference.

topics/client-requests.md (1)

19-19: Client request API links comprehensively normalized.

Documentation links for request-building functions (.request, .get, .post, .put, .submitForm, etc.) and classes (HttpRequestBuilder, HttpResponse, URLBuilder, MultiPartFormDataContent, etc.) have been consistently updated to remove redundant path segments. All references remain valid and functional.

Also applies to: 29-29, 37-37, 67-69, 99-99, 176-176, 186-186, 198-198, 211-211, 233-233, 245-245, 267-267, 270-270, 275-275, 321-321, 323-323

topics/server-shutdown-url.md (1)

10-10: ShutDownUrl plugin link correctly normalized.

The API reference for the ShutDownUrl plugin has been updated to the normalized path /ktor-server-core/io.ktor.server.engine/-shut-down-url/, removing the intermediate path segment while maintaining the complete reference to the plugin class.

topics/server-websocket-serialization.md (1)

121-121: WebSocket serialization API reference correctly normalized.

The link to WebsocketContentConverter.deserialize has been updated to the normalized path structure /ktor-serialization/io.ktor.serialization/-websocket-content-converter/deserialize.html, maintaining the complete API reference while removing redundant path segments.

topics/client-caching.md (1)

14-14: LGTM! Documentation link updates are correct.

The API documentation URLs have been properly normalized by removing the redundant /ktor-client/ path segment. The links now correctly point to the module-specific paths.

Also applies to: 38-39

topics/FAQ.topic (1)

181-181: LGTM! Link normalization is correct.

The NoTransformationFoundException API documentation link has been properly updated to remove the redundant path segment.

topics/client-response-validation.md (1)

36-40: LGTM! All API documentation links properly normalized.

The exception classes (RedirectResponseException, ClientRequestException, ServerResponseException) and plugin-related links (HttpCallValidator, HttpResponseValidator, validateResponse, handleResponseExceptionWithRequest) have been correctly updated to use the normalized URL paths.

Also applies to: 46-48, 63-63, 79-79

topics/server-sessions.md (1)

26-26: LGTM! Server sessions API links properly migrated.

All API documentation links have been correctly updated from the generic ktor-server-plugins path to the module-specific ktor-server-sessions path, improving documentation accuracy and consistency.

Also applies to: 88-88, 132-132, 144-144, 153-153

topics/server-configuration-code.topic (1)

25-25: LGTM! Comprehensive server configuration API link updates.

All API documentation links throughout the server configuration documentation have been properly normalized:

  • Core server links updated to ktor-server-core
  • Engine-specific links updated to their respective modules (Netty, Jetty, CIO, Tomcat)
  • Command-line configuration links updated appropriately

The changes are systematic and correct.

Also applies to: 48-48, 61-61, 85-85, 111-117, 146-146, 166-166, 195-195, 230-230, 242-248

codeSnippets/snippets/_misc_client/AndroidConfig.kt (1)

8-8: LGTM! Code comment documentation link updated correctly.

The API documentation URL in the comment has been properly normalized by removing the redundant path segment.

topics/server-request-validation.md (1)

23-23: LGTM! Request validation plugin link updated correctly.

The API documentation link has been properly migrated from the generic plugins path to the module-specific ktor-server-request-validation path.

topics/server-resources.md (1)

21-21: LGTM! Resources plugin documentation links updated correctly.

The API documentation links have been properly updated to point to the correct module paths for the Resources plugin functionality.

Note: Verify KTOR-8983 completion before merging.

The PR description states: "this PR should be merged only after YouTrack issue KTOR-8983 is completed." Please ensure that dependency is satisfied before merging this PR.

Additionally, consider verifying that the updated API documentation URLs are accessible and correctly resolve to the intended documentation pages.

Also applies to: 179-179

topics/client-logging.md (1)

18-18: Documentation link updates look good.

Both API reference URLs have been correctly simplified by removing redundant path segments. The changes follow the consistent pattern established across this PR.

Also applies to: 106-106

topics/server-html-dsl.md (1)

23-23: HTML DSL API reference links updated correctly.

All five API documentation links have been streamlined by removing redundant path segments (ktor-server/ktor-server-plugins/). The new paths correctly point to the consolidated io.ktor.server.html package namespace.

Also applies to: 86-86, 87-87, 89-89, 90-90

topics/server-testing.md (1)

40-40: Testing API reference links updated correctly.

Both API documentation links have been properly simplified. The new paths correctly route to their respective modules (ktor-server-test-host for testApplication, ktor-server-core for MapApplicationConfig).

Also applies to: 128-128

topics/server-custom-plugins-base-api.md (1)

22-22: Custom plugin API reference links updated correctly.

All three API documentation links have been simplified by removing the redundant "ktor-server/" segment. The new paths correctly consolidate references to the ktor-server-core module.

Also applies to: 23-23, 162-162

topics/server-logging.md (1)

74-74: Logging API reference links updated correctly.

Both API documentation links have been simplified by removing the "ktor-server/" redundancy. The new paths correctly point to io.ktor.server.application under the ktor-server-core module.

Also applies to: 80-80

topics/server-openapi.md (1)

7-7: OpenAPI plugin API link variable updated correctly.

The plugin_api_link variable has been simplified by removing redundant path segments, now correctly pointing to the ktor-server-openapi module base.

topics/server-engines.md (1)

51-51: Server engine API reference links updated correctly.

Both API documentation links have been simplified. The embeddedServer() function now correctly references ktor-server-core, and Netty correctly references ktor-server-netty.

Also applies to: 53-53

topics/server-forward-headers.md (1)

18-18: Forward headers API reference links updated correctly.

All four API documentation links have been simplified by removing redundant path segments. The new paths correctly route to their respective modules (ktor-server-forwarded-header for ForwardedHeaders/XForwardedHeaders, ktor-server-core for request properties).

Also applies to: 66-66, 77-77, 110-110

topics/server-requests.md (2)

45-120: LGTM - Additional request handling API links updated.

Query parameters, body content handling, and multipart-related API links have been normalized to the new paths.


14-33: All documentation links verified and working.

All 6 external API links return HTTP 200 status, and all 3 internal markdown references (server-responses.md, server-sessions.md, server-forward-headers.md) exist in the repository. The documentation updates are correct.

topics/server-default-headers.md (1)

9-9: LGTM - DefaultHeaders plugin link updated.

The plugin API link variable has been updated to the new module path.

topics/server-serialization.md (2)

24-24: LGTM - ContentNegotiation plugin link updated.

The link has been updated to the new module path.


337-343: LGTM - ContentConverter documentation enhanced.

The ContentConverter interface documentation now includes both serialize and deserialize method signatures, providing a more complete reference. The API link has also been updated to the new path.

topics/client-serialization.md (1)

21-21: LGTM - Client serialization API links updated.

The ContentNegotiation plugin and serializer method links have been updated to the new module paths.

Also applies to: 140-140, 157-157

topics/client-websocket-serialization.md (1)

134-134: LGTM - WebSocket serialization API link updated.

The WebsocketContentConverter.deserialize link has been updated to the new serialization module path.

topics/server-caching-headers.md (2)

19-19: The updated API documentation link is accessible and functioning correctly. The URL returns an HTTP 200 status, confirming the target is reachable and the module path with anchor fragment is valid.


36-36: The API documentation link is accessible and returns HTTP 200, confirming it is valid and working correctly. The updated module path to the options function is properly configured.

topics/server-server-sent-events.topic (2)

94-94: URL verification successful.

The ServerSSESession API link is accessible (HTTP 200). The updated link path is working correctly.


139-139: SSE API links verified as working—approval confirmed.

Both SSE-related URLs have been validated and are accessible:

  • Heartbeat: https://api.ktor.io/ktor-server-sse/io.ktor.server.sse/heartbeat.html (HTTP 200)
  • ServerSSESessionWithSerialization: https://api.ktor.io/ktor-server-sse/io.ktor.server.sse/-server-s-s-e-session-with-serialization/index.html (HTTP 200)
topics/server-session-auth.md (1)

45-45: Based on verification of the three API links in the review comment—all returning HTTP 200 status codes and confirming accessibility—the documentation links are functional. However, the original review comment contains conflicting directives ( with ) and mentions unverified concerns about markdown formatting (spaces in link text at lines 93, 100 and link fragments at line 96) that require direct file inspection to assess.

No changes recommended. Verify link formatting concerns directly.

The linked API endpoints are accessible and working. The flagged issues about markdown formatting require inspection of the actual file content at the specified lines to determine if they represent actual problems or style linting artifacts. Verify the content and formatting of lines 45, 93, 100, and 96 in the documentation to assess whether the static analysis concerns are substantive.

topics/client-responses.md (1)

11-11: URL normalization applied consistently across HttpResponse documentation.

All API reference links have been properly normalized by removing the redundant ktor-client/ segment from the base path (e.g., ktor-client/ktor-client-core/ktor-client-core/). The changes are consistent throughout the file.

Also applies to: 24-24, 30-30, 76-76, 145-145, 159-159

topics/client-content-encoding.md (1)

19-19: URL normalization applied consistently for ContentEncoding documentation.

API documentation links have been properly normalized:

  • ContentEncoding: ktor-client/ktor-client-plugins/ktor-client-encoding/
  • HttpRequestBuilder: ktor-client/ktor-client-core/ktor-client-core/

The pattern is consistent and the links appear well-formed.

Also applies to: 55-55

topics/client-custom-plugins.md (1)

23-23: URL normalization applied consistently for custom plugins documentation.

API reference links have been properly normalized by removing redundant path segments. The createClientPlugin and HttpClient links now point to their correct module paths.

Also applies to: 307-307

codeSnippets/snippets/_misc_client/OkHttpConfig.kt (1)

6-6: Documentation URL in comment updated correctly.

The inline comment URL for OkHttpConfig has been normalized following the same pattern as other files. This is a documentation-only change with no functional impact.

topics/migration-to-20x.md (1)

451-451: URL normalization applied to HttpRequestBuilder reference in migration guide.

The link to HttpRequestBuilder in the "Request functions" section has been properly normalized. This ensures users have access to the correct API documentation while reading migration instructions.

topics/client-digest-auth.md (1)

58-59: URL normalization applied consistently for digest authentication documentation.

API reference links for digest authentication have been properly updated:

  • digest function link normalized
  • DigestAuthCredentials and credentials function links normalized

The pattern is consistent with other authentication-related files in this PR.

topics/client-basic-auth.md (1)

43-44: URL normalization applied consistently for basic authentication documentation.

API reference links for basic authentication have been properly updated:

  • basic function link normalized
  • BasicAuthCredentials and credentials function links normalized

Follows the same consistent pattern as other authentication documentation files in this PR.

topics/server-call-id.md (1)

23-23: URL normalization applied to CallId server plugin documentation.

The CallId plugin link has been properly normalized, following the same consistent pattern applied across both client and server documentation in this PR.

topics/client-multiplatform.md (1)

39-39: Link update is correct.

The HttpClient reference now points to the normalized API path without redundant module segments.

topics/client-call-id.md (1)

45-45: Link update is correct.

The CallIdConfig reference now points to the normalized API path.

topics/client-create-and-configure.md (1)

7-7: Link updates are correct.

All three API documentation links have been normalized correctly:

  • HttpClient (line 7)
  • CIO engine (line 13)
  • HttpClientConfig (line 27)

Also applies to: 13-13, 27-27

topics/client-engines.md (1)

69-69: API documentation link updates are correct.

All 14 API documentation links have been correctly normalized per the PR pattern, removing redundant module path segments. The URLs now point to the correct API reference pages with simplified paths.

Also applies to: 96-96, 146-146, 152-152, 167-167, 173-173, 192-192, 199-199, 214-214, 221-221, 259-259, 287-287, 334-334, 343-343

topics/server-websockets.md (1)

59-59: Link updates are correct.

All three WebSocket API documentation links have been normalized correctly:

  • WebSocketOptions (line 59)
  • DefaultWebSocketServerSession (line 92)
  • webSocketRaw (line 108)

Also applies to: 92-92, 108-108

topics/client-default-request.md (1)

15-15: Link updates are correct.

Both DefaultRequest API documentation links have been normalized correctly.

Also applies to: 71-71

topics/server-digest-auth.md (1)

67-67: Link updates are correct.

All four digest authentication API documentation links have been normalized correctly:

  • digest function (line 67)
  • DigestAuthenticationProvider.Config (line 96)
  • nonceManager property (line 105)
  • Principal class (line 110)

Also applies to: 96-96, 105-105, 110-110

topics/server-auth.md (1)

21-21: API documentation link updates are correct.

All 15 authentication API documentation links have been correctly normalized per the PR pattern, removing redundant module path segments. The URLs now point to the correct API reference pages with simplified paths:

  • Authentication plugin (line 21)
  • ldapAuthenticate function (line 49)
  • basic/form functions (lines 86, 106-107)
  • BasicAuthenticationProvider.Config (line 131)
  • validate function (line 135)
  • UserIdPrincipal/JWTPrincipal (lines 146, 148)
  • UserPasswordCredential/JWTCredential (lines 157, 160)
  • skipWhen function (line 166)
  • authenticate function (line 177)
  • AuthenticationStrategy enum (line 199)

Also applies to: 49-49, 86-86, 106-106, 107-107, 131-131, 133-133, 135-135, 146-146, 148-148, 157-157, 160-160, 166-166, 177-177, 199-199

topics/whats-new-320.md (1)

336-337: LGTM! Client API documentation links normalized.

The URL paths have been correctly updated to remove the redundant ktor-client/ segment.

topics/client-create-new-application.topic (1)

189-189: LGTM! HttpClient API documentation links updated correctly.

The URL paths follow the same normalization pattern as other files in this PR.

Also applies to: 195-195

topics/client-auth.md (1)

17-17: LGTM! Client authentication API links normalized.

The URL paths have been simplified from ktor-client/ktor-client-plugins/ktor-client-auth/... to ktor-client-auth/..., following the consistent pattern across this PR.

Also applies to: 63-63

topics/server-jwt.md (1)

85-85: LGTM! JWT authentication API documentation links normalized.

All JWT-related API references have been updated consistently by removing the redundant ktor-server-plugins/ segment.

Also applies to: 219-219, 224-224, 238-238

topics/migrating-3.md (1)

39-39: LGTM! Migration guide API documentation links updated comprehensively.

All API reference links in the migration guide have been normalized consistently, covering ApplicationEnvironment, ApplicationEngine, CommandLineConfig, ServerConfigBuilder, EmbeddedServer, CallLogging, and other core APIs.

Also applies to: 42-42, 108-108, 148-148, 152-152, 187-187, 301-301, 312-312, 439-439, 549-549, 555-555, 581-581, 583-583, 650-650

topics/server-basic-auth.md (1)

53-53: LGTM! Basic authentication API documentation links normalized.

The URL paths for basic authentication references have been updated consistently with the pattern used throughout this PR.

Also applies to: 74-74, 87-87, 114-114

topics/client-timeout.md (1)

10-10: LGTM! HttpTimeout plugin API documentation links normalized.

The URL paths have been updated consistently by removing the redundant ktor-client/ segment.

Also applies to: 40-40, 42-42, 44-44, 52-52

topics/server-ldap.md (1)

55-55: All updated API documentation links are accessible and functional.

Verification confirms that all three updated URLs in topics/server-ldap.md (lines 55, 76, 82, 105) return HTTP 200 status and are accessible. The URL path normalization is correct.

topics/server-form-based-auth.md (2)

85-85: Consistent URL normalization pattern confirmed.

All four updated API documentation links (lines 49, 67, 71, 85) follow a consistent pattern with the normalized base path api.ktor.io/ktor-server-auth/io.ktor.server.auth/.... The transformation aligns with the PR objective of removing redundant path segments.


49-49: API documentation links verified and valid.

All four updated API documentation links in the file are accessible and correctly formatted. The URL transformations removing redundant path segments have been successfully applied without breaking any links. No further action is required.

@osipxd osipxd requested a review from vnikolova October 20, 2025 12:10
### `SocketTimeoutException` is now a typealias

[`SocketTimeoutException`](https://api.ktor.io/older/3.0.0/ktor-client/ktor-client-core/io.ktor.client.network.sockets/-socket-timeout-exception/index.html)
[`SocketTimeoutException`](https://api.ktor.io/3.0.x/ktor-client-core/io.ktor.client.network.sockets/-socket-timeout-exception/index.html)
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A good example of how URLs have changed.

  • Flattened module structure: /ktor-client/ktor-client-core -> /ktor-client-core
  • Simpler (and more stable) versioning: /older/3.0.0 -> /3.0.x

Copy link
Collaborator

@vnikolova vnikolova left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice 👍
Thanks for the update @osipxd 🙏

@vnikolova vnikolova merged commit 01b14a8 into main Oct 20, 2025
1 check passed
@vnikolova vnikolova deleted the osipxd/update-api-docs-links branch October 20, 2025 14:23
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants