어떤 것을“노출”한다는 것은 무엇을 의미합니까?


18

저는 Google App Engine 애플리케이션을 개발 중이며 "노출"이라는 용어를 여러 번 접했습니다. 예를 들어 "첫 번째 앱은 HTTP 기반 API를 사용하여 객체를 노출 할 수 있습니다"및 "이 데이터 모델 클래스는 REST API ". "노출하다"는 무슨 뜻입니까? 관련된 특정 동작이 있습니까, 아니면 디자인의 추상적 인 부분입니까?

답변:


16

그것은 당신이 어떤 수단을 통해 객체에 접근 할 수있게한다는 것을 의미합니다. 귀하의 예에서, 사용자는 객체 와 상호 작용하기 위해 미리 정의 된 방법 ( API ) 을 통해 HTTP 프로토콜을 사용하여 객체 (일반적으로 CRUD로 약칭)를 생성, 읽기, 업데이트 또는 삭제할 수 있습니다 .

이 API는 일련의 규칙을 준수 할 수 있습니다. 예를 들어 RESTful API는 HTTP 동사 를 사용하여 오브젝트에 대한 일부 조치를 수행하고 자원을 식별 / 표현하는 방법 및 해당 표시를 통해 조작하는 방법을 말하는 몇 가지 원칙 을 준수합니다 .

웹 응용 프로그램과 관련하여 데이터베이스에 블로그 게시물이 저장되어 있다고 가정 해 봅시다. 애플리케이션 사용자가 해당 게시물로 작업을 수행 할 수 있기를 바랍니다. 그들은 반드시 귀하의 웹 사이트를 사용할 필요는 없지만 귀하 의 응용 프로그램에 연결될 자신의 응용 프로그램 (예 : 블로그 리더 프로그램)을 사용할 수 있습니다.

애플리케이션 소유자는 애플리케이션에 액세스 할 수있는 인터페이스 를 정의 할 수 있습니다. 예를 들어, 일부 사용자가 블로그 게시물을 읽거나 쓰는 옵션을 추가 할 수 있습니다. 인터페이스는 다음과 같이 보일 수 있습니다 (더 복잡한 API의 예는 Twitter의 API 정의 참조 ).

  • GET /posts/{number} HTTP/1.1웹 애플리케이션에서 요청을 받으면 {number}사전 정의 된 형식 의 ID 로 게시물 객체의 표현을 제공 합니다.

실제 데이터베이스 개체 나 응용 프로그램 개체를 제공하지 않습니다. 객체 의 표현 을 제공하고 있습니다

  • POST /posts HTTP/1.1a title={text1}&body={text2}가 웹 애플리케이션에 게시 된 경우 본문에 {text1}포함 할 제목 이 지정된 새 게시물 오브젝트를 {text2}작성하고 새로 작성된 게시물의 id 값을 리턴합니다.

다시, 사용자는 객체의 표현 을 조작 할 수 있습니다. 사용자는 객체가 실제로 어떻게 보이는지 알 필요가 없습니다 ( 사용자의 인터페이스에 의해 추상화 됨 ).

객체를 노출한다는 것은 객체에 액세스하고 조작 할 수있는 인터페이스를 사용자에게 제공한다는 의미입니다. 해당 인터페이스가 오브젝트의 표현 및 해당 오브젝트를 노출하는 애플리케이션의 상태와 관련하여 사전 정의 된 추가 조건을 충족 한 경우 해당 인터페이스는 REST (또는 RESTful) API라고합니다.


19

여기서 "노출"은 일반 영어로 의미하는 바를 의미합니다. 그렇지 않으면 액세스 할 수없는 곳에 액세스하십시오.

예를 들어 "첫 번째 앱은 HTTP 기반 API를 사용하여 객체를 노출 할 수 있습니다"는 다른 컴퓨터의 누군가가 올바른 웹 페이지를 요청하여 컴퓨터의 객체를 조작 할 수 있음을 의미합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.