2014-12-29 3 views
3

숙련도가 documentation (REST Service Tutorial -> Create a REST Service -> [infobox] Code-Connected vs DB-Connected services) 인 DB 연결 서비스의 기본 제공 기능은 "RAD (Rapid Application Development) 또는 프로토 타이핑 도구"입니다.(어떻게) 필터/매개 변수를 Apigility에서 DB 연결 서비스와 함께 사용할 수 있습니까?

이제 아주 작은 응용 프로그램을 개발 중이며이 프로토 타입 기능으로 충분할 것이라고 생각합니다. 그러나이 작은 응용 프로그램도 간단한 필터링/요청 매개 변수화가 필요합니다 (예 : name = 'foo'의 항목, id < x and id > y의 항목).

DB 연결 서비스가 필터링을 제공합니까? 그렇다면 어떻게 처리할까요?

답변

1

이 경우 zf-content-validation 패키지 (https://apigility.org/documentation/modules/zf-content-validation 참조)를 사용하게됩니다.

콘텐츠 유효성 검사 모듈을 사용하면 모듈 구성 섹션에 입력 필터를 정의하고 서비스 요청의 유효성을 검사하는 데 사용할 입력 필터를 지정할 수 있습니다.

예를 들어 (문서의) :

'zf-content-validation' => array(
    'Application\Controller\HelloWorld' => array(
     'input_filter' => 'Application\Controller\HelloWorld\Validator', 
     'POST' => 'Application\Controller\HelloWorld\CreationValidator', 
    ), 
), 


'input_filter_specs' => array(
    'Application\Controller\HelloWorldGet' => array(
     0 => array(
      'name' => 'name', 
      'required' => true, 
      'filters' => array(
       0 => array(
        'name' => 'Zend\Filter\StringTrim', 
        'options' => array(), 
       ), 
      ), 
      'validators' => array(), 
      'description' => 'Hello to name', 
      'allow_empty' => false, 
      'continue_if_empty' => false, 
     ), 
    ), 
), 

이 구성은하여 HelloWorld 컨트롤러로 요청이 문자열 인 "이름"매개 변수를 포함 것이라는 점을 확인하고 그것은 또한 당신을 위해 공백을 잘라 것입니다. 요청에 검색어 매개 변수 ?name=foo이 있으면 컨트롤러가 name 매개 변수에 foo을 얻습니다. 요청에 이름 매개 변수가 없으면 요청이 유효성 검사를 통과하지 못했음을 나타내는 ApiProblem 응답을 받게됩니다.