import * as z from "zod"; export const slideLayoutId = "api-request-response-slide"; export const slideLayoutName = "API Request Response Slide"; export const slideLayoutDescription = "An API-focused slide with endpoint metadata, request payload, and response payload."; export const Schema = z.object({ title: z.string().min(8).max(26).default("API Request / Response").meta({ description: "Main heading shown at the top-left.", }), method: z.enum(["GET", "POST", "PATCH", "DELETE"]).default("POST").meta({ description: "HTTP method badge text.", }), endpoint: z.string().min(8).max(48).default("/api/v1/users/authenticate").meta({ description: "Endpoint path text.", }), headers: z .array(z.string().max(10)) .min(2) .max(2) .default(["Content-Type: application/json", "Authorization: Bearer "]) .meta({ description: "Two header lines shown in the endpoint card.", }), requestSnippet: z.object({ language: z.string().min(2).max(10), fileName: z.string().min(3).max(24), content: z.string().min(20).max(220), }).default({ language: "json", fileName: "request.json", content: `{ "email": "user@example.com user@example.com user@example.com user@example.com user@example.com" , "password": "securepassword123" }`, }).meta({ description: "Request payload example.", }), responseSnippet: z.object({ language: z.string().min(2).max(10), fileName: z.string().min(3).max(24), content: z.string().min(20).max(620), }).default({ language: "json", fileName: "response.json", content: `{ "success": true, "user": { "id": "usr_1234567890", "email": "user@example.com", "name": "John Doe", "role": "admin" }, "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...", "expiresIn": 3600 }`, }).meta({ description: "Response payload example.", }), pageLabel: z.string().min(3).max(8).optional().default("3 / 11").meta({ description: "Bottom pagination label.", }), }); export type SchemaType = z.infer; const CodeSlide03ApiRequestResponse = ({ data, }: { data: Partial; }) => { return ( <>

{data.title}

{data.method}

{data.endpoint}

Headers

{data.headers?.map((item) => (

{item}

))}

{data.requestSnippet?.fileName}


                  
                    {data.requestSnippet?.content}
                  
                

{data.responseSnippet?.fileName}


                
                  {data.responseSnippet?.content}
                
              
{data.pageLabel}
); }; export default CodeSlide03ApiRequestResponse;