개발자를 위한 REST

REST 서비스에 대해 작업을 시작하는 개발자는 이러한 서비스 스타일에 대한 세부사항을 알고 있어야 합니다. REST에 대한 소개는 "웹 서비스의 아키텍처 스타일"을 참조하십시오.

자원, 표현, URI 및 조치

개발자의 관점에서, REST는 다음 기본 개념과 관련되어 있습니다.
  • 특정한 시점에서 데이터베이스 행이나 직원 데이터와 같은 자원에는 표현이 있습니다. 표현은 직원 번호, 직위 및 급여를 지정하는 프로그램 값 세트가 될 수 있습니다.
  • 자원에는 또한 http://www.example.com/gateway/employee/0020과 같은 고유 이름인 URI(Universal Resource Indicator)가 있습니다. 이 경우 직원 번호는 0020입니다. 일반적으로 URI는 자원에 이름을 지정합니다. 또한 URI는 REST 서비스에 액세스하는 데 필요한 기본 세부사항을 제공합니다.
  • 조치는 해당 자원에 수행되는 작업을 표시합니다. 가능한 조치는 얼마 되지 않습니다. 자원은 작성하거나, 읽거나, 업데이트하거나 삭제할 수 있습니다.

REST 서비스의 요청자는 자원을 식별하고 조치를 지정합니다. 이 조치가 자원의 작성 또는 업데이트를 포함하는 경우 요청자는 자원의 표현을 제공합니다.

경로 변수 및 조회 문자열

HTTP에서 URI는 특정 자원을 다음 방법으로 지정할 수 있습니다.
  • URI는 서비스가 자원을 판별하기 위해 입력을 처리할 필요 없이, 직접 자원을 식별하는 값을 갖는 변수인 경로 변수를 포함할 수 있습니다. 다음 예제에서 직원 번호 0020은 경로 변수의 값입니다.
    http://www.example.com/gateway/employee/0020
    경로 변수는 대부분의 경우에 적합합니다. 사용자는 슬래시로 구분된 여러 경로 변수를 사용할 수 있습니다. 이러한 여러 값 사용은 계층 구조 관계를 의미합니다. 예를 들어, 다음 URI의 경로 변수 값은 회사의 부문(소비자)과 해당 부문 내의 부서(영업)를 식별합니다.
    http://www.example.com/gateway/employee/Consumer/Sales
    써드파티 REST 서비스에 액세스하기 위한 코드를 EGL로 작성할 때는 URI의 마지막 부분에 대한 개요인 URI 템플리트를 작성합니다. 아래 예제는 employeeNumber가 경로 변수인 예제 템플리트입니다.
    "/gateway/employee/{employeeNumber}"

    URI 템플리트의 경로 변수는 변수 이름을 중괄호로 묶어 식별합니다.

  • GET 조작과 관련하여, URI를 이름-값 쌍의 세트인 조회 문자열로 보완할 수 있습니다. 다음 예제에는 조회 문자열 앞에 물음표(?)가 있으며, 각 이름-값 쌍은 앰퍼센드(&)로 다음 쌍과 구분되어 있습니다.
    http://www.example.com/gateway/employee?division=Consumer&department=Sales
    조회 변수는 조회 문자열의 값에 대한 플레이스홀더입니다. EGL로 URI 템플리트를 작성할 때는 경로 변수에 대한 구문과 같은 구문을 사용하여 조회 변수를 지정합니다. 다음 예제에서 divisionNamedepartmentName은 조회 변수입니다.
    "/gateway/employee?division={divisionName}&department={departmentName}"

    RESTful 스타일에는 조회 문자열을 사용하기보다 경로 변수를 사용하는 것이 더 적합합니다. 서비스에서 서비스 로직에 대한 입력으로 이름-값 쌍을 사용하는 경우에는 조회 문자열을 사용하는 것이 가장 적절합니다. 이러한 상황에서는 로직이 액세스할 자원을 판별하는 데 입력을 사용할 수 있습니다.