CRUD 규칙을 정확하게 지키자! 우리는 SSR 요청을 하니까 GET, POST만 해도 됐었다. 폼태그로 하니까 굳이 AJAX를 쓸 필요가 없었던 것!! 폼 자체의 액션 속성과 메소드 속성을 통해 데이터를 전송할 수 있기 때문에, 복잡한 JavaScript 처리 없이도 간단한 CRUD작업을 처리할 수 있었다. 그러나 REST서버는 다르다. 내가 뷰를 만들게 아니니까, 모든 CRUD 작업을 명확하게 지원하는 HTTP 메소드를 적극적으로 활용할 것이다. (JS나 JAVA같은 언어를 사용하여 때릴 거다.)
프런트한테 주소를 통해서 내가 하고자 하는 말을 명확하게 알려주기 위해
RestAPI를 쓰는 것!
[ RestAPI 주소 설계 규칙 7가지 ]
1. 주소에는 소문자만 사용한다. (대문자 - 문제 발생 有)
그래서 선생님이 loginForm이라고 요청하지 않고 login-form 이라고 작성 했었음
2. 주소에는 언더바(_)를 사용하지 않고 하이픈(-)을 사용한다!
프로그램의 글자 폰트에 따라 언더바 문자는 부분적으로 가려지거나 숨겨질 수 있어서.
3. 마지막에 슬래시(/)를 포함하지 않는다.
주소 마지막에 붙이는 슬래시(/)는 의미가 없고 혼란을 야기할 수 있다. (원래 정확하게 하려면 있어야하는데 /없어도 잘 들어감! 적지마라!!) ❌http://dev-cool.tistory.com/users/ ⭕http://dev-cool.tistory.com/users
4. 행위를 포함하지 않는다 -> 행위는 메서드를 사용하여 전달한다.
우리는 post로 3가지를 다 표현하기 위해서 delete/1 이런식으로 적은 것. 이젠 구분할 필요가 없으니 이런 식으로는 이제 작성하지 마라! ❌ POSThttp://dev-cool.tistory.com/users/post/1 ⭕ PUThttp://dev-cool.tistory.com/users/1
4-1. 전달하고자 하는 명사를 사용하되, 컨트롤 자원을 의미하는 경우 예외적으로 동사를 사용
근데 진짜 써야하는 경우에는 써라. ex. id 중복체크를 할 때처럼 특수한 경우에는 이런 동사가 들어갈 수도 있다 GET localhost:8080/user/samecheck?username=ssar
5. 파일 확장자는 url에 포함시키지 않는다.
마치 자원을 요청하는 것처럼 보이는 걸 방지하기 위해서. 또 우리는 요청을 컨트롤러를 통해서 가니까 굳이 자원명을 포함 시킬 이유가 전혀 없다. ❌http://dev-cool.tistory.com/users/photo.jpg
6. url에 작성되는 영어는 복수형으로 작성한다.
우리는 원래 student/1, student/2 이렇게 적었는데... 테이블 자체가 데이터를 row로 들고 있으니까 복수가 맞긴함. 그래서 엔티티 명 뒤에 s를 붙이는게 맞다. 즉, 이제부터 /boards/save-form 이런식으로 작성하라는 말!
Share article