URI


## Uniform Resource Identifier
`scheme:[//[user[:password]@]host[:port]][/path][?query][#fragment]`





[Endpoint](https://texonom.com/endpoint-e7f4efb22a7a44a59070d42cbf690574)


![](https://www.notion.so/image/https%3A%2F%2Fs3-us-west-2.amazonaws.com%2Fsecure.notion-static.com%2Ff5ffd496-f3a0-46cb-ba1a-01c2316b642a%2FUntitled.png?table=block&id=e4c1b9a7-23ba-4563-9a9a-68a10eba47e9&cache=v2)
- 소문자를 되도록이면 사용하자
> - 예를 들어 test.com의 자원(Resource) Test와 test가 있지만 대소문자에 따라 구분하기 때문에 다른 자원(Resource)으로 인식하게 된다.
> - RFC 3986(URI 문법 형식)은 URI 스키마와 호스트를 제외하고는 대소문자를 구별하도록 규정하고 있다.
- 하이픈(-)은 URI 가독성을 높이는데 사용하자

### **확장자를 사용하지 말자**
- REST API에서는 확장자를 사용하지 않으면서 자원(Resource)을 다루는 데 더 유연해 진다.
- 확장자 대신에 Accept Header를 사용하여 문제를 해결한다.


### **3. 자원을 표현하는 Collection과 Document**
- 도큐먼트(Document)는 단순한 문서와 같은 존재
- 컬렉션(Collection) 문서들의 집합, 객체1들의 집합같은 존재
`http://test.com/citys/seoul/gangnam`
- 위에 예제 중 citys가 컬렉션(Collection)에 해당되며 복수로 표현을 하고 있는 점이 중요하다.


> [URI랑 URL 차이점이 뭔데? | 찰스의 안드로이드](https://www.charlezz.com/?p=44767)

> [rfc3986](https://datatracker.ietf.org/doc/html/rfc3986)

> [rfc8820](https://datatracker.ietf.org/doc/html/rfc8820)




