REST
란 "Representational State Transfer"의 약자이다.REST API
는 URI(Uniform Resource Identifier)를 사용해 자원(Resource)을 식별하고, HTTP
를 통해 해당 자원에 대한 CRUD 요청을 수행한다.그렇다면, 여기서 Restful하게 API를 작성하는 것 어떻게 하는 것일까?
REST 성숙도 모델
이라는 것을 찾았다. http://this-is-test
-> Ohttp://this_is_test
-> XGET
http://user/device/dev1
GET
http://user/device/dev2
/
는 맨 끝에 위치하면 안된다./
로 계층 관계를 나타내야 한다.CRUD
에 맞는 HTTP 메서드를 사용하는 것이 중요하다.POST
), 조회(Read, GET
), 수정(Update, PUT
, PATCH
), 삭제(Delete, DELETE
)GET
메서드는 데이터를 변화시키면 안된다.POST
메서드는 요청마다 새로운 리소스를 생성해야한다.PUT
메서드는 리소스를 대체한다. 요청 본문에 포함된 리소스가 서버의 리소스로 완전히 대체하기 때문에, 전체 리소스를 포함해 요청해야한다. 전체 업데이트에 사용된다.PATCH
메서드는 리소스의 일부를 수정한다. 요청 본문에 포함된 데이터만 서버의 리소스에서 수정된다. 부분 업데이트에 사용된다.DELETE
메서드는 리소스를 삭제한다.적절한 상태 코드 사용
, 쿼리 매개변수 사용
등이 있다.GET https://api/users/1
HTTP/1.1 200 OK
Content-Type: application/json
{
"result" {
"id": "1",
"name": "jaejeong",
"nextActions": {
"/api/users/{userId}/roles",
}
}
}