Express 복습

SSAD·2023년 2월 13일
0

BackEnd

목록 보기
8/44
post-thumbnail
post-custom-banner
// 폴더 생성
mkdir newfolder

// 폴더 안으로 이동
cd newfolder

// 패키지설정
// type module 추가
yarn init

// express와 swagger 관련 모듈 설치
yarn add express swagger-jsdoc swagger-ui-express

index.js 작성

import express from "express";

const app = express();

const port = 3000;

// json 데이터 사용가능하게 연결
app.use(express.json());



app.get("/", (req, res) => {
  res.send("Hello World!");
});

app.listen(port, () => {
  console.log(`Example app listening on port ${port}`);
});

swagger 설정

config.js 작성

export const options = {
  definition: {
      openapi: '3.0.0',
      info: {
          title: 'API 명세서',
          version: '1.0.0',
      },
  },
  apis: ['./swagger/*.swagger.js'], 

index.js 수정

import express from "express";

import swaggerUi from "swagger-ui-express";
import swaggerJsdoc from "swagger-jsdoc";
import { options } from "./swagger/config.js";

const app = express();

const port = 3000;



// json 데이터 사용가능하게 연결
app.use(express.json());

// swagger 설정
app.use("/api-docs", swaggerUi.serve, swaggerUi.setup(swaggerJsdoc(options)));


app.get("/", (req, res) => {
  res.send("Hello World!");
});

app.listen(port, () => {
  console.log(`Example app listening on port ${port}`);
});

api 만들기

swagger 작성

users.swagger.js

/**
 * @swagger
 * /users:
 *  get:
 *    summary: 회원 전체 조회
 *    description: 전체 회원을 조회한다.
 *    tags: [User]
 *    responses:
 *      200:
 *        description: 성공
 *        content:
 *          application/json:
 *            schema:
 *              type: array
 *              items:
 *                properties:
 *                  email:
 *                    type: string
 *                    example: "aaa@gmail.com"
 *                  writer:
 *                    type: string
 *                    example: "맹구"
 *                  phone:
 *                    type: string
 *                    example: "010-0000-0000"
 *                  personal:
 *                    type: string
 *                    example: "110111-1111111"
 *                  prefer:
 *                    type: string
 *                    example: "https://naver.com"
 */

starbucks.swagger.js

/**
 * @swagger
 * /starbucks:
 *  get:
 *    summary: 커피목록 전체 조회
 *    description: 모든 커피목록을 조회한다.
 *    tags: [Starbucks]
 *    responses:
 *      200:
 *        description: 성공
 *        content:
 *          application/json:
 *            schema:
 *              type: array
 *              items:
 *                properties:
 *                  name:
 *                    type: string
 *                    example: "아메리카노"
 *                  kcal:
 *                    type: number
 *                    example: 5
 */

swagger 확인

profile
learn !
post-custom-banner

0개의 댓글