32 lines
611 B
Plaintext
32 lines
611 B
Plaintext
---
|
|
globs: clients/**/*.ts
|
|
---
|
|
|
|
# HTTP Clients Rules
|
|
|
|
1. All HTTP calls MUST be in clients/domains/
|
|
2. Each domain MUST have its own client
|
|
3. Clients MUST use the base HTTP client
|
|
4. Clients MUST type their responses
|
|
|
|
Example of correct client:
|
|
|
|
```typescript
|
|
import { HttpClient } from "@/clients/base/http-client";
|
|
import { MyData } from "@/lib/types";
|
|
|
|
export class MyClient {
|
|
constructor(private httpClient: HttpClient) {}
|
|
|
|
async getData(): Promise<MyData[]> {
|
|
return this.httpClient.get("/api/data");
|
|
}
|
|
}
|
|
```
|
|
|
|
❌ FORBIDDEN:
|
|
|
|
- Direct fetch calls
|
|
- Business logic in clients
|
|
- Untyped responses
|