영어 잘하는 패턴
/boards
GET - search list
POST - create one
/{id}
GET - one show
PUT - one update (idempotent)
PATCH - one partial update
DELETE - one remove
/board
/search
GET
/batch
GET
POST
PUT
DELETE
/by
/code/{code}
/uuid/{uuid}
DSL로 만들면
route {
route("/boards") {
get { }
post(boardsPostHandler)
route("/{id}") {
get { }
put { }
patch { }
delete { }
}
}
route("/board") {
get("/search") { }
route("/batch") {
get { }
post { }
put { }
delete { }
}
route("/by") {
get("/code/{code}") { }
get("/uuid/{uuid}") { }
}
}
}
영어 쌩까는 패턴
/board
/list
GET - search list
/one
POST - one create
/{id}
GET - one show
PUT - one update (idempodent)
DELETE - one remove
/batch
POST - create many
/{ids}
GET - read many
PUT - update many
DELETE - remove many
/by
/code/{code}
/uuid/{uuid}
~
게시판같은거나 만드는게 아닐서 REST패턴 적용이 힘든 경우가 많은데
표준구조 안 나오면 고민하지 말고 그냥 대충 하는게 좋다
퍼블릭으로 공개하는 API가 아닌 경우에는 이런건 별로 중요하지 않은 것 같다.
금방 수정도 가능하고
ex) 입금관련기능
- /deposit/apply POST
- /deposit/cancel POST
- /deposit/confirm POST
- /deposit/status POST
RPC처럼 사용되서 DTO로 파라미터를 전달.. 그냥 다 POST로 구현.
~~
주소나 Http method에 집착하지말자
한 서비스에서 컨벤션만 일정하게 유지되면 된다.