API(application programming interface)
서버가 제공하고자 하는 데이터&기능을 '제어 가능한 API'로 만들면, 접근 권한이 있는 프로그래머&프로그램이 API를 통해 데이터를 요청하여 사용할 수 있다
웹에서의 통신을 기반으로 한다
HTTP를 통신 방식으로 사용하는 API
HTTP API에 다음 4가지 제약조건이 추가된 것
자원의 식별
표현(메시지)를 통한 리소스 조작
자기서술적 메시지
애플리케이션의 상태에 대한 엔진으로서 하이퍼미디어
이 원칙을 완벽하게 지키며 개발하는 것이 RESTful API 이며, 실무에서 이 방법으로 개발하는 것은 현실적으로 어렵다고 한다.
또한 이미 많은 사람들이 해당 조건을 지키지 않아도 REST API라고 하기 때문에, HTTP API와 REST API를 거의 같은 의미로 사용하고 있다고 한다.
참고
' 리소스 자체를 식별 ' 하는 것이 가장 중요하다
ex) 회원 정보 관리 API 설계
회원 목록 조회 /read-member-list
회원 조회 /read-member-by-id
회원 등록 /create-member
회원 수정 /update-member
회원 삭제 /delete-member
여기서 '회원등록', '회원삭제'가 리소스가 아니라 '회원' 자체가 리소스이다
변경해보면
회원 목록 조회 /members
회원 조회 /members/{id}
회원 등록 /members/{id}
회원 수정 /members/{id}
회원 삭제 /members/{id}
👉 여기서 행위를 구분하기 위해 HTTP 메소드를 사용한다
회원 목록 조회 GET/members
회원 조회 GET/members/{id}
회원 등록 POST/members/{id}
회원 수정 PUT/members/{id}
회원 삭제 DELETE/members/{id}
그 외에도 다양한 작성 규칙들이 있다
참고
https://bentist.tistory.com/37
https://dev-coco.tistory.com/97
https://ko.wikipedia.org/wiki/REST
https://aws.amazon.com/ko/what-is/api/
https://maenco.tistory.com/entry/HTTP4-API-%EA%B7%B8%EB%A6%AC%EA%B3%A0-REST-API