Skip to content

Commit 120ecc9

Browse files
authored
Add callouts about SDK language support to AsyncAPI and gRPC overview pages (API Definitions) (#457)
1 parent 273af48 commit 120ecc9

File tree

5 files changed

+24
-57
lines changed

5 files changed

+24
-57
lines changed

fern/products/api-def/asyncapi-pages/overview.mdx

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,16 @@
11
---
22
title: What is an AsyncAPI Specification?
3-
subtitle: AsyncAPI is a standard for documenting event-driven APIs
3+
description: AsyncAPI is a standard for documenting event-driven APIs
44
---
55

6+
<Note>
7+
Fern only supports AsyncAPI SDK generation for TypeScript and Python.
8+
</Note>
9+
610
The AsyncAPI Specification is a framework used by developers to document event-driven APIs. The specification
711
is written in JSON or YAML and contains all of your channels, messages, schemas, and authentication schemes.
812
Fern is compatible with AsyncAPI specification [v2.6.0](https://www.asyncapi.com/docs/reference/specification/v2.6.0) and [v3.0.0](https://www.asyncapi.com/docs/reference/specification/v3.0.0).
913

10-
<Info> Considering options to generate an AsyncAPI spec? Get live support [here](https://fern-community.slack.com/join/shared_invite/zt-2dpftfmif-MuAegl8AfP_PK8s2tx350Q%EF%BB%BF#/shared-invite/email) </Info>
11-
1214
Below is an example of an AsyncAPI file:
1315

1416
```yaml asyncapi.yml
@@ -107,7 +109,9 @@ components:
107109
- message
108110
```
109111
110-
## Setup your fern folder
112+
## Set up your fern folder
113+
114+
<Info> Considering options to generate an AsyncAPI spec? Get live support [here](https://fern-community.slack.com/join/shared_invite/zt-2dpftfmif-MuAegl8AfP_PK8s2tx350Q%EF%BB%BF#/shared-invite/email) </Info>
111115
112116
Start by initializing your fern folder with an AsyncAPI spec
113117

fern/products/api-def/ferndef-pages/overview.mdx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
---
22
title: What is a Fern Definition?
3-
subtitle: "A Fern Definition is a set of YAML files that describe your API."
3+
description: "A Fern Definition is a set of YAML files that describe your API."
44
---
55

66
A Fern Definition is a set of YAML files that are the single source of truth for your API. You check your Fern Definition into your repo,

fern/products/api-def/grpc-pages/overview.mdx

Lines changed: 8 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,15 @@
11
---
22
title: What is gRPC?
3-
subtitle: gRPC is a high-performance RPC framework that uses Protocol Buffers
3+
description: gRPC is a high-performance RPC framework that uses Protocol Buffers
44
---
55

6+
<Note>
7+
Fern only supports gRPC SDK generation for .NET/C#.
8+
</Note>
9+
610
gRPC is a modern, open-source, high-performance Remote Procedure Call (RPC) framework that can run in any environment. It uses Protocol Buffers (protobuf) as the interface definition language and supports multiple programming languages.
711
Fern is compatible with gRPC services and can generate SDKs and documentation from your `.proto` files.
812

9-
<Info> Need help getting started with gRPC and Fern? Get live support [here](https://fern-community.slack.com/join/shared_invite/zt-2dpftfmif-MuAegl8AfP_PK8s2tx350Q%EF%BB%BF#/shared-invite/email) </Info>
10-
1113
Below is an example of a gRPC service definition:
1214

1315
```protobuf user_service.proto
@@ -155,27 +157,10 @@ enum ChatMessageType {
155157
}
156158
```
157159

158-
## gRPC Features
159-
160-
gRPC offers several key features that make it ideal for modern applications:
160+
## Set up your fern folder
161161

162-
### High Performance
163-
- Binary protocol with Protocol Buffers
164-
- HTTP/2 transport for multiplexing and flow control
165-
- Efficient serialization and deserialization
166-
167-
### Multiple Communication Patterns
168-
- **Unary RPCs**: Simple request/response
169-
- **Server Streaming**: Server sends stream of responses
170-
- **Client Streaming**: Client sends stream of requests
171-
- **Bidirectional Streaming**: Both sides send streams
172-
173-
### Cross-Platform Support
174-
- Native support for 10+ programming languages
175-
- Generated client libraries and server stubs
176-
- Consistent API across all platforms
162+
<Info> Need help getting started with gRPC and Fern? Get live support [here](https://fern-community.slack.com/join/shared_invite/zt-2dpftfmif-MuAegl8AfP_PK8s2tx350Q%EF%BB%BF#/shared-invite/email) </Info>
177163

178-
## Setup your fern folder
179164

180165
Start by initializing your fern folder with a gRPC service
181166

@@ -196,26 +181,4 @@ fern/
196181
└─ proto/
197182
├─ user_service.proto
198183
└─ common.proto
199-
```
200-
201-
## gRPC vs REST
202-
203-
| Feature | gRPC | REST |
204-
|---------|------|------|
205-
| Protocol | HTTP/2 | HTTP/1.1 |
206-
| Data Format | Protocol Buffers | JSON |
207-
| Performance | High | Moderate |
208-
| Streaming | Native support | Limited |
209-
| Browser Support | Limited | Full |
210-
| Schema | Strongly typed | Flexible |
211-
| Code Generation | Built-in | Third-party tools |
212-
213-
## Common Use Cases
214-
215-
gRPC is particularly well-suited for:
216-
217-
- **Microservices Communication**: High-performance inter-service communication
218-
- **Real-time Applications**: Streaming for live updates and real-time features
219-
- **Mobile Applications**: Efficient mobile-to-server communication
220-
- **IoT Systems**: Lightweight communication for resource-constrained devices
221-
- **APIs with Strong Contracts**: Type-safe communication with schema evolution
184+
```

fern/products/api-def/openapi-pages/overview.mdx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,12 @@
11
---
22
title: What is an OpenAPI Specification?
3-
subtitle: OpenAPI is a standard for documenting REST APIs
3+
description: OpenAPI is a standard for documenting REST APIs
44
---
55

66
The OpenAPI Specification (OAS) is a framework used by developers to document REST APIs. The specification
77
written in JSON or YAML and contains all of your endpoints, parameters, schemas, and authentication schemes.
88
Fern is compatible with the latest OAS release, which is currently [v3.1.1](https://spec.openapis.org/#openapi-specification).
99

10-
<Info> Considering options to generate an OpenAPI spec? Get live support [here](https://fern-community.slack.com/join/shared_invite/zt-2dpftfmif-MuAegl8AfP_PK8s2tx350Q%EF%BB%BF#/shared-invite/email) </Info>
11-
1210
Below is an example of an OpenAPI file:
1311

1412
```yaml openapi.yml
@@ -106,6 +104,8 @@ components:
106104
107105
## Setup your fern folder
108106
107+
<Info> Considering options to generate an OpenAPI spec? Get live support [here](https://fern-community.slack.com/join/shared_invite/zt-2dpftfmif-MuAegl8AfP_PK8s2tx350Q%EF%BB%BF#/shared-invite/email) </Info>
108+
109109
Start by initializing your fern folder with an OpenAPI spec
110110
111111
<CodeGroup>

fern/products/api-def/openrpc-pages/overview.mdx

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,12 @@
11
---
22
title: What is an OpenRPC Specification?
3-
subtitle: OpenRPC is a standard for documenting JSON-RPC APIs
3+
description: OpenRPC is a standard for documenting JSON-RPC APIs
44
---
55

66
The OpenRPC Specification is a framework used by developers to document JSON-RPC APIs. The specification
77
is written in JSON or YAML and contains all of your methods, parameters, schemas, and server configurations.
88
Fern is compatible with OpenRPC specification [v1.3.2](https://spec.open-rpc.org/) and [v1.2.6](https://github.com/open-rpc/spec/releases/tag/1.2.6).
99

10-
<Info> Considering options to generate an OpenRPC spec? Get live support [here](https://fern-community.slack.com/join/shared_invite/zt-2dpftfmif-MuAegl8AfP_PK8s2tx350Q%EF%BB%BF#/shared-invite/email) </Info>
11-
1210
Below is an example of an OpenRPC file:
1311

1412
```yaml openrpc.yml
@@ -144,7 +142,9 @@ components:
144142
- timestamp
145143
```
146144
147-
## Setup your fern folder
145+
## Set up your fern folder
146+
147+
<Info> Considering options to generate an OpenRPC spec? Get live support [here](https://fern-community.slack.com/join/shared_invite/zt-2dpftfmif-MuAegl8AfP_PK8s2tx350Q%EF%BB%BF#/shared-invite/email) </Info>
148148
149149
Start by initializing your fern folder with an OpenRPC spec
150150

0 commit comments

Comments
 (0)