일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- REST API
- 컬렉션 프레임웍
- 사이킷런 회귀
- WinError5
- 쓰레드 풀
- 자바 열거형
- 파이썬
- 사이킷런
- Selenium
- URI 원칙
- 컬렉션 인터페이스
- Java
- 스프링 부트
- openai
- 차원증가
- h2 데이타베이스
- Python
- 스프링 부트3
- 알고리즘
- 머신러닝
- 프로그래머스
- db
- streamlit
- GIT
- 완주하지못한선수
- 자바 로그 레벨
- conda remove
- oracle
- 셀레니움
- 오라클
- Today
- Total
노트 :
URI 설계 원칙 (RFC-3986) 본문
① 슬래시 구분자 (/)는 계층 관계를 나타내는 데 사용한다.
https://example.co.kr/classes/java/curriculums/web-master
② URI 마지막 문자로 (/)는 포함하지 않는다.
https://example.co.kr/classes/java/curriculums/web-master/ <- (x)
https://example.co.kr/classes/java/curriculums/web-master <- (o)
③ 하이픈(-)은 가독성을 높이는데 사용한다.
https://example.co.kr/classes/java/curriculums/web-master
④ 밑줄(_)은 사용하지 않는다.
https://example.co.kr/classes/java/curriculums/web_master <- (x)
https://example.co.kr/classes/java/curriculums/web-master <- (o)
④ URI 경로에는 소문자를 사용한다.
https://example.co.kr/classes/JAVA/curriculums/web-master <- (x)
https://example.co.kr/classes/java/curriculums/web-master <- (o)
⑤ 파일 확장자는 URI에 포함하지 않는다.
https://example.co.kr/classes/java/curriculums/web-master.jsp <- (x)
⑥ 프로그래밍 언어에 의존적인 확장자를 사용하지 않는다.
https://example.co.kr/classes/java/curriculums/web-master.do <- (x)
⑦ 구현에 의존적인 경로를 사용하지 않는다.
https://example.co.kr/servlet/classes/java/curriculums/web-master <- (x)
⑧ 세션 ID를 포함하지 않는다.
https://example.co.kr/classes/java/curriculums/web-master?session-id=abcdef <- (x)
⑨ 프로그래밍 언어의 Method명을 이용하지 않는다
https://example.co.kr/classes/java/curriculums/web-master?action=intro <- (x)
⑩ 명사에 단수형 보다는 복수형을 사용해야 한다. 컬렉션에 대한 표현은 복수를 사용한다.
https://example.co.kr/classe/java/curriculum/web-master <- (x)
https://example.co.kr/classes/java/curriculums/web-master <- (o)
⑪ 컨트롤러 이름으로는 동사나 동사구를 사용한다.
https://example.co.kr/classes/java/curriculums/web-master/alteration <- (x)
https://example.co.kr/classes/java/curriculums/web-master/alter <- (o)
⑫ 경로 부분 중 변하는 부분은 유일한 값으로 대체한다.
https://example.co.kr/classes/java/curriculums/web-master/lessons/{lesson-id}/users/{user-id}
* path variable 적용 될 시
https://example.co.kr/classes/java/curriculums/web-master/lessons/2/users/100
⑬ CRUD 기능을 나타내는 것은 URI에 사용하지 않는다.
https://example.co.kr/classes/java/curriculums/web-master/lessons/2/users/100/READ <- (x)
⑭ URI Query Parameter 디자인
。URI 쿼리 부분으로 컬렉션 결과에 대해서 필터링 할 수 있다.
https://example.co.kr/classes/java/curriculums/web-master?chapter=2
。URI 쿼리는 컬렉션의 결과를 페이지로 구분하여 나타내는데 사용한다.
https://example.co.kr/classes/java/curriculums/web-master?chapter=2&page=0&size=10&sort=asc
⑮ API에 있어서 서브 도메인은 일관성 있게 사용해야 한다. 클라이언트 개발자 포탈 서브 도메인은 일관성 있게 만든다.
https://api.example.co.kr/classes/java/curriculums/web-master?chapter=2 <- (o)
https://api-example.co.kr/classes/java/curriculums/web-master?chapter=2 <- (o)
https://developer.example.co.kr/classes/java/curriculums/web-master?chapter=2 <- (o)
https://developer-example.co.kr/classes/java/curriculums/web-master?chapter=2 <- (o)
참고: <한번에 끝내는 Java/Spring 웹 개발 초격차 패키지> 패스트 캠퍼스, 예상국 강사님
'CS' 카테고리의 다른 글
REST API 메서드의 특징 (0) | 2023.12.26 |
---|---|
REST API (0) | 2023.12.26 |
메모리 종류 (0) | 2023.05.10 |
Atmel AVR - ATmega128 (0) | 2023.05.02 |
TCP/IP 참조 모델 및 OSI 참조 모델 (0) | 2023.04.22 |