[RESTful Web Service]-5

EarlyBird·2021년 11월 1일
0

RESTful Web Service

목록 보기
5/6
post-thumbnail

Dowon Lee님의 Spring Boot를 이용한 RESTful Web Services 개발 강의를 학습한 내용입니다.

Spring Boot API 사용

HATEOAS

의존성 추가

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-hateoas</artifactId>
            <!--            <version>2.1.8.RELEASE</version>-->
            <version>2.4.3</version>
        </dependency>
 @GetMapping("/users/{id}")
    public EntityModel<User> retrieveUser(@PathVariable int id){
    //...
        EntityModel<User> model = new EntityModel<>(user);
        WebMvcLinkBuilder linkTo = WebMvcLinkBuilder.linkTo(
                WebMvcLinkBuilder.methodOn(this.getClass()).retrieveAllUsers());

        model.add(linkTo.withRel("all-users"));

        return model;
    }

Swagger

의존성 추가

        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-boot-starter</artifactId>
            <version>3.0.0</version>
        </dependency>

        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger-ui</artifactId>
            <version>3.0.0</version>
        </dependency>
@Configuration
@EnableSwagger2
public class SwaggerConfig {

    @Bean
    public Docket api(){
        return new Docket(DocumentationType.SWAGGER_2);
    }
}
  • localhost:8088/swagger-ui/index.html

REST API Monitoring

Actuator

의존성 추가

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
            <version>2.4.4</version>
        </dependency>

application.yml

management:
  endpoints:
    web:
      exposure:
        include: "*"
  • localhost:8088/actuator

HAL Browser(HATEOAS 구현)

의존성 추가

        <dependency>
            <groupId>org.springframework.data</groupId>
            <artifactId>spring-data-rest-hal-browser</artifactId>
            <version>3.3.6.RELEASE</version>
        </dependency>
  • localhost:8088/browser/index.html

Spring Security

의존성 추가

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-security</artifactId>
            <version>2.1.7.RELEASE</version>
        </dependency>

configuration 클래스 이용한 인증 처리

@Configuration
public class SecurityConfig extends WebSecurityConfigurerAdapter {
    @Autowired
    public void configGlobal(AuthenticationManagerBuilder auth)
        throws Exception{
        auth.inMemoryAuthentication()
                .withUser("aaaa")
                .password("{noop}test1234")
                .roles("USER");
    }
}
profile
안되면 되게 합시다

0개의 댓글