Passing custom headers per endpoint using HttpApiClient

Hi, I have currently this code:
import * as FetchHttpClient from "@effect/platform/FetchHttpClient"
import * as HttpApiClient from "@effect/platform/HttpApiClient"
import * as HttpClient from "@effect/platform/HttpClient"
import * as Effect from "effect/Effect"

import { DomainApi } from "@repo/domain/api/domain"

export class ApiClient extends Effect.Service<ApiClient>()("ApiClient", {
  accessors: true,
  dependencies: [FetchHttpClient.layer],
  effect: HttpApiClient.make(DomainApi, {
    baseUrl: "http://localhost:3000",
    transformClient: (client) => client.pipe(HttpClient.retryTransient({ times: 3 })),
  }),
}) {}

const myEffect = Effect.gen(function* () {
  const api = yield* ApiClient
  const authentication = yield* Authentication

  const adminToken = yield* authentication.admin.getToken()
  const response = yield* api.users.get()
})


I need the admin token to go into the Authorization header, but just for some requests. How can it be done?
Was this page helpful?