@tiemma/sonic-core
Version:
Core package for the sonic project on swagger documentation
161 lines (149 loc) • 3.66 kB
text/typescript
import express, {Router, Request, Response } from "express";
const router = Router();
const app = express();
app.use(express.json());
app.use(express.urlencoded({ extended: true }));
/**
* @swagger
* /animal/{man}/dog:
* get:
* name: dog
* description: Endpoint for dog under a particular man
* tags:
* - Dog
* responses:
* 200:
* content:
* application/json:
* schema:
* $ref: '#/definitions/dog'
* 401:
* description: Token not provided
* 500:
* content:
* application/json:
* schema:
* $ref: '#/definitions/dogError500'
* parameters:
* - name: man
* in: path
* defaultTemplate: $man[0].id
* required: true
*/
router.get(
"/path/:man",
(req: Request, res: Response) => {
return res.json({"man": req.params.man})
}
);
/**
* @swagger
* /cat/{mouse}:
* get:
* name: cat
* summary: Get mouse
* tags:
* - mouse
* responses:
* 200:
* description: mouse retrieved successfully
* content:
* application/json:
* schema:
* $ref: '#/definitions/mouseResp'
* 401:
* description: Token not provided
* parameters:
* - name: mouse
* in: path
* description: ID
* defaultTemplate: $mouse.id
* required: true
*/
router.get(
"/cat/:mouse",
(_: Request, res: Response) => {
return res.send("Data")
}
);
/**
* @swagger
* /mouse/{id}/man:
* post:
* name: mouse
* summary: Create mouse
* description: Creates a mouse under a man's house, rhymes with the times dudes
* tags:
* - mouse
* requestBody:
* description: Details to authenticate
* required: true
* content:
* "application/json":
* schema:
* $ref: "#/definitions/createmouse"
* parameters:
* - name: id
* in: path
* description: man ID
* required: true
* defaultTemplate: $man[0].id
* schema:
* $ref: "#/definitions/pathID"
*/
router.post(
"/mouse/:id/man",
(req: Request, res: Response) => {
return res.json({"id": req.params.id, "body": req.body})
}
);
/**
* @swagger
* /man:
* get:
* name: man
* description: For all men shall find their path in life
* tags:
* - man
* produces: application/json
* responses:
* 200:
* content:
* application/json:
* schema:
* $ref: '#/definitions/manResponds'
* 401:
* description: Token not provided
* 403:
* description: Super Admin privileges required
*/
router.get("/path", (_req: Request, res: Response) => {
return res.json([{"id": "bbe550ea-d564-4099-a0a5-bb60940529d1"}])
});
/**
* @swagger
* /animal:
* get:
* name: animals
* summary: Get animals
* tags:
* - Animals
* responses:
* 200:
* description: Animals retrieved successfully
* content:
* application/json:
* schema:
* $ref: '#/definitions/animalSpeaks'
* 400:
* description: Missing parameter in request body
* 401:
* description: Token not provided
*/
router.get("/animal", (_req: Request, res: Response) => {
return res.json([{"id": "bbe550ea-d564-4099-a0a5-bb60940529d1"}])
});
app.use("/api/v1", router);
app.listen(3200, () => {
console.info("Express server started on port: " + 3200);
});