10.7. 검증기


유효성 검사기에서는 예상되는 메시지 유형을 선언하는 경로 정의에서 선언된 Input Type 및/또는 출력 유형에 따라 메시지의 선언적 유효성 검사를 수행합니다.

참고

검증은 형식 선언의 validate 속성이 true인 경우에만 수행됩니다.

Input Type 및/또는 Output Type 선언에서 validate 속성이 true이면 내부 프로세서에서 해당 Validator를 찾습니다.

10.7.1. 데이터 유형 형식

데이터 유형의 형식은 scheme: name 입니다. 여기서 schemejava,xml 또는 json 과 같은 데이터 모델의 유형입니다.

10.7.2. 지원되는 유효성 검사기

검증기설명

서술자 유효성 검사기

Expression 또는 Predicate를 사용하여 검증

엔드포인트 유효성 검사기

유효성 검사 구성 요소 또는 Cryostat 유효성 검사 구성 요소와 같은 유효성 검사 구성 요소와 함께 사용할 끝점으로 전달하여 검증합니다.

사용자 정의 유효성 검사기

사용자 정의 검증기 클래스를 사용하여 검증합니다. 검증자는 org.apache.camel.spi.Validator의 하위 클래스여야 합니다.

10.7.3. 공통 옵션

모든 검증기에는 유효성을 검사할 Data 유형을 지정하는 type 옵션이 포함되어야 합니다.

10.7.4. 서술자 유효성 검사 옵션

이름설명

expression

유효성 검사에 사용할 표현식 또는 서술자입니다.

검증 서술자를 지정하는 예제:

Java DSL:

validator()
    .type("csv:CSVOrder")
    .withExpression(bodyAs(String.class).contains("{name:XOrder}"));

XML DSL:

<predicateValidator Type="csv:CSVOrder">
    <simple>${body} contains 'name:XOrder'</simple>
</predicateValidator>

10.7.5. 엔드포인트 유효성 검사 옵션

이름설명

ref

엔드 포인트 ID에 대한 참조입니다.

URI

엔드포인트 URI.

Java DSL에서 끝점 URI를 지정하는 예제:

validator()
    .type("xml")
    .withUri("validator:xsd/schema.xsd");

XML DSL에서 끝점 ref를 지정하는 예제:

<validators>
<endpointValidator uri="validator:xsd/schema.xsd" type="xml"/>
</validators>
참고

Endpoint Validator는 메시지를 지정된 엔드포인트로 전달합니다. 위의 예에서 camel은 유효성 검사 구성 요소인 끝점에 메시지를 전달합니다. Cryostat 유효성 검사 구성 요소와 같은 다른 검증 구성 요소를 사용할 수도 있습니다.

10.7.6. 사용자 정의 검증 옵션

참고

검증자는 org.apache.camel.spi.Validator의 하위 클래스여야 합니다.

이름설명

ref

사용자 정의 Validator pin ID에 대한 참조입니다.

className

사용자 정의 Validator 클래스의 정규화된 클래스 이름입니다.

사용자 정의 Validator 클래스를 지정하는 예입니다.

Java DSL:

validator()
    .type("json")
    .withJava(com.example.MyCustomValidator.class);

XML DSL:

<validators>
<customValidator className="com.example.MyCustomValidator" type="json"/>
</validators>

10.7.7. 검증기 예

이 예제는 두 부분으로, 첫 번째 부분은 메시지의 유효성을 검사하는 Endpoint Validator를 선언합니다. 두 번째 부분은 검증기가 경로에 적용되는 방법을 보여줍니다.

10.7.7.1. 부분 I

유효성 검사기 구성 요소를 사용하여 xml:ABCOrder 에서 유효성을 검사하는 Endpoint Validator를 선언합니다.

Java DSL:

validator()
    .type("xml:ABCOrder")
    .withUri("validator:xsd/schema.xsd");

XML DSL:

<camelContext id="camel" xmlns="http://camel.apache.org/schema/spring">
    <validators>
        <endpointValidator uri="validator:xsd/schema.xsd" type="xml:ABCOrder"/>
    </validators>
</camelContext>

10.7.7.2. Part II

위의 검증자는 direct:abc 엔드포인트가 메시지를 수신할 때 다음 경로 정의에 적용됩니다.

참고

inputTypeWithValidate 는 Java DSL에서 inputType 대신 사용되며 inputType 선언의 validate 속성은 XML DSL에서 true 로 설정됩니다.

Java DSL:

from("direct:abc")
    .inputTypeWithValidate("xml:ABCOrder")
    .log("${body}");

XML DSL:

<camelContext id="camel" xmlns="http://camel.apache.org/schema/spring">
    <route>
        <from uri="direct:abc"/>
        <inputType urn="xml:ABCOrder" validate="true"/>
        <log message="${body}"/>
    </route>
</camelContext>
Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

© 2024 Red Hat, Inc.