-
[고농축 백엔드 코스Quiz4] API 명세서 만들기(Swagger)프로젝트/고농축 백엔드 코스 2023. 7. 26. 17:38
요구사항
1. 회원 목록 조회 API, 커피 목록 조회 API 각각에 대해 `Swagger`를 활용하여 API 명세서를 만들어 주세요. 1. `users.swagger.js` 파일에 회원 목록 조회 API 명세를 만들어 주세요. 2. `starbucks.swagger.js` 파일에 커피 목록 조회 API 명세를 만들어 주세요. 3. `config.js` 파일에 swagger 설정 파일을 만들어 주세요. 2. Swagger 문서에 접속해 **모든** api를 테스트해 보고 결과를 캡쳐해 주세요.
index.js
import express from "express"; import swaggerUi from "swagger-ui-express"; import swaggerJSDoc from "swagger-jsdoc"; import { options } from "../quiz4/swagger/config.js"; const app = express(); // swagger 생성 app.use("/api-docs", swaggerUi.serve, swaggerUi.setup(swaggerJSDoc(options))); app.get("/users", (req, res) => { const result = [ { email: "aaa@gmail.com", name: "철수", phone: "010-1234-5678", personal: "220110-2222222", prefer: "https://naver.com", }, { email: "aaa@gmail.com", name: "영수", phone: "010-1234-5678", personal: "220110-2222222", prefer: "https://naver.com", }, { email: "aaa@gmail.com", name: "진수", phone: "010-1234-5678", personal: "220110-2222222", prefer: "https://naver.com", }, { email: "aaa@gmail.com", name: "혜수", phone: "010-1234-5678", personal: "220110-2222222", prefer: "https://naver.com", }, { email: "aaa@gmail.com", name: "민수", phone: "010-1234-5678", personal: "220110-2222222", prefer: "https://naver.com", }, ]; res.send(result); }); app.get("/starbucks", (req, res) => { const result = [ { name: "아메리카노", kcal: 5 }, { name: "카페라떼", kcal: 5 }, { name: "카푸치노", kcal: 5 }, { name: "바닐라라떼", kcal: 205 }, { name: "딸기라떼", kcal: 335 }, { name: "녹차", kcal: 5 }, { name: "콜드브루", kcal: 5 }, { name: "프라푸치노", kcal: 5 }, { name: "자허블", kcal: 5 }, { name: "슈크림라떼", kcal: 500 }, ]; res.send(result); }); app.listen(3000, () => { console.log("POSTMAN으로 요청을 보냈습니다."); });
/swagger/config.js
export const options = { definition: { openapi: "3.0.0", info: { title: "API 명세서 만들기(Swagger)", version: "1.0.0", }, }, apis: ["./swagger/*.swagger.js"], }; // $ref{} 개념 알아보기
/starbucks.swagger.js
/** * @swagger * /starbucks: * get: * summary: 커피메뉴 가져오기 * tags: [Starbucks] * responses: * 200: * content: * application/json: * schema: * type: array * example: * - name: 아메리카노 * kcal: 5 * - name: 카페라떼 * kcal: 13 * - name: 프라푸치노 * kcal: 113 * - name: 바닐라라떼 * kcal: 5 * - name: 딸기라떼 * kcal: 13 * - name: 프라푸치노 * kcal: 113 */
/swagger/user.swagger.js
/** * @swagger * /users: * get: * summary: 유저정보 가져오기 * tags: [Users] * responses: * 200: * content: * application/json: * schema: * type: array * example: * - email: "aaa@gmail.com" * name: "혜수" * phone: "010-1234-5678" * personal: "220110-2222222" * prefer: "https://naver.com" * - email: "aaa@gmail.com" * name: "민수" * phone: "010-1234-5678" * personal: "220110-2222222" * prefer: "https://naver.com" */
결과
반응형'프로젝트 > 고농축 백엔드 코스' 카테고리의 다른 글
[고농축 백엔드 코스Quiz5]프론트엔드와 API 연동하기 - /starbucks (0) 2023.07.30 [고농축 백엔드 코스Quiz5]Rest-API를 GrapQL-API로 변경하기 (0) 2023.07.27 [고농축 백엔드 코스Quiz4]Node.js로 회원 목록 조회 API 만들기 (0) 2023.07.26 [고농축 백엔드 코스Quiz2] 자바스크립트 날짜와 시간 포매팅 (0) 2023.07.26 [고농축 백엔드 코스Quiz1]주민번호 마스킹 (0) 2023.07.26