Representational State Transfer Application Programming Interface
웹에서 사용되는 데이터나 자원을 HTTP URI로 표현하고, HTTP 프로토콜을 통해 요청과 응답을 정의하는 방식
아래 단계를 모두 충족해야 REST API 라고 부를 수 있으며, 하나라도 충족하지 않으면 HTTP API라고 불러야 한다고 리차드슨은 주장한다.
그런데 보통 2단계까지만 지키고 RESTful API 라고들 한다.
/groups/:group_id
GET
POST
PUT
PATCH
GET https://my-server.com/article
{
"data": {
"id": 1000,
"name": "게시글 1",
"content": "예시 JSON",
"self": "http://localhost:8080/api/article/1000", // 현재 api 주소
"profile": "http://localhost:8080/docs#query-article", // 해당 api의 문서
"next": "http://localhost:8080/api/article/1001", // 다음 article을 조회하는 URI
"comment": "http://localhost:8080/api/article/comment", // article의 댓글 달기
"save": "http://localhost:8080/api/feed/article/1000", // article을 내 피드로 저장
},
}
"links" : {
"self" : {
"href" : "http://localhost:8080/slots/123",
"method" : "GET"
},
"cancle" : {
"href" : "http://localhost:8080/slots/123/cancel",
"method" : "DELETE"
}
}
응답에 들어가는 링크 요소는 응답을 받은 후 할 수 있는 다양한 액션들을 위해 하이퍼미디어 컨트롤을 포함하고 있다.
이렇게 응답 내에 새로운 링크를 넣어 새로운 기능에 접근할 수 있도록 한다.
GET /members/delete/1
-> DELETE /members/1
GET /members/insert/2
-> POST /members/2
혹시나 잘못된 정보가 있다면 댓글로 알려주세요 ! 저의 성장의 큰 도움이 될 것 같습니다.🌱