apigeelint
Version:
Node module and tool to lint a bundle for an Apigee API Proxy or sharedflow.
107 lines (85 loc) • 2.78 kB
text/xml
<ProxyEndpoint name="endpoint1">
<Description/>
<HTTPProxyConnection>
<BasePath>/response-shaping</BasePath>
<VirtualHost>secure</VirtualHost>
</HTTPProxyConnection>
<PreFlow name="PreFlow">
<Request>
<Step>
<!-- filter out invalid requests -->
<Name>RF-BadRequest</Name>
<Condition>(request.header.accept = null) or (request.header.accept =| "application/xml") or (request.header.accept =| "text/xml") or (request.verb != "GET")</Condition>
</Step>
</Request>
<Response/>
</PreFlow>
<PostFlow name="PostFlow">
<Request/>
<Response>
<Step><Name>AM-CleanResponseHeaders</Name></Step>
</Response>
</PostFlow>
<FaultRules>
<FaultRule name="invalid-key">
<Step>
<Name>AM-InvalidApiKey</Name>
</Step>
<Condition>fault.name = "InvalidApiKey" OR fault.name = "InvalidApiKeyForGivenResource"</Condition>
</FaultRule>
<FaultRule name="missing-key">
<Step>
<Name>AM-MissingKey</Name>
</Step>
<Condition>fault.name = "FailedToResolveAPIKey"</Condition>
</FaultRule>
<FaultRule name="key-expired">
<Step>
<Name>AM-ExpiredKey</Name>
</Step>
<Condition>fault.name = "consumer_key_expired"</Condition>
</FaultRule>
</FaultRules>
<Flows>
<!-- all of the following get IATA info -->
<Flow name='passthrough'>
<Request>
<Step><Name>VerifyAPIKey-1</Name></Step>
<Step><Name>EV-Keyword</Name></Step>
</Request>
<Response>
<!-- no filtering done here -->
</Response>
<Condition>(proxy.pathsuffix MatchesPath "/iata-t1/*") and (request.verb = "GET")</Condition>
</Flow>
<Flow name='shape response based on developer app'>
<Request>
<Step><Name>VerifyAPIKey-1</Name></Step>
<Step><Name>EV-Keyword</Name></Step>
</Request>
<Response>
<Step><Name>JS-ApplyFieldFilter-Client</Name></Step>
</Response>
<Condition>(proxy.pathsuffix MatchesPath "/iata-t2/*") and (request.verb = "GET")</Condition>
</Flow>
<Flow name='shape response based on API Product'>
<Request>
<Step><Name>VerifyAPIKey-1</Name></Step>
<Step><Name>EV-Keyword</Name></Step>
</Request>
<Response>
<Step><Name>JS-ApplyFieldFilter-Product</Name></Step>
</Response>
<Condition>(proxy.pathsuffix MatchesPath "/iata-t3/*") and (request.verb = "GET")</Condition>
</Flow>
<Flow name='unknown request'>
<Request>
<Step><Name>RF-UnknownRequest</Name></Step>
</Request>
<Response/>
</Flow>
</Flows>
<RouteRule name="default">
<TargetEndpoint>amadeus</TargetEndpoint>
</RouteRule>
</ProxyEndpoint>