250x250
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- django westagram
- async/await
- OSI7계층
- wecode
- westagram
- 장고초기세팅
- 자바스크립트
- 트랜잭션
- pm2
- 실행 컨텍스트
- 호이스팅
- JWT
- nodeJS
- crud2
- 스코프
- typescript
- Django
- javascript
- Jest
- node
- 노드
- 프로미스
- rebase
- status code
- docker
- TypeError: this.boardRepository.createBoard is not a function
- on_delete
- manytomanyfield
- CORS
- bcrypt
Archives
- Today
- Total
될때까지
((RESTful API)) REST, path parameter and query parameter, status code 본문
728x90
🍋 REST
Representational State Transfer의 약자로 현재 상태를 나타내면서 주고 받는다는 뜻이다.
🍊RESTful API
이러한 REST한 특징을 지키는 API를 말한다.
- Graphql은 엔드포인트가 하나다. 그 하나로 들어오면 모든 메소드 요청을 다 처리한다.(페이스북 현메타에서 만들었음)
- REST API는 웹상에서 사용되는 여러 자원들을 HTTP URI로 표현하고 그 자원에 대한 행위를 HTTP Method로 정의하는 방식이다.
- API 그 자체만으로도 API의 목적이 쉽게 파악된다.
- 하지만 표준 규약이 없기 때문에 안티 패턴(실제 많이 사용되는 패턴이지만 비효율적이거나 비생산적인 패턴)으로 작성되는 경우가 많다.
URI(Uniform Resource Identifier)
- 해당 사이트의 특정 자원의 위치를 나타내는 유일한 주소
- ex) https://finance.naver.com/news
HTTP Method
- HTTP request가 의도하는 action을 정의한 것
- GET, POST, PUT, PATCH, DELETE 등
Payload
- HTTP request에서 server로 보내는 데이터( POST로 치면 body)
RESTful API 설계 규칙
1. URI 정보를 명확하게 표현해야한다.
- resource는 명사를 사용한다.(단수보다는 복수를 사용한다)
- ex) GET/users/1
2. resource에 대한 행위를 HTTP Method(GET, POST, PUT, DELETE)로 표현한다.
- URI에 HTTP Method가 포함되면 안된다.
- ex) GET delete/users/1 -> DELETE users/1
- URI에 동사가 포함되서는 안된다.
- ex) GET/users/show/1 -> GET/users/1
3. resource 사이에 연관 관계가 있는 경우 아래와 같이 표현한다.
- ex) GET /users/{user_id}/profile
4. 파일의 경우 payload의 포맷을 나타내기 위한 파일 확장자를 URI에 포함시키지 않는다.
- ex) GET users/1/profile-photo.jpg(x) 도메인으로 인식할 수도 있다. .com처럼
- ex) GET users/1/profile-photo (이때 payload의 포맷은 headers에 accept를 사용한다.)
5. URI는 / 구분자를 사용해서 자원의 계층 관계를 나타내는 데 사용한다.
6. URI 마지막 문자로 / 를 포함하지 않는다.
- ex) GET users/portfolios/ (x)
7. URI가 길어지는 경우 -를 사용하여 가독성을 높인다.
- 언더바를 사용하면 하이퍼링크 밑줄이 쳐지기 때문에 잘 안보인다.
8. URI 경로에는 대문자 사용을 피하도록 규정하고 있다.
Path parameter
- GET http://10.58.4.1:8000/products
- POST http://127.0.0.1:8000/products
- PUT => 전체 데이터 수정이기 때문에 모든 데이터를 보내줘야 한다.
- PATCH => 일부를 수정하기 때문에 수정할 데이터만 보내줘도 된다.
Query parameter
Status Code
728x90
'학습 > 개념정리' 카테고리의 다른 글
((Database)) SQL, NoSQL, RDB, RDBMS 개념정리 (0) | 2022.09.04 |
---|---|
((HTTP Request & Response)) HTTP Request & Response Message 구조 (1) | 2022.09.02 |
((Software Testing)) E2E, Integration, Unit test (0) | 2022.08.06 |
((MySQL)) 자주 사용하는 명령어 정리 (0) | 2022.07.31 |
에러메세지 정리 (0) | 2022.07.13 |