[정리] REST API 규칙

2023. 5. 23. 22:18·개발/정리
728x90
반응형

API를 만들다 보면 어떻게 명명할지가 은근히 고민이 많이 된다.

REST API규칙들을 지키다보면 고민을 덜 수 있으니 규칙을 알아봤다.

REST에 대해서는 이전에 간단하게 정리해놨다.

 

[정리] REST API

REST는 API에 대한 조건을 부과하는 소프트웨어 아키텍처 스타일이다. REST는 REpresentational state Transfer의 약자로 직역하면 "대표 상태 전송" 이다. 서버에서 클라이언트가 요청의 상태를 파악할 수

diary-blockchain.tistory.com

1. 소문자

URI를 작성할 때에는 소문자로 작성한다.

Good

http://localhost/good

Bad

http://localhost/Good

2. 언더바 대신 하이픈 사용

언더바는 잘 안보일 수 있기 때문에 하이픈을 사용한다.

Good

http://localhost/good-game

Bad

http://localhost/bad_game

3. URI의 마지막에는 / (슬래시) 를 포함하지 않는다.

웹에서는 마지막에 슬래시가 있는것과 없는것을 같다고 취급하는 경우가 많다.

Good

http://localhost/good

Bad

http://localhost/bad/

4. 계층관리는 슬래시로 구분한다.

자원 간의 계층적 관계를 나타내기 위해 슬래시로 구분해준다.

Good

http://localhost/user/1

Bad

http://localhost/user1

5. 파일 확장자는 URI에 포함하지 않는다.

URI가 아닌 헤더의 Content-Type 이나 다른 방법으로 확장자를 나타내야 한다.

Good

http://localhost/picture

Bad

http://localhost/picture.jpg

6. 자원의 명사를 사용해야 하지만 예외적으로 컨트롤 자원인 경우 동사도 허용

Good

http://localhost/user/write

Bad

http://localhost/user/writing

7. 영어는 복수형으로 작성한다.

Good

http://localhost/users

Bad

http://localhost/user

 

참고

 

7 Rules for REST API URI Design - DZone

URIs, or Uniform Resource Identifiers, should be designed to be readable and clearly communicate the API resource model. These rules will help you succeed.

dzone.com

 

728x90
반응형

'개발 > 정리' 카테고리의 다른 글

[Flutter] 안드로이드 스튜디오에서 자바버전 다르게 인식  (1) 2024.11.19
[정리] 타입에 대한 생각  (1) 2023.07.04
[정리] URI vs URL  (0) 2023.05.22
[정리] REST API  (0) 2023.05.21
[정리] Http Method 정리  (0) 2023.05.19
'개발/정리' 카테고리의 다른 글
  • [Flutter] 안드로이드 스튜디오에서 자바버전 다르게 인식
  • [정리] 타입에 대한 생각
  • [정리] URI vs URL
  • [정리] REST API
TeTedo.
TeTedo.
  • TeTedo.
    TeTedo 개발 일기
    TeTedo.
  • 전체
    오늘
    어제
    • 분류 전체보기 (319)
      • 개발 (274)
        • Article (4)
        • 정리 (21)
        • Spring Boot (17)
        • JPA (2)
        • JAVA (6)
        • Database (4)
        • 자료구조 (11)
        • 알고리즘 (32)
        • React (20)
        • Docker (10)
        • node.js (18)
        • Devops (11)
        • Linux (4)
        • TypeScript (3)
        • Go (10)
        • HyperLedger (4)
        • BlockChain (43)
        • html, css, js (48)
        • CS (3)
        • AWS (3)
      • 모아두고 나중에 쓰기 (3)
      • 팀프로젝트 (18)
        • SNS(키보드워리어) (9)
        • close_sea (9)
      • 개인프로젝트 (1)
        • Around Flavor (1)
        • CHAM (13)
        • ethFruitShop (5)
      • 독서 (0)
        • 스프링부트와 AWS로 혼자 구현하는 웹 서비스 (0)
  • 블로그 메뉴

    • 홈
    • 개발일기
    • CS
    • 실습
    • 코딩테스트
    • 웹
    • Go
    • node.js
    • 팀플
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    도커
    nodejs
    html
    go언어
    node.js
    React
    하이퍼레저
    js
    ERC721
    30일 챌린지
    mysql
    명령어
    node
    go
    블록체인
    CSS
    erc20
    30일챌린지
    컨테이너
    프로그래머스
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.1
TeTedo.
[정리] REST API 규칙
상단으로

티스토리툴바