From fad940b51739e8fbbfd515866eda9c80f83d2b58 Mon Sep 17 00:00:00 2001 From: Lars Hampe Date: Sat, 28 Sep 2024 22:20:25 +0200 Subject: [PATCH] feat(api): replace astro openapi with hono openapi ui --- apps/api/package.json | 1 + apps/api/src/index.ts | 12 ++++++++++++ apps/website/astro.config.mjs | 18 ++---------------- apps/website/package.json | 1 - bun.lockb | Bin 331096 -> 325440 bytes packages/schema/src/user/base.ts | 16 +++++++++------- packages/schema/src/user/webhook.ts | 2 +- 7 files changed, 25 insertions(+), 25 deletions(-) diff --git a/apps/api/package.json b/apps/api/package.json index fa39948..dc8c48e 100644 --- a/apps/api/package.json +++ b/apps/api/package.json @@ -10,6 +10,7 @@ "@boring.tools/schema": "workspace:*", "@hono/clerk-auth": "^2.0.0", "@hono/zod-openapi": "^0.16.2", + "@scalar/hono-api-reference": "^0.5.149", "hono": "^4.6.3" }, "devDependencies": { diff --git a/apps/api/src/index.ts b/apps/api/src/index.ts index 6c81e46..e50de21 100644 --- a/apps/api/src/index.ts +++ b/apps/api/src/index.ts @@ -1,5 +1,6 @@ import type { UserOutput } from '@boring.tools/schema' import { OpenAPIHono, type z } from '@hono/zod-openapi' +import { apiReference } from '@scalar/hono-api-reference' import { cors } from 'hono/cors' import user from './user' @@ -27,6 +28,17 @@ app.doc('/openapi.json', { }, }) +app.get( + '/', + apiReference({ + pageTitle: 'boring.tools API', + theme: 'purple', + spec: { + url: '/openapi.json', + }, + }), +) + export default { port: 3000, fetch: app.fetch, diff --git a/apps/website/astro.config.mjs b/apps/website/astro.config.mjs index 60132a7..a53a28a 100644 --- a/apps/website/astro.config.mjs +++ b/apps/website/astro.config.mjs @@ -1,6 +1,5 @@ import starlight from '@astrojs/starlight' import { defineConfig } from 'astro/config' -import starlightOpenAPI, { openAPISidebarGroups } from 'starlight-openapi' export default defineConfig({ outDir: '../../build/website', @@ -20,31 +19,18 @@ export default defineConfig({ social: { github: 'https://github.com/boring-tools/boring.tools', }, - favicon: '/public/favicon.svg', + favicon: '/favicon.svg', sidebar: [ { label: 'Guides', items: [{ label: 'Getting started', slug: 'guides/getting-started' }], }, - ...openAPISidebarGroups, + { label: 'API', link: 'https://api.boring.tools' }, // { // label: 'Reference', // autogenerate: { directory: 'reference' }, // }, ], - plugins: [ - // Generate the OpenAPI documentation pages. - starlightOpenAPI([ - { - base: 'api', - label: 'API', - schema: - import.meta.env.NODE_ENV !== 'production' - ? 'http://localhost:3000/openapi.json' - : 'https://api.boring.tools/openapi.json', - }, - ]), - ], }), ], }) diff --git a/apps/website/package.json b/apps/website/package.json index 35cb50d..c187a87 100644 --- a/apps/website/package.json +++ b/apps/website/package.json @@ -14,7 +14,6 @@ "@astrojs/starlight": "^0.28.2", "astro": "^4.15.3", "sharp": "^0.32.5", - "starlight-openapi": "^0.7.0", "typescript": "^5.6.2" } } diff --git a/bun.lockb b/bun.lockb index a423344da5a5a305572d90b542fe92f359339032..3a8715cf87d2ffa0d5a31cbd82d78f4272bcf831 100755 GIT binary patch delta 64126 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 U8RI&p)8waH@l?>3F~0Ht05IXm6aWAK delta 67674 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 ae|_-*A~ne7gSK|jB>C%UX8WLh|9=4L$iCtL diff --git a/packages/schema/src/user/base.ts b/packages/schema/src/user/base.ts index ec65890..b1fdd8a 100644 --- a/packages/schema/src/user/base.ts +++ b/packages/schema/src/user/base.ts @@ -1,9 +1,11 @@ import { z } from '@hono/zod-openapi' -export const UserOutput = z.object({ - id: z.string().openapi({ - example: 'user_2metCkqOhUhHN1jEhLyh8wMODu7', - }), - name: z.string(), - email: z.string().email(), -}) +export const UserOutput = z + .object({ + id: z.string().openapi({ + example: 'user_2metCkqOhUhHN1jEhLyh8wMODu7', + }), + name: z.string(), + email: z.string().email(), + }) + .openapi('User') diff --git a/packages/schema/src/user/webhook.ts b/packages/schema/src/user/webhook.ts index f923a91..411af3b 100644 --- a/packages/schema/src/user/webhook.ts +++ b/packages/schema/src/user/webhook.ts @@ -27,4 +27,4 @@ export const UserWebhookInput = z examples: ['user.created', 'user.updated'], }), }) - .openapi('User') + .openapi('User Webhook')