inblog logo
|
keepgoing
    Project

    [Project] 팀플 규칙 ( 주소명 )

    김호정's avatar
    김호정
    Oct 09, 2024
    [Project] 팀플 규칙 ( 주소명 )
    Contents
    코드컨벤션(규칙)1. 리소스 명칭 (Resource Naming)예시2 (값을 수정할때 post)예시2 (값을 참조할때 get) —- 고치자
     
     

    코드컨벤션(규칙)

    v2로 진행 (post만 사용)
     

    1. 리소스 명칭 (Resource Naming)

    • 규칙: 리소스 이름은 데이터베이스 테이블 이름을 기반으로 하며, 일반적으로 복수형을 사용합니다.
      • 사용자: /users
    • 예시:
      • 게시글: /boards
      • 댓글: /comments

    2. 리소스의 식별 (Resource Identification)

    • 규칙: 각 리소스에 대한 고유 식별자는 URL의 Path Variable로 사용합니다.
    • 예시:
      • 특정 사용자를 조회: /users/{userId}
      • 특정 게시글을 조회: /boards/{boardId}
      • 특정 댓글을 조회: /comments/{commentId}
     
     
     
     
     

    예시2 (값을 수정할때 post)

    뒤에 /기능 붙이기

    2.1.update 할때 /update

    @PostMapping("/api/board/{id}/update")
     

    2.2.delete 할때 /delete

    @PostMapping("/api/board/{id}/delete")
     

    2.3.insert 할때 /save

    @PostMapping("/api/board/save")
     
     

    예시2 (값을 참조할때 get) —- 고치자

    규칙에 따른 URL 명명 요약

    1. 폼 페이지 (form 접미사):
        • 사용자가 데이터를 입력하거나 수정할 수 있는 폼(양식)을 제공하는 페이지에 사용합니다.
        • 예시:
          • 저장 폼: GET /api/board/save-form
          • 수정 폼: GET /api/board/{id}/update-form
    1. 단순 조회 페이지:
        • 사용자가 데이터를 입력하거나 수정하는 것이 아닌, 단순히 정보를 조회하거나 화면을 렌더링하는 경우에는 form 접미사를 붙이지 않습니다.
        • 예시:
          • 게시글 목록 조회: GET /board
          • 게시글 상세 조회: GET /board/{id}

    1.form 접두사

    1.1 게시판글을 저장가능한 페이지
    @GetMapping("/api/board/save-form")
     
    1.2 글을 저장하려고 버튼을 누를때
    @PostMapping("/api/board/save")
     

    2. 단순 조회

     
     

    2.상세보기(리소스 식별: Path Variable로 표현 (/boards/{boardId}))

    @GetMapping("/board/{id}")
     
    • 저장 폼 제공: GET /api/board/save-form
      • 새 게시글을 작성하기 위한 폼을 제공하는 화면으로 이동합니다. 이 요청은 데이터베이스에 변경을 가하지 않으며, 단순히 폼을 렌더링합니다.
    • 수정 폼 제공: GET /api/board/{id}/update-form
      • 기존 게시글을 수정하기 위한 폼을 제공하는 화면으로 이동합니다. 이 요청 역시 데이터베이스에 변경을 가하지 않으며, 수정 폼을 렌더링합니다.
    • 조회 페이지 제공: GET /board/{id}
      • 특정 게시글의 상세 정보를 조회하는 페이지로 이동합니다. 이 요청은 단순 조회이며, 데이터베이스 변경이 없습니다.
     
     
     
     
     

    컨벤션 요약

    • 리소스 명칭: 복수형 사용 (/users, /movies)
    • 리소스 식별: Path Variable로 표현 (/movies/{movieId})
    • 계층적 관계: URL 경로로 표현 (/movies/{movieId}/comments)
    • 필터링 및 검색: Query String 사용 (/movies?title=제목)
    • 정렬 및 페이징: Query String 사용 (/movies?sort=-createdAt&page=2&size=20)
    • 상태 및 액션 표현: 명확한 동사 사용 (/auth/movies/{movieId}/reservations )
    • 소문자 및 하이픈: URL은 소문자로 작성하고 단어는 하이픈으로 구분 (/user-profiles)
    • 비동기통신(fetch, AJAX): /api (api/movies/now-showing ) : 지금상영중인영화
    • 인증 : /auth (/auth/movies/{movieId}/book)
    • 폼 페이지 (form 접미사): /users/save-form
    • 단순 조회 페이지: /movie
     
    Share article

    keepgoing

    RSS·Powered by Inblog