본문 바로가기

✋ 개념이해/개발 관련

REST API

# RESTFul API 사용이유

간단하게 이야기하면 하나의 소스(Data)를 다양한 클라이언트에서 사용하고자 하는 목적에서 시작 되었다.

웹으로만 서비스 한다면 굳이 REST API로 분리하여 구성 하지 않는것이 성능에 더 좋다.

하지만 스마트폰이 등장하고 다양한 환경에서 소스(Data)를 사용하기 위해서는 RESTFul API로 개발하는 것이 표준이 되었다.

# 기본적으로 SpringBoot Controller에 정의된 값을 RestAPI로 설정한다.

- 예제 코드는 아래와 같다.

package kr.co.sample.sampleapi.controller;

import kr.co.sample.sampleapi.entity.User;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.*;

@RestController
public class TestController {
    @GetMapping(value = "/user/{id}", produces = MediaType.APPLICATION_JSON_VALUE)
    public Object findUser(
            @PathVariable(value = "id", required = true) String id,
            @RequestHeader(value = "User-Agent") String userAgent,
            @RequestParam(value = "param1", required = false) String param1,
            @RequestParam(value = "param2", required = false) String param2){

        return true;
    }
    
    @GetMapping(value = "/user", produces = MediaType.APPLICATION_JSON_VALUE)
    public Object findUsers(
            @RequestHeader(value = "User-Agent") String userAgent,
            @ModelAttribute User user){

        return true;
    }
    
    @PostMapping(value = "/user", produces = MediaType.APPLICATION_JSON_VALUE)
    public Object CreateUser(
            @RequestHeader(value = "User-Agent") String userAgent,
            @RequestBody(required = true) User user){

        return true;
    }
}