[Module] Swagger
2020. 9. 18. 17:43ㆍ개발/[React]
쓰게 된 이유?
전에 했었던 프로젝트에서 Spring으로 Swagger를 적용한 적이 있다.
Swagger를 사용했을 때 API규약에 따라서 명세서(?) 같은 느낌이 들어 좋아
현재 회사에서 진행하고 있는 프로젝트 또한 Swagger를 사용해보고자 한다.
Swagger란?
개발자가 REST API 서비스를 설계, 빌드, 문서화할 수 있도록 하는 프로젝트이다.
Swagger는 다음과 같은 경우에 유용하게 사용된다.
- 다른 개발팀과 협업을 진행할 경우
- 이미 구축되어있는 프로젝트에 대한 유지보수를 진행할 경우
- 백엔드의 API를 호출하는 프론트엔드 프로그램을 제작할 경우
Swagger - Nodejs
npm install swagger-ui-express swagger-jsdoc
사용하는 방법.
/public/swaggerDoc.js
const swaggerJsdoc = require('swagger-jsdoc');
const swaggerUi = require('swagger-ui-express');
const options = {
swaggerDefinition: {
info: {
title: 'TEST',
version: '1.0.0',
description: 'test',
},
basePath: '/'
},
apis: ['../routes/options.js'],
};
const specs = swaggerJsdoc(options);
module.exports = app=>{
app.use('/api-docs', swaggerUi.serve, swaggerUi.setup(specs))
}
routes/options.js
/**
* @swagger
* /restriction/words/:chat_id:
* get:
* description: Returns words
* produces:
* - application/json
* responses:
* 200:
* description: users
* schema:
* type: array
* items:
* $ref: '#/definitions/User'
*/
--> 아직 완성 된 것은 아니라 대충 써놨다.
router.get('/restriction/words/:chat_id', (req,res) => {
const request = {
chat_id : req.params.chat_id
};
chat_blacklist.findByChatId(request)
.then(result=>{
res.send(result);
})
.catch(()=>{
res.send("false");
});
});
app.js
const swaggerDoc = require('./public/swaggerDoc')
const app = express();
swaggerDoc(app);
app.use('/users', usersRouter);
등등등..
아직 프로젝트를 만드시지 않았더라면!
npm install swagger
-- after --
swagger start project
자세한 건 아래의 링크를 참고하면 될 것 같다.
https://github.com/swagger-api/swagger-node
https://www.youtube.com/watch?v=MUZ5u8af4Qk&list=PLRx0vPvlEmdAezo0wkmUdT6WBCch0_1ie&index=4
'개발 > [React]' 카테고리의 다른 글
[Syntax] Async & await (0) | 2020.09.10 |
---|---|
[React] Promise (0) | 2020.09.10 |