-
swagger 2.0에서 OAS 3.0으로 변환시 body 값이 undefined로 표출 되는 현상 처리NodeJS 2020. 12. 25. 03:59728x90
swagger 2.0에서 OAS 3.0으로 변환시 body 값이 undefined로 표출 되는 현상 처리
이전에 작성했던 Swagger 2.0으로 된 프로젝트를 새로 배운 OAS 3.0으로 변환하는 작업을 해보았습니다.
Swagger Editor을 통해서 변환을 하고, oas-generator 이용해서 코드를 자동 생성하였습니다.
이후 POST, PUT 등을 확인하는 중 requestBody를 넘기면 다음과 같이 접근해야 값을 확인 할 수 있었습니다.
function createPets(req, res, next) { let params = req.swagger.params[undefined].value; res.status(200).send({ status: 'OK', message: 'TEST OK!', params }); }
Swagger 2.0에서는 req.swagger.params.body.value 를 이용하였는데, 어떤 문제인지 검색을 해보니, OAS 3.0에서는 x-name이 라는 옵션을 주어서 requestBody의 이름을 설정해야 했습니다.
샘플
post: summary: Create a pet operationId: createPets tags: - pets requestBody: description: Pet to add to the store x-name: pet # 이 이름을 사용해서 조회 하도록 합니다. required: true content: application/json: schema: $ref: '#/components/schemas/Pet'
이후 다음과 같이 사용할 수 있었습니다.
function createPets(req, res, next) { let params = req.swagger.params.pet.value; res.status(200).send({ status: 'OK', message: 'TEST OK!', params }); }
이 내용은 5. Add name property to request bodies를 보면 예제로 표기 되어 있습니다.
참고자료
728x90'NodeJS' 카테고리의 다른 글
워크플레이스 게시글 반응 조회 (0) 2021.01.05 JIRA work log를 Time tracking 형식으로 도식화 처리 (0) 2021.01.04 Swagger? OAS? with NodeJS (0) 2020.12.23 Node] Sequelize에서 MSSQL 연동시 RFC 6066 오류 해결 방법 (0) 2020.12.22 Node] sequelize에서 mysql 로그인시 unknown plugin sha256_password 오류 발생 (0) 2020.12.20