API란 무엇인가요?
API는 정의 및 프로토콜 집합을 사용하여 두 소프트웨어 구성 요소가 서로 통신할 수 있게 하는 메커니즘입니다. 예를 들어, 기상청의 소프트웨어 시스템에는 일일 기상 데이터가 들어 있습니다. 휴대폰의 날씨 앱은 API를 통해 이 시스템과 ‘대화’하여 휴대폰에 매일 최신 날씨 정보를 표시합니다.
[aws - API란 무엇입니까?]
API(애플리케이션 프로그램 인터페이스)는 관련 없는 두 애플리케이션이 서로 통신할 수 있도록 하는 소프트웨어 중개자입니다. 한 프로그램에서 요청이나 메시지를 받은 다음 다른 프로그램으로 전달하고 API가 수행하도록 프로그래밍된 작업을 기반으로 메시지를 번역하고 프로토콜을 수행하는 브리지 역할을 합니다.
[API(애플리케이션 프로그램 인터페이스)란 무엇입니까?]
인터페이스는 접점을 말한다. UI라고 하면 user interface, 사용자가 서비스를 만나는 접점을 의미한다.
api라고 하면 application programming interface, 애플리케이션을 서로 연결하여 서로 통신 할 수 있게 해주는 접점을 말한다. api를 통하면 내부 원리가 어떤지 몰라도 서로 다른 애플리케이션들이 api를 통해 통신할 수 있다.
또 다른 말로 표현하면
이라고도 할 수 있다. 추상적인 단어다 보니 두루뭉실한 것 같아 내가 보고 이해됐던 표현을 모두 가져왔다..ㅎ
서버와 데이터베이스에 대한 출입구 역할을 하며, 허용된 사람들에게만 접근성을 부여한다.
기기와 운영체제에 상관없이 누구나 동일한 액세스를 얻을 수 있게하고 재사용을 쉽게 해준다.
기업 등 단체 내부에서만 사용하는 노출되지 않는 api
모두에게 공개되는 api, public 중에서도 접속하는 대상에 대한 제약이 없는 경우를 open api라 한다.
권한을 가진 특정인(파트너)들만 사용할 수 있는 api
REST(Representational State Transfer)란?
자원의 표현에 의한 상태 전달
어떤 URI에 자원(Resource)을 명시
함과 함께 HTTP Method를 활용
해서 해당 자원에 대한 CRUD를 적용
하는 것을 의미한다.HTTP Method: POST, GET, PUT, DELETE
Ex) DB의 학생 정보가 자원일 때, 'students'를 자원의 표현으로 정함
위의 REST 방식 기반으로 API를 구현한 것을 REST API라고 부른다. 그리고 REST 아키텍쳐를 구현하는 웹 서비스를 RESTful하다고 표현한다.
URI는 자원의 정보를 표시해야 한다.
자원에 대한 행위는 HTTP Method로 표현한다.
URI에 HTTP Method가 들어가면 안된다.
GET /members/delete/1 -> DELETE /members/1
URI에 행위에 대한 동사 표현이 들어가면 안된다.(CRUD 기능을 나타내는 것은 URI에 사용하지 않는다.)
GET /members/show/1 -> GET /members/1
GET /members/insert/2 -> POST/members/2
경로 부분 중 변하는 부분은 유일한 값으로 대체한다(:id는 하나의 특정 자원을 나타내는 고유값이다.)
Ex) student를 생성하는 route:POST/students
Ex) id=12인 student를 삭제하는 route:DELETE/students/12
슬래시 구분자(/)는 계층 관계를 나타내는데 사용한다.
http://restapi.example.com/houses/apartments
URI 마지막 문자로 슬래시를 포함하지 않는다.
http://restapi.example.com/houses/apartments/ (x)
URI가 다르면 자원이 다르다는 뜻이고, 자원이 다르면 URI도 달라져야 한다.
불가피하게 긴 URI를 사용하게 되면 하이픈(-)을 사용한다.
언더바(_)는 사용하지 않는다.(밑줄 때문에 가려질 수도 있음)
파일 확장자는 URI에 포함하지 않는다.
소문자를 사용한다.