2019/06/20 - [프로그래밍 공부] - [Nuxt.js + Spring Boot] simple example
Swagger는 Rest API를 눈으로 보기 쉽게 그려주는 역할을 하고 있다. 고로, 이전에 포스팅한 RestAPI를 활용한 프로젝트 예제를 가지고 테스트 해보려고한다.
우선 pom.xml에 Dependency를 설정해 주어 사용할 수 있는 환경을 구성한다
(참고로 두개의 버전이 다르면 에러가 난다는 stackoverflow의 내용이 많으니 버전은 동일하게 해주자)
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.6.1</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.6.1</version>
</dependency>
그다음, Controller에 annotation을 추가한다.
@GetMapping("/post")
@ApiOperation(value="사용자 정보 조회", notes="사용자 정보를 조회")
public List goodPersons(){
return personRepository.findAll();
}
@PostMapping("/post")
@ApiOperation(value="사용자 정보 저장", notes="사용자 정보를 저장합니다")
public void registration(@ModelAttribute("personForm") Post postForm) {
System.out.println(postForm);
personService.savePost(postForm);
}
@ApiOperation Get,Post 방식 등 url 요청을 읽어드리는 부분에 작성하면 된다.
@SpringBootApplication
@EnableSwagger2
public class BackendApplication {
public static void main(String[] args) {
SpringApplication.run(BackendApplication.class, args);
}
@Bean
public Docket api(){
return new Docket(DocumentationType.SWAGGER_2)
.select()
.apis(RequestHandlerSelectors.any())
.paths(PathSelectors.ant("/**"))
.build();
}
}
그리고 BootApplication에 @EnableSwagger2 를 붙여 Swagger를 이용할수 있게끔 하자 ( 안붙이면 404에러 )
@Bean으로 Docket을 설정하여, 어떠한 paths, apis 등 설정이 가능한데, 현재 설정한 것은
어느 요청이든지 캐치하겠다 라는 것이다. 만약 원하는 Controller만 보고싶다면,
Controller 에 @RequestMapping("/resource") 이런 형식으로 어노테이션을 붙여놓고
paths에서 ("/**") 이 아닌, ("/resource/**") 이런식으로 붙여줘야 지정이 가능하다.
마지막으로 JPA 부분에 ( domain, entity, model 등 )
@Data
@NoArgsConstructor
@Entity
@ApiModel
public class Post {
public Post(String title) {
this.title = title;
}
@Id
@GeneratedValue
@ApiModelProperty(value="아이디")
private Long id;
@ApiModelProperty(required = true, value="제목")
private String title;
@ApiModelProperty(required = true, value="내용")
private String content;
}
@ApiModel, @ApiModelProperty를 설정해주자.
여기서 ID는 @GeneratedValue가 붙어있기 때문에 autoIncrease가 되므로 required = true가 따로 필요가 없다
( required = true 로 해두면 꼭 값을 받아야지만 실행이 된다. )
그 후에 Nuxt.js + Boot 를 실행시킨후 http://localhost:8080/swagger-ui.html 에 들어가면,
RestAPI를 관리할 수 있는 화면이 나온다
여기서 person-controller에 어노테이션을 붙여놨으므로 들어가 보면,
controller의 세부 내용이 보이게 된다. get은 회원읽기용, post는
저장용이니 저장용으로 일단 데이터를 집어넣어 보자
값을 입력하고, Try it out! 버튼을 누르면
Response Code 200 (정상작동)과 함께 Boot console에도 데이터가 들어온것이 확인된다.
이제, 방금 넣은 데이터를 확인해보자. GET 방식으로 들어가서, Try it out! 버튼을 누르면
방금 집어넣은 데이터가 제대로 표시가 된다
'프로그래밍 공부 > Etc' 카테고리의 다른 글
[Vault] KMS (0) | 2021.11.04 |
---|---|
audio tag에서 seekbar가 작동하지 않을때 (0) | 2021.09.17 |
java.lang.NoClassDefFoundError: javax/xml/bind/DatatypeConverter (0) | 2021.03.10 |
[메모] activity launchMode 삽질 (0) | 2020.10.05 |
[Docker] boot를 Docker로 실행해보자 (0) | 2019.06.27 |