The AssertCondition policy evaluates a conditional expression at runtime and stores the result as a Boolean value (true or false). It is useful when you need to evaluate business conditions and use the result in subsequent API proxy logic.
1. AssertCondition Policy XML Example
Suppose you are developing a Payment API and want to check whether the payment amount is greater than zero and less than ₹100,000.
<AssertCondition name="Assert-Payment-Amount"
enabled="true"
continueOnError="false">
<DisplayName>Validate Payment Amount</DisplayName>
<Condition>
(payment.amount > 0) and
(payment.amount < 100000)
</Condition>
</AssertCondition>
How it works:
- If
payment.amountis5000, the condition evaluates totrue. - If
payment.amountis150000, the condition evaluates tofalse.
The result is stored in the flow variable:
assertcondition.Assert-Payment-Amount.truthValue
Important: A condition evaluating to false does not automatically reject the API request. You must use the result in subsequent flow logic if you want to take an action based on it.
2. How Does AssertCondition Work?
- Apigee executes the policy in the request or response flow.
- The policy evaluates the configured expression.
- The result is stored in the policy's
truthValueflow variable. - Subsequent policies or flow logic can use that result to decide what happens next.
3. When Should You Use AssertCondition?
Common use cases include:
- Evaluating payment amounts against business rules.
- Checking whether a response or request meets a specific condition.
- Evaluating multiple conditions using logical operators such as
ANDandOR. - Using the evaluation result in subsequent proxy logic.
4. AssertCondition vs. Conditional Flow
| Feature | AssertCondition | Conditional Flow |
|---|---|---|
| Purpose | Evaluates an expression and stores its Boolean result | Controls whether a named flow or policy step executes |
| Result |
true or false in a flow variable |
Determines flow execution |
| Typical use | Evaluate a condition for later logic | Execute logic only when a condition matches |
5. Frequently Asked Interview Questions
Q1. Does AssertCondition automatically throw a fault when the condition is false?
No. A false result is stored in the truthValue flow variable. It does not automatically reject the request.
Q2. Where can you use AssertCondition?
It can be executed in request or response flows.
Q3. Which variable stores the result?
assertcondition.PolicyName.truthValue, where PolicyName is the policy's configured name.
Q4. What happens if the condition cannot be evaluated?
Apigee can raise a policy error, such as steps.assertcondition.ConditionEvaluationFailed. The behavior depends on the policy configuration and fault handling.
Q5. Is AssertCondition available in Apigee X?
Yes. It is supported in Apigee and Apigee hybrid. It is not a standard Apigee Edge policy, so verify platform compatibility when working with Edge proxies.
Conclusion
The AssertCondition policy evaluates expressions and stores their Boolean results for use in subsequent API proxy logic.
Interview tip: Remember that evaluating a condition is different from enforcing it. AssertCondition returns a Boolean result; use conditional flow logic or RaiseFault when you need to control execution or reject a request.
Official documentation: AssertCondition policy — Google Cloud Apigee
Top comments (0)