inblog logo
|
codingb
    Spring

    RestAPI 주소 설계 규칙

    coding S's avatar
    coding S
    Mar 20, 2024
    RestAPI 주소 설계 규칙
    notion image
    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

    codingb

    RSS·Powered by Inblog