diff --git a/fern/docs.yml b/fern/docs.yml index 4903c4f4314..056b2007c4c 100644 --- a/fern/docs.yml +++ b/fern/docs.yml @@ -39,8 +39,21 @@ tabs: css: ./assets/styles.css redirects: - - source: /api-definition/fern/api-yml-reference - destination: /api-definition/fern/api-yml/overview + - source: /learn/api-definition/fern/api-yml-reference + destination: /learn/api-definition/fern/api-yml/overview + - source: /learn/sdks/features/:slug + destination: /learn/sdks/capabilities/:slug + - source: /learn/sdks/package-managers/:slug + destination: /learn/sdks/guides/publish-to-package-managers/:slug + - source: /learn/sdks/introduction/configuration + destination: /learn/sdks/introduction/language-support + - source: /learn/sdks/getting-started/generate-your-first-sdk + destination: /learn/sdks/guides/generate-your-first-sdk + - source: /learn/sdks/getting-started/preview-your-sdk-locally + destination: /learn/sdks/guides/preview-your-sdk-locally + - source: /learn/sdks/publish-sdk/publish-your-sdk + destination: /learn/sdks/guides/publish-your-sdk + navigation: - tab: home @@ -204,8 +217,8 @@ navigation: contents: - page: Overview path: ./pages/sdks/introduction/overview.mdx - - page: Configuration - path: ./pages/sdks/introduction/configuration.mdx + - page: Language Support + path: ./pages/sdks/introduction/language-support.mdx - section: Changelogs slug: changelog contents: @@ -227,97 +240,101 @@ navigation: - changelog: ./pages/changelogs/ruby-sdk title: Ruby slug: ruby - - section: Getting Started - contents: - - page: Generate your First SDK - path: ./pages/sdks/getting-started/generate-your-first-sdk.mdx - - page: Preview your SDK Locally - path: ./pages/sdks/getting-started/preview-your-sdk-locally.mdx - - page: Publish a Public-Facing SDK - path: ./pages/sdks/publish-sdk/publish-your-sdk.mdx - - section: Features + - section: Capabilities contents: - page: Strongly Typed - path: ./pages/sdks/features/strongly-typed.mdx + path: ./pages/sdks/capabilities/strongly-typed.mdx - page: Idiomatic Method Names - path: ./pages/sdks/features/idiomatic-method-names.mdx + path: ./pages/sdks/capabilities/idiomatic-method-names.mdx - page: Schema Validation - path: ./pages/sdks/features/schema-validation.mdx + path: ./pages/sdks/capabilities/schema-validation.mdx - page: Discriminated Unions - path: ./pages/sdks/features/discriminated-unions.mdx + path: ./pages/sdks/capabilities/discriminated-unions.mdx - page: Multipart Form Data - path: ./pages/sdks/features/multipart-form-data.mdx + path: ./pages/sdks/capabilities/multipart-form-data.mdx - page: Forward Compatibility - path: ./pages/sdks/features/forward-compatibility.mdx + path: ./pages/sdks/capabilities/forward-compatibility.mdx - page: Registry Publishing - path: ./pages/sdks/features/publish-to-registries.mdx + path: ./pages/sdks/capabilities/publish-to-registries.mdx icon: fa-regular fa-pro - page: Auto-Pagination - path: ./pages/sdks/features/auto-pagination.mdx + path: ./pages/sdks/capabilities/auto-pagination.mdx icon: fa-regular fa-pro - page: OAuth Token Refresh - path: ./pages/sdks/features/oauth.mdx + path: ./pages/sdks/capabilities/oauth.mdx icon: fa-regular fa-pro - page: Retries with Backoff - path: ./pages/sdks/features/retries-with-backoff.mdx + path: ./pages/sdks/capabilities/retries-with-backoff.mdx icon: fa-regular fa-pro - page: Webhook Signature Verification - path: ./pages/sdks/features/webhook-signature-verification.mdx + path: ./pages/sdks/capabilities/webhook-signature-verification.mdx icon: fa-regular fa-pro - page: Idempotency Headers - path: ./pages/sdks/features/idempotency-headers.mdx + path: ./pages/sdks/capabilities/idempotency-headers.mdx icon: fa-regular fa-pro - page: Server-Sent Events - path: ./pages/sdks/features/server-sent-events.mdx + path: ./pages/sdks/capabilities/server-sent-events.mdx icon: fa-regular fa-pro - page: Integration Tests - path: ./pages/sdks/features/integration-tests.mdx + path: ./pages/sdks/capabilities/integration-tests.mdx icon: fa-regular fa-pro - page: Code Snippets - path: ./pages/sdks/features/code-snippets.mdx + path: ./pages/sdks/capabilities/code-snippets.mdx icon: fa-regular fa-pro - page: Augment with Custom Code - path: ./pages/sdks/features/augment-with-custom-code.mdx + path: ./pages/sdks/capabilities/augment-with-custom-code.mdx icon: fa-regular fa-pro - page: Merging Multiple APIs - path: ./pages/sdks/features/merging-multiple-apis.mdx + path: ./pages/sdks/capabilities/merging-multiple-apis.mdx icon: fa-regular fa-pro - page: WebSockets - path: ./pages/sdks/features/websockets.mdx + path: ./pages/sdks/capabilities/websockets.mdx icon: fa-regular fa-pro # icon: fa-regular fa-pro # - page: Object oriented SDKs - # path: ./pages/sdks/features/dummy.mdx + # path: ./pages/sdks/capabilities/dummy.mdx # icon: fa-regular fa-pro # - page: Polling - # path: ./pages/sdks/features/dummy.mdx + # path: ./pages/sdks/capabilities/dummy.mdx # icon: fa-regular fa-pro # - page: GitHub integration - # path: ./pages/sdks/features/dummy.mdx + # path: ./pages/sdks/capabilities/dummy.mdx # icon: fa-regular fa-pro - - section: Package Managers + - section: Reference contents: - - page: NPM (TypeScript) - path: ./pages/sdks/integration/npm.mdx - - page: PyPI (Python) - slug: pypi - path: ./pages/sdks/integration/pypi.mdx - - page: NuGet (C#) - slug: nuget - path: ./pages/sdks/integration/nuget.mdx - - page: Pkgsite (Go) - slug: pkgsite - path: ./pages/sdks/integration/pkgsite.mdx - - page: Maven Central (Java) - slug: maven-central - path: ./pages/sdks/integration/maven-central.mdx - - page: RubyGems (Ruby) - slug: rubygems - path: ./pages/sdks/integration/rubygems.mdx - - page: Packagist (PHP) - slug: packagist - path: ./pages/sdks/integration/packagist.mdx - + - page: Configuration + path: ./pages/sdks/introduction/configuration.mdx + - section: Guides + contents: + - page: Generate your First SDK + path: ./pages/sdks/getting-started/generate-your-first-sdk.mdx + - page: Preview your SDK Locally + path: ./pages/sdks/getting-started/preview-your-sdk-locally.mdx + - page: Publish a Public-Facing SDK + path: ./pages/sdks/publish-sdk/publish-your-sdk.mdx + hidden: true + - section: Publish to package managers + contents: + - page: NPM (TypeScript) + path: ./pages/sdks/integration/npm.mdx + - page: PyPI (Python) + slug: pypi + path: ./pages/sdks/integration/pypi.mdx + - page: NuGet (C#) + slug: nuget + path: ./pages/sdks/integration/nuget.mdx + - page: Pkgsite (Go) + slug: pkgsite + path: ./pages/sdks/integration/pkgsite.mdx + - page: Maven Central (Java) + slug: maven-central + path: ./pages/sdks/integration/maven-central.mdx + - page: RubyGems (Ruby) + slug: rubygems + path: ./pages/sdks/integration/rubygems.mdx + - page: Packagist (PHP) + slug: packagist + path: ./pages/sdks/integration/packagist.mdx - section: Alternatives hidden: true contents: diff --git a/fern/pages/changelogs/csharp-sdk/2024-11-14.mdx b/fern/pages/changelogs/csharp-sdk/2024-11-14.mdx index ac9c06e9804..fab887bb95e 100644 --- a/fern/pages/changelogs/csharp-sdk/2024-11-14.mdx +++ b/fern/pages/changelogs/csharp-sdk/2024-11-14.mdx @@ -1,3 +1,3 @@ ## 1.9.8 -**`(feat):`** Add support for [idempotency headers](https://buildwithfern.com/learn/sdks/features/idempotency-headers). +**`(feat):`** Add support for [idempotency headers](https://buildwithfern.com/learn/sdks/capabilities/idempotency-headers). diff --git a/fern/pages/sdks/features/augment-with-custom-code.mdx b/fern/pages/sdks/capabilities/augment-with-custom-code.mdx similarity index 100% rename from fern/pages/sdks/features/augment-with-custom-code.mdx rename to fern/pages/sdks/capabilities/augment-with-custom-code.mdx diff --git a/fern/pages/sdks/features/auto-pagination.mdx b/fern/pages/sdks/capabilities/auto-pagination.mdx similarity index 100% rename from fern/pages/sdks/features/auto-pagination.mdx rename to fern/pages/sdks/capabilities/auto-pagination.mdx diff --git a/fern/pages/sdks/features/code-snippets.mdx b/fern/pages/sdks/capabilities/code-snippets.mdx similarity index 100% rename from fern/pages/sdks/features/code-snippets.mdx rename to fern/pages/sdks/capabilities/code-snippets.mdx diff --git a/fern/pages/sdks/features/discriminated-unions.mdx b/fern/pages/sdks/capabilities/discriminated-unions.mdx similarity index 100% rename from fern/pages/sdks/features/discriminated-unions.mdx rename to fern/pages/sdks/capabilities/discriminated-unions.mdx diff --git a/fern/pages/sdks/features/dummy.mdx b/fern/pages/sdks/capabilities/dummy.mdx similarity index 100% rename from fern/pages/sdks/features/dummy.mdx rename to fern/pages/sdks/capabilities/dummy.mdx diff --git a/fern/pages/sdks/features/forward-compatibility.mdx b/fern/pages/sdks/capabilities/forward-compatibility.mdx similarity index 100% rename from fern/pages/sdks/features/forward-compatibility.mdx rename to fern/pages/sdks/capabilities/forward-compatibility.mdx diff --git a/fern/pages/sdks/features/idempotency-headers.mdx b/fern/pages/sdks/capabilities/idempotency-headers.mdx similarity index 100% rename from fern/pages/sdks/features/idempotency-headers.mdx rename to fern/pages/sdks/capabilities/idempotency-headers.mdx diff --git a/fern/pages/sdks/features/idiomatic-method-names.mdx b/fern/pages/sdks/capabilities/idiomatic-method-names.mdx similarity index 100% rename from fern/pages/sdks/features/idiomatic-method-names.mdx rename to fern/pages/sdks/capabilities/idiomatic-method-names.mdx diff --git a/fern/pages/sdks/features/integration-tests.mdx b/fern/pages/sdks/capabilities/integration-tests.mdx similarity index 100% rename from fern/pages/sdks/features/integration-tests.mdx rename to fern/pages/sdks/capabilities/integration-tests.mdx diff --git a/fern/pages/sdks/features/merging-multiple-apis.mdx b/fern/pages/sdks/capabilities/merging-multiple-apis.mdx similarity index 100% rename from fern/pages/sdks/features/merging-multiple-apis.mdx rename to fern/pages/sdks/capabilities/merging-multiple-apis.mdx diff --git a/fern/pages/sdks/features/multipart-form-data.mdx b/fern/pages/sdks/capabilities/multipart-form-data.mdx similarity index 100% rename from fern/pages/sdks/features/multipart-form-data.mdx rename to fern/pages/sdks/capabilities/multipart-form-data.mdx diff --git a/fern/pages/sdks/features/oauth.mdx b/fern/pages/sdks/capabilities/oauth.mdx similarity index 100% rename from fern/pages/sdks/features/oauth.mdx rename to fern/pages/sdks/capabilities/oauth.mdx diff --git a/fern/pages/sdks/features/pro.mdx b/fern/pages/sdks/capabilities/pro.mdx similarity index 100% rename from fern/pages/sdks/features/pro.mdx rename to fern/pages/sdks/capabilities/pro.mdx diff --git a/fern/pages/sdks/features/publish-to-registries.mdx b/fern/pages/sdks/capabilities/publish-to-registries.mdx similarity index 100% rename from fern/pages/sdks/features/publish-to-registries.mdx rename to fern/pages/sdks/capabilities/publish-to-registries.mdx diff --git a/fern/pages/sdks/features/retries-with-backoff.mdx b/fern/pages/sdks/capabilities/retries-with-backoff.mdx similarity index 100% rename from fern/pages/sdks/features/retries-with-backoff.mdx rename to fern/pages/sdks/capabilities/retries-with-backoff.mdx diff --git a/fern/pages/sdks/features/schema-validation.mdx b/fern/pages/sdks/capabilities/schema-validation.mdx similarity index 100% rename from fern/pages/sdks/features/schema-validation.mdx rename to fern/pages/sdks/capabilities/schema-validation.mdx diff --git a/fern/pages/sdks/features/server-sent-events.mdx b/fern/pages/sdks/capabilities/server-sent-events.mdx similarity index 100% rename from fern/pages/sdks/features/server-sent-events.mdx rename to fern/pages/sdks/capabilities/server-sent-events.mdx diff --git a/fern/pages/sdks/features/strongly-typed.mdx b/fern/pages/sdks/capabilities/strongly-typed.mdx similarity index 100% rename from fern/pages/sdks/features/strongly-typed.mdx rename to fern/pages/sdks/capabilities/strongly-typed.mdx diff --git a/fern/pages/sdks/features/webhook-signature-verification.mdx b/fern/pages/sdks/capabilities/webhook-signature-verification.mdx similarity index 100% rename from fern/pages/sdks/features/webhook-signature-verification.mdx rename to fern/pages/sdks/capabilities/webhook-signature-verification.mdx diff --git a/fern/pages/sdks/features/websockets.mdx b/fern/pages/sdks/capabilities/websockets.mdx similarity index 100% rename from fern/pages/sdks/features/websockets.mdx rename to fern/pages/sdks/capabilities/websockets.mdx diff --git a/fern/pages/sdks/getting-started/preview-your-sdk-locally.mdx b/fern/pages/sdks/getting-started/preview-your-sdk-locally.mdx index 622e5865daf..0e118894997 100644 --- a/fern/pages/sdks/getting-started/preview-your-sdk-locally.mdx +++ b/fern/pages/sdks/getting-started/preview-your-sdk-locally.mdx @@ -1,17 +1,18 @@ --- title: Preview your SDK -subtitle: Use Fern's CLI tool to preview your SDK locally. +subtitle: Use Fern's CLI tool to preview your SDK locally. --- -[Once you configure your SDK](/learn/sdks/getting-started/generate-your-first-sdk), you can preview the generated SDK code using Fern's CLI. +[Once you configure your SDK](/learn/sdks/getting-started/generate-your-first-sdk), you can preview the generated SDK code using Fern's CLI. -Simply append the `--preview` flag to the command used to generate the SDK and you will see the generated code populated in a `.preview` folder within your `fern` folder. +Simply append the `--preview` flag to the command used to generate the SDK and you will see the generated code populated in a `.preview` folder within your `fern` folder. -[If you have added custom code to your SDK](/learn/sdks/features/augment-with-custom-code), `--preview` will preserve those changes. + [If you have added custom code to your SDK](/learn/sdks/capabilities/augment-with-custom-code), `--preview` will + preserve those changes. -Here's an example of how you can preview your SDK: +Here's an example of how you can preview your SDK: ### Generator configuration @@ -35,13 +36,13 @@ groups: ### Invoke the Fern CLI -```shell +```shell fern generate --group python-sdk --preview ``` ### Preview your SDK -The resulting folder structure will look like this: +The resulting folder structure will look like this: @@ -70,4 +71,4 @@ fern/ ``` - \ No newline at end of file + diff --git a/fern/pages/sdks/introduction/configuration.mdx b/fern/pages/sdks/introduction/configuration.mdx index 3fd9d89f420..0136d6a984e 100644 --- a/fern/pages/sdks/introduction/configuration.mdx +++ b/fern/pages/sdks/introduction/configuration.mdx @@ -1,63 +1,62 @@ --- -title: 'SDK Configuration' -subtitle: 'Configure your SDK generators in `generators.yml` and publish to registries' +title: "SDK Configuration" +subtitle: "Configure your SDK generators in `generators.yml` and publish to registries" --- - Before you can configure your generators, you must setup your API Definition. Learn more [**here**](/learn/api-definition/introduction/what-is-the-fern-folder) + Before you can configure your generators, you must setup your API Definition. Learn more + [**here**](/learn/api-definition/introduction/what-is-the-fern-folder) - The public schema for `generators.yml` can be found [**here**](https://schema.buildwithfern.dev/generators-yml.json). ## Top Level Configuration - ```yaml title="generators.yml" maxLines=10 default-group: local -readme: +readme: apiReferenceLink: https://plantstore.dev defaultEndpoint: GET /v3/store/inventory -groups: - node: - generators: +groups: + node: + generators: - name: fernapi/fern-typescript-node-sdk version: 0.x.x - output: + output: location: npm package-name: "@plantstore/sdk" token: ${NPM_TOKEN} - config: + config: outputSourceFiles: true - github: + github: repository: "plantstore/plantstore-js" - metadata: + metadata: package-description: JavaScript library for the Plant Store API Service license: MIT - python: - generators: + python: + generators: - name: fernapi/fern-python-sdk version: 0.x.x - output: + output: location: pypi package-name: "plantstore" token: ${PYPI_TOKEN} - config: + config: outputSourceFiles: true - github: - repository: "plantstore/plantstore-python" + github: + repository: "plantstore/plantstore-python" ``` - The default group of generators to run when running `fern generate`. + The default group of generators to run when running `fern generate`. - Learn more about the README configuration [here](/learn/sdks/introduction/configuration#readme-configuration). + Learn more about the README configuration [here](#readme-configuration). @@ -67,24 +66,24 @@ groups: ## README Configuration ```yaml generators.yml -readme: +readme: apiReferenceLink: https://plantstore.dev defaultEndpoint: GET /v3/store/inventory ``` - A link to your hosted API Reference. Fern will embed this link into your generated READMEs so that SDK users know to navigate to your - API Reference. + A link to your hosted API Reference. Fern will embed this link into your generated READMEs so that SDK users know to + navigate to your API Reference. - The endpoint you want to use in README code samples. If unspecified, Fern will default to the first POST request. + The endpoint you want to use in README code samples. If unspecified, Fern will default to the first POST request. ## Specify Package Metadata ```yaml generators.yml -metadata: +metadata: package-description: Python library for the Plant Store API Service license: Apache ``` @@ -94,5 +93,7 @@ metadata: - The license you'd like to apply to the code published to GitHub. Options include `MIT` or `Apache` (Apache 2.0). To request a new license, [open a GitHub Issue](https://github.com/fern-api/fern/issues/new?assignees=&labels=&projects=&template=feature-request.md&title=%5BFeature%5D). + The license you'd like to apply to the code published to GitHub. Options include `MIT` or `Apache` (Apache 2.0). To + request a new license, [open a GitHub + Issue](https://github.com/fern-api/fern/issues/new?assignees=&labels=&projects=&template=feature-request.md&title=%5BFeature%5D). diff --git a/fern/pages/sdks/introduction/language-support.mdx b/fern/pages/sdks/introduction/language-support.mdx new file mode 100644 index 00000000000..38b07b468fb --- /dev/null +++ b/fern/pages/sdks/introduction/language-support.mdx @@ -0,0 +1,30 @@ +--- +title: Language support +--- + +Fern supports generating SDKs in several different programming languages. Each SDK generator is written by a language expert and is officially maintained by the Fern team. + +### Generally Available + + + + + + + + + + + +### Coming Soon + + + + + + + + + + Please reach out to support@buildwithfern.com if you're interested in our generators that are coming soon. + diff --git a/fern/pages/sdks/introduction/overview.mdx b/fern/pages/sdks/introduction/overview.mdx index 86f3c13c3b7..3ce5af8219c 100644 --- a/fern/pages/sdks/introduction/overview.mdx +++ b/fern/pages/sdks/introduction/overview.mdx @@ -1,33 +1,23 @@ --- title: SDK Overview -description: Generate SDKs in multiple programming languages +description: Generate idiomatic SDKs in multiple programming languages --- -Fern supports generating SDKs in several different programming languages. Each -SDK generator is written by a language expert and is officially maintained by -the Fern team. +Let Fern do the heavy lifting of generating and publishing client libraries so your team can focus on building the API. -### Generally Available +## Learn more - - - - - - - - + + + Explore the full list of Fern's supported languages. + + + See Fern in action with a personalized demo. + + + Learn more about advanced features supported by Fern's SDk generation. + + + Follow our step-by-step guide to generate your first SDK in minutes. + - -### Coming Soon - - - - - - - - - - Please reach out to support@buildwithfern.com if you're interested in our generators that are coming soon. - diff --git a/generators/csharp/sdk/versions.yml b/generators/csharp/sdk/versions.yml index eed3cdb41bd..b3185103fb2 100644 --- a/generators/csharp/sdk/versions.yml +++ b/generators/csharp/sdk/versions.yml @@ -27,7 +27,7 @@ createdAt: "2024-11-14" changelogEntry: - type: feat - summary: Add support for [idempotency headers](https://buildwithfern.com/learn/sdks/features/idempotency-headers). + summary: Add support for [idempotency headers](https://buildwithfern.com/learn/sdks/capabilities/idempotency-headers). irVersion: 53 - version: 1.9.7 createdAt: "2024-11-12"