## TypeScript / JavaScript example

The generated TypeScript client provides full type safety for requests and responses, along with autocomplete in your IDE.

### 1. Installation

Install the generated SDK package provided by your platform team, along with the required Connect runtime libraries. Note: Replace `@my-org/sdk` with the actual package name provided by your team.

```
npm install @my-org/sdk @connectrpc/connect @connectrpc/connect-web
```

### 2. Usage Example

To make a request, you create a transport (configuring the base URL) and then instantiate the client for the desired service.

```
import { createClient } from "@connectrpc/connect";
import { createConnectTransport } from "@connectrpc/connect-web";
// Import the service definition from your generated SDK package
import { HrService } from "@my-org/sdk/employees/v1/service_connect";

const transport = createConnectTransport({
  baseUrl: "http://localhost:5026",
});

const client = createClient(HrService, transport);

async function fetchEmployee() {
  // Request and response objects are fully typed
  const response = await client.getEmployeeById({ id: 1 });
  console.log(`Fetched employee: ${response.employee?.details?.forename}`);
}

fetchEmployee();
```

## Go example

The generated Go SDK provides idiomatic Go structs and interfaces for interacting with the API.

### 1. Installation

Download the generated Go module provided by your platform team, along with the required Connect runtime. Note: Replace `github.com/my-org/sdk` with the actual module path provided by your team.

```
go get github.com/my-org/sdk
```

### 2. Usage Example

Instantiate the service client using a standard HTTP client and the base URL of the router.

```
package main

import (
    "context"
    "fmt"
    "log"
    "net/http"

"connectrpc.com/connect"
    // Import the generated packages from your SDK module
    employeesv1 "github.com/my-org/sdk/gen/go/employees/v1"
    "github.com/my-org/sdk/gen/go/employees/v1/employeesv1connect"
)

func main() {
    client := employeesv1connect.NewHrServiceClient(
        http.DefaultClient,
        "http://localhost:5026",
    )

req := connect.NewRequest(&employeesv1.GetEmployeeByIdRequest{
        Id: 1,
    })

res, err := client.GetEmployeeById(context.Background(), req)
    if err != nil {
        log.Fatal(err)
    }

// Response data is strongly typed
    fmt.Printf("Fetched employee: %s\n", res.Msg.Employee.Details.Forename)
}
```
