Question

I have two Resources set up for my API proxy and have a route rule named talkback that should take POST requests to my /matches API resource and route them to my talkback subdomain rather than www.

I have this working correctly for GET requests that redirect to my open subdomain. However the talkback rule correctly evaluates but then returns a 503 without reaching my target endpoint:

error       The Service is temporarily unavailable
error.cause     Connection refused
error.class     com.apigee.messaging.adaptors.http.HttpAdaptorException
state       TARGET_REQ_FLOW
type        ErrorPoint

Are you able to advise on what may be the issue?

This is the route rule I'm using:

<RouteRule name="talkback">
    <Condition>(proxy.pathsuffix MatchesPath &quot;/matches/**&quot;) and (request.verb equals "POST")</Condition>
    <TargetEndpoint>talkback</TargetEndpoint>
</RouteRule>

This is the talkback target endpoint:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<TargetEndpoint name="talkback">
    <Description/>
    <FaultRules/>
    <Flows/>
    <HTTPTargetConnection>
        <Properties/>
        <URL>http://talkback.test.xxxx.co.uk/gapi</URL>
    </HTTPTargetConnection>
    <PreFlow name="PreFlow">
        <Request/>
        <Response/>
    </PreFlow>
    <PostFlow name="PostFlow">
        <Request/>
        <Response/>
    </PostFlow>
</TargetEndpoint>
Was it helpful?

Solution

This pretty much looks like an issue where Apigee is not able to connect to your target backend - http://talkback.test.xxxx.co.uk. Apigee throws a 503 back to the client when its unable to connect to the backend. Is the backend publicly accessible?

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top