답변:
그것은 당신이 어떤 수단을 통해 객체에 접근 할 수있게한다는 것을 의미합니다. 귀하의 예에서, 사용자는 객체 와 상호 작용하기 위해 미리 정의 된 방법 ( API ) 을 통해 HTTP 프로토콜을 사용하여 객체 (일반적으로 CRUD로 약칭)를 생성, 읽기, 업데이트 또는 삭제할 수 있습니다 .
이 API는 일련의 규칙을 준수 할 수 있습니다. 예를 들어 RESTful API는 HTTP 동사 를 사용하여 오브젝트에 대한 일부 조치를 수행하고 자원을 식별 / 표현하는 방법 및 해당 표시를 통해 조작하는 방법을 말하는 몇 가지 원칙 을 준수합니다 .
웹 응용 프로그램과 관련하여 데이터베이스에 블로그 게시물이 저장되어 있다고 가정 해 봅시다. 애플리케이션 사용자가 해당 게시물로 작업을 수행 할 수 있기를 바랍니다. 그들은 반드시 귀하의 웹 사이트를 사용할 필요는 없지만 귀하 의 응용 프로그램에 연결될 자신의 응용 프로그램 (예 : 블로그 리더 프로그램)을 사용할 수 있습니다.
애플리케이션 소유자는 애플리케이션에 액세스 할 수있는 인터페이스 를 정의 할 수 있습니다. 예를 들어, 일부 사용자가 블로그 게시물을 읽거나 쓰는 옵션을 추가 할 수 있습니다. 인터페이스는 다음과 같이 보일 수 있습니다 (더 복잡한 API의 예는 Twitter의 API 정의 참조 ).
GET /posts/{number} HTTP/1.1
웹 애플리케이션에서 요청을 받으면 {number}
사전 정의 된 형식 의 ID 로 게시물 객체의 표현을 제공 합니다.실제 데이터베이스 개체 나 응용 프로그램 개체를 제공하지 않습니다. 객체 의 표현 을 제공하고 있습니다
POST /posts HTTP/1.1
a title={text1}&body={text2}
가 웹 애플리케이션에 게시 된 경우 본문에 {text1}
포함 할 제목 이 지정된 새 게시물 오브젝트를 {text2}
작성하고 새로 작성된 게시물의 id 값을 리턴합니다.다시, 사용자는 객체의 표현 을 조작 할 수 있습니다. 사용자는 객체가 실제로 어떻게 보이는지 알 필요가 없습니다 ( 사용자의 인터페이스에 의해 추상화 됨 ).
객체를 노출한다는 것은 객체에 액세스하고 조작 할 수있는 인터페이스를 사용자에게 제공한다는 의미입니다. 해당 인터페이스가 오브젝트의 표현 및 해당 오브젝트를 노출하는 애플리케이션의 상태와 관련하여 사전 정의 된 추가 조건을 충족 한 경우 해당 인터페이스는 REST (또는 RESTful) API라고합니다.