/REST_API

[FullStack] Java 8 to 11, REST API Server [HateOAS] , Mockito, Vue , Vuetify

Primary LanguageJava

REST API Server ( ~ing ) ๐Ÿป

Java 8 to 11
Spring Security
HateOAS, Self-descriptive message
JUnit5
Vue ์—ฐ๋™ [webpack ๊ณต๋ถ€ ๋ฐ ํ†ต์‹  ๊ณต๋ถ€]



REST API [ 1 depth๋กœ ๋ฆฌํŒฉํ† ๋ง ์˜ˆ์ • ]


One ) DataFilter๋Š” @jsonignore,SimpleBeanPropertyFilter๋ฅผ ์“ฐ์ง€ ์•Š๊ณ  DTO๋กœ ๋ฐ˜ํ™˜

EX] 
@jsonignore --- ( x )
SimpleBeanPropertyFilter filter = SimpleBeanPropertyFilter.fillterOutAllExcept --- ( x )

@PostMapping("/users") --- ( O )
public ResponseEntity<ResponseCreateDto> createUser(@Valid @RequestBody RequestCreateDto requestCreateDto)
    ...
    return ResponseEntity.created(location).body(responseCreateDto);

Two ) Entity๊ฐ€ ์•„๋‹Œ requestDTO์— @Valid๋กœ ์ ์šฉ

public ResponseEntity<ResponseCreateDto> createUser(@Valid @RequestBody RequestCreateDto requestCreateDto)

OAuth2 ( Code, Access Token )

RequestDTO, ResponseDTO, ExceptionDTO


HateOAS _LINK


// List์•ˆ์— ์žˆ๋Š” ๋ชจ๋“  DTO์— ์ƒ์„ธ Link ๊ฑธ์–ด์ฃผ๋Š” ๋ฐ˜๋ณต๋ฌธ
for(ResponseRetrieveUserDto responseRetrieveUserDto : users){
    WebMvcLinkBuilder linkTo = WebMvcLinkBuilder
        .linkTo(WebMvcLinkBuilder.methodOn(this.getClass()).retrieveUser(responseRetrieveUserDto.getId()));
    
    responseRetrieveUserDto.add(linkTo.withRel("retrieve-user")); // ๊ฐ DTO์— ๊ฐ์ž์˜ ์ƒ์„ธ URL ๋ฐ˜ํ™˜
}

ERD

SQL


1 ) USER

create table user (
        uno bigint generated by default as identity,
        create_date timestamp,
        modified_date timestamp,
        email varchar(255) not null,
        nickname varchar(255) not null,
        password varchar(255) not null,
        primary key (uno)
)

2 ) POST

create table post (
        pno bigint generated by default as identity,
        create_date timestamp,
        modified_date timestamp,
        content Text not null,
        description varchar(255) not null,
        post_status boolean not null,
        title varchar(500) not null,
        uno bigint not null,
        primary key (pno)
)

3 ) REPLY

create table reply (
        rno bigint generated by default as identity,
        create_date timestamp,
        modified_date timestamp,
        content Text,
        pno bigint not null,
        uno bigint not null,
        primary key (rno)
)

๋๋งบ์Œ


์ฃผ๊ธฐ์ ์ธ ์—…๋ฐ์ดํŠธ.
์™„์ „ํ•œ ์ฝ”๋“œ๋Š” Git ์œ„์˜ ์ฝ”๋“œ ๋ถ€๋ถ„์„ ๋ด์ฃผ์„ธ์š”.