SEB_BE_43 / 23.01.27 회고

rse·2023년 1월 28일
0

코드스테이츠_BE_43

목록 보기
23/65

오늘

  • REST API
  • Postman

REST API

HTTP 메서드를 통해서 GET이나 POST 등 클라이언트와 서버에 대한 요청과 응답을 주고 받을 수 있다.

이런 사용은 아무런 규칙없이 이루어지는 것이 아니라 요청과 응답을 할 때 제대로 보내고 받을 수 있는 일종의 규약이 존재한다.

예로들어 우리가 사이트를 만들면 여러가지 기능이 있을 것이다.
ex ) 회원가입, 회원 수정, 로그인 등등...

이런 기능들을 API 로 식별해서 구분한다.

즉 REST API란 웹에서 사용되는 데이터나 자원(Resource)을 HTTP URI로 표현하고 HTTP 프로토콜을 통해 요청과 응답을 정의하는 방식을 말한다.
즉 음식점에 갔을 때 메뉴판 같은 역할을 하는 것.
음식점에 따라 메뉴가 다르고 메뉴이름도 다를테니 그 식당 메뉴판에 맞춰서 주문하는 것.

REST API 는 우리가 설명을 보지 않고 메서드 이름만 보고도 유추를 할 수 있어야 한다.

REST API 성숙도 모델

출처 : 코드스테이츠 유어클래스

0단계

단순히 HTTP 프로토콜을 사용하는 것.
Request

POST /appointment HTTP/1.1
	{
    	"date" : "2022-08-10",
        "doctor" : "허준"
    }

Response

HTTP/1.1 200OK
	{
    	"slots" : [
        	{ "doctor" : "허준", "start": "9:00", "end": "12:00"}
	}            

1단계

개별 리소스와의 통신을 준수해야 한다.
Request

POST /doctors/허준 HTTP/1.1
	{
    	"date" : "2022-08-10"
    }

Response

HTTP/1.1 200OK
	{
    	"slots" : [
        	{ "id" : 123, "doctor" : "허준", "start": "9:00", "end": "12:00"}
	}            

2단계

CRUD에 맞게 적절한 HTTP 메서드를 사용하는 것에 중점을 둔다.
0단계와 1단계에서는 모든 요청을 POST하나로 했지만 2단계에서는 구분지어서 해야한다.
Request

GET /doctors/허준/slots?date=2022-08-10 HTTP/1.1

Response

HTTP/1.1 200OK
	{
    	"slots" : [
        	{ "id" : 123, "doctor" : "허준", "start": "9:00", "end": "12:00"}
	}            

3단계

2단계와 동일하지만 Response 에는 리소스의 URI 를 포함한 링크 요소를 삽입하여 작성한다는 것이 다르다.

GET /doctors/허준/slots?date=2022-08-10 HTTP/1.1

Response

HTTP/1.1 200OK
	{
    	"slots" : [
        	{ "id" : 123, "doctor" : "허준", "start": "9:00", "end": "12:00"}
          ],
          "links" : {
          	"appointment" : {
            "href" : "http://localhost:8080/slots/123",
            "method" : "POST"
            }
		}
	}            

꾸준히 REST API 노력하면서 코드를 작성 할 필요가 있다.

Postman

Postman은 HTTP API 를 테스트 할 수 있는 도구이다.

endpoint URL이 http://3.36.72.17:3000 이고 뒤에 /kimcoding/messages 가 요청사항이 되겠다.
그래서 저 요청은 GET이니 김코딩이 작성한 메세지를 보고싶을때, 조회할 때 사용 할 수 있다.

정리

https://코드스테이츠.com/product?name = "백엔드 코스" 라고 하면 필터링(쿼리 스트링을 사용. 키와 벨류로 구성)
https://코드스테이츠.com/product/3 = 텍스트 스트링을 사용하면 그냥 단순히 그 값을 가져오게 됨.
별도의 필터 없음

uri의 기준은 url-path 까지. 하지만 query가 포함되는 경우도 있음.

HTTP 상태코드
2xx : 성공
3xx : 리다이렉션 필요
4xx ; 클라이언트 요청 오류
5xx : 서버 내부 오류 (요청은 제대로 왔는데 서버에서 실패한 경우)

REST API에서 리소스는 자원을 HTTP URI로 표현.
명사로 표현 필수. 특이 케이스 빼고.
URI 는 다 소문자로!
행위는 메서드로 표현, 리소스는 URI로 표현.

profile
기록을 합시다

0개의 댓글