Enable Scalar + OpenAPI spec for user posting
This commit is contained in:
@@ -4,6 +4,7 @@
|
||||
"": {
|
||||
"name": "concord-server",
|
||||
"dependencies": {
|
||||
"@hono/standard-validator": "^0.1.5",
|
||||
"@hono/zod-validator": "^0.7.3",
|
||||
"@prisma/client": "^6.16.2",
|
||||
"@scalar/hono-api-reference": "^0.9.19",
|
||||
@@ -20,6 +21,8 @@
|
||||
},
|
||||
},
|
||||
"packages": {
|
||||
"@hono/standard-validator": ["@hono/standard-validator@0.1.5", "", { "peerDependencies": { "@standard-schema/spec": "1.0.0", "hono": ">=3.9.0" } }, "sha512-EIyZPPwkyLn6XKwFj5NBEWHXhXbgmnVh2ceIFo5GO7gKI9WmzTjPDKnppQB0KrqKeAkq3kpoW4SIbu5X1dgx3w=="],
|
||||
|
||||
"@hono/zod-validator": ["@hono/zod-validator@0.7.3", "", { "peerDependencies": { "hono": ">=3.9.0", "zod": "^3.25.0 || ^4.0.0" } }, "sha512-uYGdgVib3RlGD698WR5dVM0zB3UuPY5vHKXffGUbUh7r4xY+mFIhF3/v4AcQVLrU5CQdBso8BJr4wuVoCrjTuQ=="],
|
||||
|
||||
"@prisma/client": ["@prisma/client@6.16.2", "", { "peerDependencies": { "prisma": "*", "typescript": ">=5.1.0" }, "optionalPeers": ["prisma", "typescript"] }, "sha512-E00PxBcalMfYO/TWnXobBVUai6eW/g5OsifWQsQDzJYm7yaY+IRLo7ZLsaefi0QkTpxfuhFcQ/w180i6kX3iJw=="],
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
"dev": "bun run --hot src/index.ts"
|
||||
},
|
||||
"dependencies": {
|
||||
"@hono/standard-validator": "^0.1.5",
|
||||
"@hono/zod-validator": "^0.7.3",
|
||||
"@prisma/client": "^6.16.2",
|
||||
"@scalar/hono-api-reference": "^0.9.19",
|
||||
|
||||
@@ -3,6 +3,8 @@ import { cors } from "hono/cors";
|
||||
import { Server as Engine } from "@socket.io/bun-engine";
|
||||
import { Server } from "socket.io";
|
||||
import routes from "./routes/index";
|
||||
import { Scalar } from "@scalar/hono-api-reference";
|
||||
import { openAPIRouteHandler } from "hono-openapi";
|
||||
|
||||
//initialize socket.io server
|
||||
const io = new Server();
|
||||
@@ -50,4 +52,22 @@ app.use(
|
||||
|
||||
app.route("/api", routes);
|
||||
|
||||
app.get(
|
||||
'/openapi',
|
||||
openAPIRouteHandler(app, {
|
||||
documentation: {
|
||||
info: {
|
||||
title: 'Hono API',
|
||||
version: '1.0.0',
|
||||
description: 'Greeting API',
|
||||
},
|
||||
servers: [
|
||||
{ url: 'http://localhost:3000', description: 'Local Server' },
|
||||
],
|
||||
},
|
||||
})
|
||||
)
|
||||
|
||||
app.get('/scalar', Scalar({ url: '/openapi' }))
|
||||
|
||||
export default app;
|
||||
|
||||
@@ -2,6 +2,7 @@ import { Hono } from "hono";
|
||||
import { fetchAllUsers, fetchUserData, createNewUser } from "../controller/userController";
|
||||
import { createUserSchema } from "../validators/userValidator";
|
||||
import { zValidator } from "@hono/zod-validator";
|
||||
import { describeRoute, resolver } from "hono-openapi";
|
||||
const actions = new Hono();
|
||||
|
||||
actions.get("user/:id", async (c) => {
|
||||
@@ -30,6 +31,17 @@ actions.get("user", async (c) => {
|
||||
|
||||
actions.post(
|
||||
"user",
|
||||
describeRoute({
|
||||
description: "Create a new user",
|
||||
responses: {
|
||||
201: {
|
||||
description: "Success",
|
||||
content: {
|
||||
'application/json': { schema: resolver(createUserSchema) },
|
||||
},
|
||||
}
|
||||
}
|
||||
}),
|
||||
zValidator('json', createUserSchema),
|
||||
async (c) => {
|
||||
try {
|
||||
|
||||
Reference in New Issue
Block a user