좋은 restApi 란 무엇인가?

상태
시작 전
담당자
날짜
숫자
0

좋은 REST API란 무엇인가?

1.
rest
2.
api
3.
rest api
4.
rsst와 api 연관성
5.
rest api 란

REST API란 무엇일까요?

일단 REST 와 API 를 알아본 후 REST API를 알아보도록 하겠습니다.
REST
REST는 웹에서 서버와 클라이언트가 데이터를 주고받을 때 사용하는 규칙이나 설계 스타일 입니다.
REST의 가장 중요한 특징 중 하나는 자원(Resource)의 개념입니다. 여기서 자원은 이미지, 사용자 정보, 게시글 등 우리가 접근하고자 하는 모든 것을 나타냅니다.
그리고 이런 자원을 접근하기 위해 URL을 사용합니다.
API
프로그램과 프로그램이 서로 소통할 수 있게 해주는 매개체 입니다. 번역기 역할을 한다고 생각하면 될 것 같습니다.
API는 왜 사용하는건가요?
1.
재사용성 - 한 번 만들어진 API는 여러 곳에서 재사용이 가능합니다. 동일한 기능을 여러번 만들 필요가 없으니까 개발 시간이 절약 됩니다.
2.
효율성 - 다른 프로그램이나 서비스의 기능을 쉽게 활용이 가능 합니다. 레고를 조립 할 때 필요한 기능을 가져다 쓸 수 있듯이 다른 기능을 쉽게 사용 가능 합니다.
3.
유연성 - 서로 다른 시스템 간의 통합이 쉬워집니다. 재사용성 덕분에 새로운 기능을 추가 할 때 시스템을 다시 개발할 필요가 없어집니다.

REST와 API의 연관성

API는 서로 다른 소프트웨어 시스템들이 소통할 수 있도록 도와주는 인터페이스이고
REST는 이러한 API를 설계하는 방식 입니다. REST 아키텍쳐 스타일을 따르는 API를
REST API 라고 합니다.

REST API

REST - 웹에서 데이터를 주고 받기 위한 아키텍쳐 스타일
API - 서로 다른 소프트웨어 간에 상호 작용을 해주는 인터페이스
→ 웹을 통해 데이터를 주고받는 방법을 REST API 라고 합니다.

좋은 REST API

명확하고 일관된 디자인
REST API의 URL은 쉽게 이해할 수 있어야 합니다. URL은 명확하고 일관된 구조를 가져야 합니다. 예를 도서관 관리 시스템 에서 책과 관련된 API를 작성 해보겠습니다.
책 관련 API
GET /books: 모든 책 가져오기
GET /books/{id}: 특정 책 가져오기
POST /books: 새 책 추가하기
PUT /books/{id}: 특정 책 정보 수정하기
DELETE /books/{id}: 특정 책 삭제하기
이처럼 URL 구조만 봐도 어떤 작업을 하고 있는지 직괸적으로 알 수 있어야 합니다.
HTTP 메서드의 올바른 사용
REST API 에서는 HTTP 메서드 를 올바르게 사용하는 것이 중요합니다.
GET 데이터를 가져올 때 사용 (책 가져오기)
POST 새 데이터를 생성할 때 사용 (새로운 책 추가하기)
PUT 기존 데이터를 수정할 때 사용 (특정 책 정보 수정)
DELETE 데이터를 삭제할 때 사용 (특정 책 삭제)
HTTP 메서드를 올바르게 사용하지 않으면 발생하는 문제
POST 메서드로 데이터를 수정하기
POST /users/123 { "name": "A0kziy" }
문제점
1.
의도와 다름 : POST 메서드는 새 데이터를 생성하는데 사용 위에 코드는 기존 사용자의 데이터를 수정하고 있다. PUT 또는 PATCH를 사용
2.
예측 불가 : POST 메서드는 일반적으로 새 리소를 생성함 클라이언트는 이 요청이 기존 데이터를 수정한다고 예측하지 않는다.
적절한 HTTP 상태 코드 사용
클라이언트가 요청의 결과를 쉽게 이해할 수 있게 REST API는 클라이언트에게 응답할 때 적절한 HTTP 상태 코드를 사용해야 합니다.
200 : 요청이 성공적으로 처리되었을 때
201 : 새 리소스가 성공적으로 생성되었을 때
204 : 요청이 성공적으로 처리되었으나 반환할 내용이 없을 때
400 : 잘못된 요청일 때
401 : 인증이 필요할 때
404 : 요청한 리소스를 찾을 수 없을 때
500 : 서버에서 오류가 발생했을 때
자원 기반의 구조
REST API는 자원을 중심으로 설계되어야 합니다. 각 자원은 고유한 URL로 접근할 수 있어야 합니다. users 자원, 책은 books 자원이 될 수 있습니다. 각 자원은 자체 상태를 가지고 있으며, URL을 통해 접근하고 조작할 수 있습니다.