Send Docs Feedback

Note: Most user interface tasks can be performed in Edge Classic or the New Edge experience. For an overview, getting started topics, and release notes specific to the New Edge experience, see the docs.

Flow Callout policy

What

Use the Flow Callout policy to call out to a shared flow from either an API proxy or another shared flow.

In a shared flow, you create a sequence of steps that you can reuse at run time from multiple places. These steps are implemented as policies, as with an API proxy. The Flow Callout policy gives you a way to call to the shared flow from API proxies and other shared flows.

  • For example, imagine that you've implemented a shared flow with security features such as API key verification and OAuth token validation. Using the Flow Callout policies, you can route requests through that flow from multiple API proxies. In this way, you can enforce standard security in one place, then use it from multiple others.
  • You can call one shared flow from another by implementing a Flow Callout policy in a shared flow. For example, the security shared flow could use a Flow Callout policy to call to another shared flow that performs a transformation on the incoming request message.
For more on shared flows, see Reusable shared flows. You can also call a shared flow from outside API proxy code to do request pre-processing or response post-processing. For more, see Attaching a shared flow using a flow hook.

Where

This policy can be attached in the following locations.

ProxyEndpoint TargetEndpoint
    PreFlow Flow PostFlow PreFlow Flow PostFlow    
Request    
    Response
    PostFlow Flow PreFlow PostFlow Flow PreFlow    

Samples

This example creates a callout to a local API proxy (that is, one in the same organization and environment) called data-manager, specifying its proxy endpoint whose name is default.

<LocalTargetConnection>
    <APIProxy>data-manager</APIProxy>
    <ProxyEndpoint>default</ProxyEndpoint>
</LocalTargetConnection>

About the Flow Callout policy

There are many scenarios where you can use a Service Callout policy in your API proxy. For example, you can configure an API proxy to make calls to an external service to deliver geolocation data, customer reviews, items from a partner’s retail catalog, and so on.

Element reference

Following are elements and attributes you can configure on this policy:

<FlowCallout async="false" continueOnError="false" enabled="true" name="Flow-Callout-1">
    <DisplayName>Custom label used in UI</DisplayName>
    <SharedFlowBundle>thereferencedsharedflowbundle</SharedFlowBundle>
</FlowCallout>

<FlowCallout> attributes

<ServiceCallout async="false" continueOnError="false" enabled="true" name="Service-Callout-1">

The following attributes are common to all policy parent elements.

Attribute Description Default Presence
name

The internal name of the policy. Characters you can use in the name are restricted to: A-Z0-9._\-$ %. However, the Edge management UI enforces additional restrictions, such as automatically removing characters that are not alphanumeric.

Optionally, use the <DisplayName> element to label the policy in the management UI proxy editor with a different, natural-language name.

N/A Required
continueOnError

Set to false to return an error when a policy fails. This is expected behavior for most policies.

Set to true to have flow execution continue even after a policy fails.

false Optional
enabled

Set to true to enforce the policy.

Set to false to "turn off" the policy. The policy will not be enforced even if it remains attached to a flow.

true Optional
async

This attribute is deprecated.

false Deprecated

<DisplayName> element

Use in addition to the name attribute to label the policy in the management UI proxy editor with a different, natural-language name.

<DisplayName>Policy Display Name</DisplayName>
Default:

N/A

If you omit this element, the value of the policy's name attribute is used.

Presence: Optional
Type: String

 

<SharedFlowBundle> element

Specifies the name of the shared flow to call. This element's value should be the same as the value of the target SharedFlowBundle element's name attribute.

<SharedFlowBundle/>

In the simplest example, you give the name of the shared flow being called as a value for this element. That is, this element's value must be the same as the shared flow's name attribute value.

<SharedFlowBundle>Shared-Flow-Name</SharedFlowBundle>
 
Default N/A
Presence

Required.

Type N/A

Attributes

None.

Schemas

See our Github repository samples for the most recent schemas.

Flow variables

Flow variables enable dynamic behavior of policies and flows at runtime, based on HTTP headers, message content, or flow context. For more information about Flow variables, see Variables reference.

Variable Description

apigee.edge.sharedflow.name

Scope: During the shared flow execution
Type: String
Permission: Read

The value of the shared flow's name attribute.

apigee.edge.flowhook.name

Scope: During execution of the shared flow attached to the flow hook.
Type: String
Permission: Read

The name of the flow hook.

Error codes

None.

Related topics

For working samples of API proxies, see the Samples reference.

Help or comments?