breathe-api
Version:
Model Context Protocol server for Breathe HR APIs with Swagger/OpenAPI support - also works with custom APIs
50 lines • 1.57 kB
JavaScript
import { z } from 'zod';
export const HttpMethodSchema = z.enum([
'GET',
'POST',
'PUT',
'DELETE',
'PATCH',
]);
export const ApiRequestSchema = z.object({
url: z.string().url(),
method: HttpMethodSchema,
headers: z.record(z.string()).optional(),
params: z.record(z.string()).optional(),
data: z.any().optional(),
timeout: z.number().optional(),
});
export const SwaggerSpecSchema = z.object({
url: z.string().url().optional(),
spec: z.any().optional(),
headers: z.record(z.string()).optional(),
generateTypes: z.boolean().default(true),
outputPath: z.string().optional(),
});
export const CodeGenerationSchema = z.object({
swaggerUrl: z.string().url(),
swaggerHeaders: z.record(z.string()).optional(),
platform: z.enum(['react', 'react-native', 'nextjs', 'ruby']),
outputDir: z.string(),
baseUrl: z.string().optional(),
authType: z
.enum(['none', 'bearer', 'api-key', 'oauth'])
.default('none'),
features: z
.object({
hooks: z.boolean().default(true),
errorHandling: z.boolean().default(true),
caching: z.boolean().default(false),
validation: z.boolean().default(true),
})
.optional(),
});
export const FeatureExplanationSchema = z.object({
swaggerUrl: z.string().url().optional(),
swaggerHeaders: z.record(z.string()).optional(),
feature: z.string(),
platform: z
.enum(['react', 'react-native', 'nextjs', 'ruby', 'both'])
.default('both'),
});
//# sourceMappingURL=api.js.map