SPB Git
725 B · 10 lines typescript
1import { logSearch, search, type SearchMode } from "@/lib/papers/search";2import { json, limited, tooMany } from "@/lib/api";3export async function GET(req: Request) {4  if (limited(req, "search", 60)) return tooMany();5  const u = new URL(req.url); const q = (u.searchParams.get("q") ?? "").trim(); if (!q) return Response.json({ error: "q required" }, { status: 400 });6  const mode = (["hybrid", "lexical", "semantic"].includes(u.searchParams.get("mode") ?? "") ? u.searchParams.get("mode") : "hybrid") as SearchMode;7  const res = await search(q, mode, Math.min(50, Number(u.searchParams.get("limit") ?? 20) || 20)); await logSearch(q, res.mode, res.hits.length, "api", res.tookMs);8  return json(res, { maxAge: 30 });9}10
Files · main
Menu

Theme