To set a single query parameter, use HttpClientRequest.setUrlParam().
In the example below, we add a limit parameter to restrict the number of users returned by the API.
import { FetchHttpClient, HttpClient, HttpClientRequest,} from "effect/unstable/http";import { Effect } from "effect";
function fetchUsersWithLimit(limit: number) { return Effect.gen(function* () { const client = yield* HttpClient.HttpClient;
const request = HttpClientRequest.get("https://dummyjson.com/users").pipe( HttpClientRequest.setUrlParam("limit", limit.toString()), );
const response = yield* client.execute(request); const data = yield* response.json;
return data; }).pipe(Effect.provide(FetchHttpClient.layer));}
// Test itEffect.runPromise(fetchUsersWithLimit(3)).then((data) => { console.log("Names:", data.users.map((user) => user.firstName).join(", "));});Output:
Names: Emily, Michael, Sophia