
Rest API
웹에서 데이터를 전송 및 처리하는 방법을 정의한 인터페이스
(A가 어떤 방식으로 요청하고 B가 어떤 방식으로 응답할지 정해 놓은 것)
Rest는 자원(리소스)과 행위 (HTTP 메소드)로 구성
- 자원 (리소스) : URL
- 행위 : HTTP Method
HTTP 메소드
HTTP 메소드는 CRUD로 표현이 가능하다
CRUD | HTTP 메소드 | 설명 |
Create | Post | 데이터 생성 |
Read | Get | 데이터 조회 |
Update | Put,Patch | 데이터 전체 수정 , 데이터 일부 수정 |
Delete | Delete | 데이터 삭제 |
C(create) : POST
데이터를 생성할 때 사용
- 회원가입이나 글 작성 후 게시가 여기에 해당
- 성공적으로 데이터 생성 시 서버는 201 상태 코드 반환
R(read) : GET
데이터를 조회할 때 사용
- 사용자 정보를 보거나 글 작성 목록을 볼 때 여기에 해당
- URL 뒤에 고유식별자를 붙이면 해당하는 정보만 보는 것도 가능
ex)
GET https://webtoon-crawler.nomadcoders.workers.dev/today
(출처 : 노마드코더 : https://github.com/serranoarevalo)
{"id":"774862","title":"조조코믹스","thumb":"https://image-comic.pstatic.net/webtoon/774862/thumbnail/thumbnail_IMAG21_41b9ed2a-760f-4bb3-bbfd-1778aefde525.jpg"},{"id":"823195","title":"쌉초의 난","thumb":"https://image-comic.pstatic.net/webtoon/823195/thumbnail/thumbnail_IMAG21_10484673-5368-4f70-9ef0-9950f426b5a8.jpg"},{"id":"824888","title":"이기적 연애론","thumb":"https://image-comic.pstatic.net/webtoon/824888/thumbnail/thumbnail_IMAG21_6fbbf8b5-b197-4abe-9602-61c6cdbc4dba.jpg"},{"id":"797443","title":"운명을 보는 회사원","thumb":"https://image-comic.pstatic.net/webtoon/797443/thumbnail/thumbnail_IMAG21_1e86ec68-b1b5-474f-9e8a-28a617cc5b13.jpg"},{"id":"808018","title":"흔한 빙의물인 줄 알았다","thumb":"https://image-comic.pstatic.net/webtoon/808018/thumbnail/thumbnail_IMAG21_4a4156ef-e224-4b1f-a41b-1b1de7fe3121.jpg"},{"id":"717481","title":"일렉시드","thumb":"https://image-comic.pstatic.net/webtoon/717481/thumbnail/thumbnail_IMAG21_3545800975505057126.jpg"},{"id":"775141","title":"66666년 만에 환생한 흑마법사","thumb":"https://image-
해당하는 모든 데이터를 가져옴
GET https://webtoon-crawler.nomadcoders.workers.dev/today/774862
{"title":"조조코믹스","about":"말 실수하면 모조리 처형한다!위험한 팀장 조쉬가 벌이는 기상천외한 오피스 사형법.‘근데 이 사형법…. 어쩐지 설레는데?’조쉬의 기이한 행동이 불러오는 로맨스.<조조코믹스>의 두 번째 이야기!","genre":"옴니버스, 로맨스","age":"전체연령가","thumb":"https://shared-comic.pstatic.net/thumb/webtoon/774862/thumbnail/thumbnail_IMAG06_1be5b6af-bc80-4b16-b357-a29f6000261c.jpg"}
아이디 : 774862에 해당하는 정보만 가져옴
U(Update) : PUT , PATCH
데이터를 수정할 때 사용
- PUT은 전체 수정, PATCH는 부분 수정
- put은 특정 자원 수정 시 사용되기 때문에 URL 뒤엔 고유 식별자가 붙어야 함(webtooncrawler.nomadcoders.workers.dev/today/774862 )
- 작성한 글 수정이나 사용자 정보 수정 등등이 여기에 해당
만약 PUT를 사용해서 자원의 일부분만 수정한다면 나머지는 null 값이 될 수 있으니
부분 수정 시에는 patch 사용하기!!
{
"id" : 1,
"name" : '네임',
"age" : "나이"
}
이런 데이터에
{
"name": "name"
}
put 메소드로 해당 데이터를 수정하면
{
"id": null,
"name": "name",
"age": null
}
id랑 age는 포함하지 않았기 때문에 null 값으로 설정
D(delete) : Delete
데이터를 삭제할 때 사용
URL에 고유 식별자가 없을 시 서버는 무엇을 정확히 삭제해야 하는지 알 수 없어 실패하거나 오류를 반환할 수 있어
요청 시 고유식별자를 포함시켜야 함
DELETE http://webtooncrawler.nomadcoders.workers.dev/today/774862
상태코드 (status codes)
- 2XX : 성공
- 4XX : 클라이언트 오류
- 5XX : 서버 오류
2XX
- 200 : 성공
- 201 : 자원이 생성됨 (post 메소드 성공)
- 204 : 데이터 없음
상태 코드가 200이면서 화면에 잘 보이는 모습
4XX
- 400 : 형식 오류
- 401 : 인증 오류
- 403 : 권한 없음
- 404 : 자원 없음
원래 URL은 getData인데 getData11로 하자 404 (자원 없음) 오류가 뜨는 모습
5XX
서버 측 코드가 잘못되어 상태 코드가 500이 뜨는 모습
[출처]
https://github.com/serranoarevalo
'기술' 카테고리의 다른 글
코드 스니펫 (Code Snipet) (1) | 2025.04.17 |
---|---|
코드 주석 (0) | 2025.02.28 |
[코드 리팩토링] JS → TS로 수정하기 (0) | 2025.01.31 |
[웹 성능 최적화] lighthouse를 이용한 웹 성능 측정 및 최적화하기 (0) | 2024.10.18 |
CSR 과 SSR 비교하기 (with NextJS) (2) | 2024.10.06 |