Enable Scalar + OpenAPI spec for user posting
This commit is contained in:
@@ -4,6 +4,7 @@
|
|||||||
"": {
|
"": {
|
||||||
"name": "concord-server",
|
"name": "concord-server",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
"@hono/standard-validator": "^0.1.5",
|
||||||
"@hono/zod-validator": "^0.7.3",
|
"@hono/zod-validator": "^0.7.3",
|
||||||
"@prisma/client": "^6.16.2",
|
"@prisma/client": "^6.16.2",
|
||||||
"@scalar/hono-api-reference": "^0.9.19",
|
"@scalar/hono-api-reference": "^0.9.19",
|
||||||
@@ -20,6 +21,8 @@
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
"packages": {
|
"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=="],
|
"@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=="],
|
"@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"
|
"dev": "bun run --hot src/index.ts"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
"@hono/standard-validator": "^0.1.5",
|
||||||
"@hono/zod-validator": "^0.7.3",
|
"@hono/zod-validator": "^0.7.3",
|
||||||
"@prisma/client": "^6.16.2",
|
"@prisma/client": "^6.16.2",
|
||||||
"@scalar/hono-api-reference": "^0.9.19",
|
"@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 as Engine } from "@socket.io/bun-engine";
|
||||||
import { Server } from "socket.io";
|
import { Server } from "socket.io";
|
||||||
import routes from "./routes/index";
|
import routes from "./routes/index";
|
||||||
|
import { Scalar } from "@scalar/hono-api-reference";
|
||||||
|
import { openAPIRouteHandler } from "hono-openapi";
|
||||||
|
|
||||||
//initialize socket.io server
|
//initialize socket.io server
|
||||||
const io = new Server();
|
const io = new Server();
|
||||||
@@ -50,4 +52,22 @@ app.use(
|
|||||||
|
|
||||||
app.route("/api", routes);
|
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;
|
export default app;
|
||||||
|
|||||||
@@ -2,6 +2,7 @@ import { Hono } from "hono";
|
|||||||
import { fetchAllUsers, fetchUserData, createNewUser } from "../controller/userController";
|
import { fetchAllUsers, fetchUserData, createNewUser } from "../controller/userController";
|
||||||
import { createUserSchema } from "../validators/userValidator";
|
import { createUserSchema } from "../validators/userValidator";
|
||||||
import { zValidator } from "@hono/zod-validator";
|
import { zValidator } from "@hono/zod-validator";
|
||||||
|
import { describeRoute, resolver } from "hono-openapi";
|
||||||
const actions = new Hono();
|
const actions = new Hono();
|
||||||
|
|
||||||
actions.get("user/:id", async (c) => {
|
actions.get("user/:id", async (c) => {
|
||||||
@@ -30,6 +31,17 @@ actions.get("user", async (c) => {
|
|||||||
|
|
||||||
actions.post(
|
actions.post(
|
||||||
"user",
|
"user",
|
||||||
|
describeRoute({
|
||||||
|
description: "Create a new user",
|
||||||
|
responses: {
|
||||||
|
201: {
|
||||||
|
description: "Success",
|
||||||
|
content: {
|
||||||
|
'application/json': { schema: resolver(createUserSchema) },
|
||||||
|
},
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}),
|
||||||
zValidator('json', createUserSchema),
|
zValidator('json', createUserSchema),
|
||||||
async (c) => {
|
async (c) => {
|
||||||
try {
|
try {
|
||||||
|
|||||||
Reference in New Issue
Block a user