intentkit-http
v1.0.1
Published
Generic HTTP/REST client provider for IntentKit
Maintainers
Readme
intentkit-http
Generic HTTP/REST client provider for IntentKit.
Install
npm install intentkit-http intentkitUsage
import { serve, createContext, IntentRegistry } from 'intentkit';
import { createHttpProvider } from 'intentkit-http';
import type { HttpClient } from 'intentkit-http';
await serve({
name: 'my-api',
version: '1.0.0',
registry: new IntentRegistry().register(myFunction),
context: createContext(),
providers: [
createHttpProvider({
name: 'api',
baseUrl: 'https://api.example.com',
headers: { Authorization: `Bearer ${process.env.API_KEY}` },
timeout: 10000,
healthUrl: 'https://api.example.com/health',
}),
],
});
// In a function:
execute: async (input, ctx) => {
const api = ctx.providers.api as HttpClient;
const users = await api.get('/users', { params: { limit: '10' } });
return { users: users.data, count: users.status };
}API
createHttpProvider(config)
Returns a ProviderFactory<HttpClient>.
Config:
name— Provider name inctx.providers(default:'http')baseUrl— Base URL prepended to all requestsheaders— Default headers for every requesttimeout— Default timeout in ms (default:30000)healthUrl— URL for health checks (GET must return 2xx)
HttpClient
get(url, options?)→Promise<HttpResponse>post(url, body?, options?)→Promise<HttpResponse>put(url, body?, options?)→Promise<HttpResponse>patch(url, body?, options?)→Promise<HttpResponse>delete(url, options?)→Promise<HttpResponse>request(method, url, options?)→Promise<HttpResponse>
HttpResponse
{
status: number; // HTTP status code
headers: Record<string, string>;
data: unknown; // Parsed JSON or text
ok: boolean; // true if 2xx
}License
MIT
