요구사항:
- 각 API들에 대한 설명을 swagger를 통해서 보여주고자 한다. 이에 따라 각 API마다 swagger 명세서에 맞는 json 또는 yaml파일을 사용자들이 올릴 것이고, 우리는 그 파일을 Front-end에서 받아서 저장하면 된다. 그리고 그 특정 API에 대해 조회를 원할때, 파일을 같이 내려주면 된다.
- 두 번째 케이스의 경우 Front-end에서 swaggerSpec.json을 까서 String으로 변환해주고 우리는 그냥 그 String만 저장하면 된다.
- 세 번째 케이스는 Front-end에서 책임지고 format에 맞춰 swaggerSpec.json을 만들어준다.
예시) 스웨거 예제 — 공공데이터 포털 (에 들어가서 Open API 탭으로 들어가라)
요구사항에 대해 구현할수 있는 방법:
- 파일 안의 내용, 확장자, 이름 등으로 원하는 파일로 변환하여 보내주도록 한다.
- dbPath를 알고 그 path에 파일을 저장시켜준다. 그리고 db에는 path만 가지고 있는다.
- 물론 파일 자체를 데이터베이스의 collection안에 저장해줄수 있지만, db가 무거워진다.
Spring에서 제공하는 MultipartFile 객체를 이용하는 것.
- 위 객체는 HTTP protocol에서 multi-part/form을 위한 형식이다. multi-part form은 여러 Content-type들의 request들을 한 번에 받아올수 있는 방법이다. 예를 들어 파일 객체, json형식의 body, image파일 등을 등록해달라는 것.
이에 대해 MVC pattern에 맞춰서 연역적으로 설명해보도록 하자.
[Controller]