전 회사에서 Spring boot로 구축 시 모든 IN/OUT을 Api 문서 없이 Swagger로 적용하기로 했기에 들어오는 변수나 나가는 변수 모두를 VO로 작성해야만 했습니다. 다른 부분은 모두 문제없이 해결했는데 문제가 되는 부분은 바로 Multipart 였습니다. 파일을 넘겨야 하는데 @RequestParam 어노테이션으로 처리하면 Swagger에서는 json만 뜨고 멀쩡히 File upload가 안되고 @RequestPart로 하라고 해서 했더니 'org.apache.tomcat.util.http.fileupload.FileUploadException: the request was rejected because no multipart boundary was found' 와 같은 에러만 떨어졌습니..
현재 회사에서 AWS 인증서를 통해서 HTTPS(443)에 개발 서버를 놓고 개발을 진행 중인데, 자체적으로 Tomcat에 인증서가 있는 게 아니라서 Spring boot에 SSL 설정은 빠져있는 상태였습니다. 그러다보니 Swagger에는 주소가 Http로 나와서 Swagger에서 통신이 제대로 되지 않는 일이 발생했습니다. 그래서 Swagger에서 서버를 설정을 해주었는데, 처음에는 설정한 정보로 정보가 뜨긴 하지만 새로고침을 하면 설정한 서버가 뜨지 않고 Swagger에 기본적으로 설정 된 서버 정보가 나오면서 초기화가 되는 문제가 발생했습니다. 이리 저리 구글에도 찾아보고 여러 방법을 적용했는데도 되지 않더군요. 그래서 현재 springdoc-openapi-ui 버전을 1.5.9에서 1.4.8로 낮..
새롭게 옮긴 회사에서 API 설계를 할 시간이 없어서 API 설계 명세 없이 일단 개발을 진행하면서 Swagger로 API 명세 보여주는 것과 테스트를 진행하기로 했습니다. API 통신에 대한 유효성 검증을 위해 Jwt token을 사용하게 되었는데 Jwt token이 필요한 API들과 필요없는 API를 구분하여 보여주고 싶었습니다. 현재 국내 블로그에서는 내용이 정확하게 나와 있는 곳이 없어서 아래와 같이 작성하여 보여드립니다. 아래 소스를 보시면 spring.profiles.active를 변수로 전달하고 있는데 이 변수를 통해서 Open api의 설명에 여기 서버는 어디이고 현재 접속한 곳은 어떤 버전이다를 명기하고 싶었는데 Swagger 오류인지 처음에는 서버에 설명이 제대로 뜨지만 통신이 안되고 ..
기본적으로 프로젝트에서 쓰는 Encoding은 UTF-8이였는데, 외부에서 들어오는 통신 중에 한글이 EUC-KR로 들어오는 일이 생겼습니다. 따라서 부분적으로 해당 URL에 필터를 적용해야 하는데 인터넷에서 아무리 찾아봐도 해결책이 나오지 않았습니다. 어디 블로그에서는 Spring security 앞에 설정을 추가해야 한다는데 저희 제품 안에 Security 설정이 들어가 있어서 해당 방법도 적용할 수 없었습니다. 그러다가 결국에 삽질 끝에 찾아 내었는데 아래 방식대로 적용하시면 됩니다. Spring.application.properties 에 아래 한 줄 추가 spring.http.encoding.force=false 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 1..
- Total
- Today
- Yesterday