Restful API
API (Application Programming Interface)
: 운영 프로그램에서 사용할 수 있도록 운영체제나 프로그래밍 언어에서 제공하는 기능을 제어할 수 있게 해주는 인터페이스
즉, 애플리케이션에서 데이터를 읽거나 쓰기 위해 사용하는 인터페이스
웹 API 예시
Rest(REpresentataional State Transfer)
: 문서, 그림, 데이터 등의 자원을 이름으로 구분해서 해당 자원에 대한 상태, 정보를 주고 받는 것
Rest API
: URI (Uniform Resource Identifer : 인터넷 식별자) + HTTP => JSON형식( 브라우저 간 호한성 좋음)
: HTTP Method를 활용하여 해당 자원에 대한 crud를 적용
HTTP Method
: 클라이언트와 서버 사이에 이루어지는 요청과 응답 데이터를 전송하는 방식
CRUD
Create: 생성 (POST)
Read: 읽기 (GET)
Update:갱신 (PUT OR PATCH)
Delete: 삭제 (DELETE)
종류
get: 리소스 조회
post: 요청 데이터 처리, 주로 등록에 사용
put: 리소를 전체 수정, 해당 리소스가 없으면 생성
delete: 리소스 삭제
patch: 리소스 일부 수정
Restful API
: REST의 원리를 따르는 시스템을 의미
RESTful API를 위한 6가지 원칙
1) Client-Server
: 클라이언트와 서버 애플리케이션은 서로 간에 완전히 독립적이어야 합니다.
2) Cacheable
: 클라이언트는 서버로부터 받은 응답을 캐시에 저장하여, 이후에 동일한 요청이 있을 때 서버에 다시 요청하지 않고 캐시된 응답을 사용할 수 있습니다.
3) Stateless
: 서버가 클라이언트의 상태를 유지하지 않는 것을 의미합니다. 각 클라이언트의 요청은 서버에 의해 독립적으로 처리되며, 서버는 이전 요청 또는 상태 정보를 저장하지 않습니다.
4) Uniform Interface
: REST에서 말하는 균일한 인터페이스를 얻으려면, 구성 요소의 동작을 안내하는 4가지의 제약을 따려야 한다.
1. 리소스 식별 : 각 리소스는 고유한 식별자(URI)를 가지며, 이를 통해 리소스를 식별할 수 있어야 한다
2. 표현을 통한 자원조작 : 특정 리소스를 나타내는 URI을 바꾸지 않고도, 표현을 활용해서 리소스를 조작할 수 있어야 한다
3. 자기 서술적인 메세지 : 메시지는 자체적으로 명확하고 완전한 정보를 제공해야 합니다.
4. HATEOAS : 서버는 리소스와 관련된 하이퍼미디어 링크를 클라이언트에게 제공해야 합니다.
5) Layered System
: 시스템을 여러 개의 계층으로 구성하는 방식을 말합니다.
6) Code-On-Demand
: 서버에서 클라이언트로 실행 가능한 코드를 동적으로 전송하여 클라이언트 측에서 실행되도록 하는 것을 의미합니다.
URI 네이밍 규칙
1) 명사를 사용한다
: /members : 멤버의 정보
2) 자원 간 계층 관계를 표현하기 위해 / 사용
: /members/age
3) 하이픈(-) 기호를 사용하여 URI의 가독성을 높인다.
:/my-page
4) 가급적 밑줄 사용하지 않는다.
: 일부 브라우저나 화면에서 글꼴에 따라 _ 문자가 가려지거나 숨겨질 수 있다.
5) URI에 파일 확장자를 표시하지 않는다.
6) URI에 CRUD함수의 이름을 사용하지 않는다.
7) 자원의 필터링을 위해 새로운 API를 만들지 않는다.
8) 필터링을 위해 새로운 API를 만들지 않고 Query string사용
: 주소?속성=값&속성=값&...
9) B반 학생들 이름, 오름차순으로 보는법
: /students?type=b&sort=name,asc
출처
flaticon 사진사용