Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions hmm/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,8 @@ dependencies {
testCompileOnly('org.projectlombok:lombok')
compile group: "org.springframework.boot", name: "spring-boot-starter-security"
compile group: 'com.amazonaws', name: 'aws-java-sdk-s3', version: '1.11.840'

implementation('io.springfox:springfox-boot-starter:3.0.0')
}

test {
Expand Down
33 changes: 33 additions & 0 deletions hmm/src/main/java/com/hmm/hmm/config/SwaggerConfig.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
package com.hmm.hmm.config;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;

@EnableSwagger2
@Configuration
public class SwaggerConfig {
@Bean
public Docket api() {
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(appInfo())
.select()
.apis(RequestHandlerSelectors.any())
.paths(PathSelectors.any())
.build();
}

private ApiInfo appInfo() {
return new ApiInfoBuilder()
.title("HMM API")
.description("HMM Project API Documents")
.version("1.0.0")
.build();
}
}
Original file line number Diff line number Diff line change
@@ -1,11 +1,12 @@
package com.hmm.hmm.interfaces;

import com.hmm.hmm.application.BoardQnaService;
import com.hmm.hmm.domain.BoardQna;
import com.hmm.hmm.interfaces.dto.BoardCreateRequest;
import com.hmm.hmm.interfaces.dto.BoardQnaDto;
import com.hmm.hmm.interfaces.dto.BoardUpdateRequest;
import com.hmm.hmm.interfaces.dto.PageDto;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.data.domain.PageRequest;
Expand All @@ -15,6 +16,7 @@

import javax.validation.Valid;

@Api(tags = {"Board Api"})
@Slf4j
@RequiredArgsConstructor
@RequestMapping("/api/v1/qna-boards")
Expand All @@ -28,6 +30,7 @@ public BoardQnaDto create(@Valid @RequestBody BoardCreateRequest createRequest)
return BoardQnaDto.of(qnaBoardService.create(createRequest));
}

@ApiOperation(value = "게시글 등록")
@PostMapping("/create/file")
public BoardQnaDto createWithFile(@RequestParam("title") String title,
@RequestParam("content") String content,
Expand All @@ -43,23 +46,27 @@ public BoardQnaDto createWithFile(@RequestParam("title") String title,
return qnaBoardService.createWithFile(createRequest, files);
}

@ApiOperation(value = "게시글 조회")
@GetMapping("/{boardId}")
public ResponseEntity<BoardQnaDto> find(@PathVariable("boardId") Long boardId) {
return ResponseEntity.ok(qnaBoardService.find(boardId));
}

@ApiOperation(value = "게시글 전체 조회")
@GetMapping("/boards")
public PageDto<BoardQnaDto> findBoards(@RequestParam(defaultValue = "0") Integer page,
@RequestParam(defaultValue = "10") Integer size) {
return qnaBoardService.findBoards(PageRequest.of(page,size));
}

@ApiOperation(value = "게시글 수정")
@PatchMapping("/{boardId}")
public BoardQnaDto update(@PathVariable("boardId") Long boardId,
@Valid @RequestBody BoardUpdateRequest updateRequest) {
return BoardQnaDto.of(qnaBoardService.update(boardId, updateRequest));
}

@ApiOperation(value = "게시글 삭제")
@DeleteMapping("/{boardId}")
public void delete(@PathVariable("boardId") Long boardId) {
qnaBoardService.delete(boardId);
Expand Down