Is there a simple way to get a diff of distinct revisions of an API Proxy?

I know Apigee Edge has an Administrative API, by which people can import API Proxy revisions, and read (Download) same.

I suppose it would be nearly trivial to build a diff tool. Has anyone done this? If so, can you share?

If not, I may try writing one in nodejs.

Solved Solved
1 1 1,120
1 ACCEPTED SOLUTION

OK, seeing no answers here from the community, I produced a quick-and-dirty tool for the job.

It is here: https://github.com/DinoChiesa/EdgeTools/tree/master/diffApiProxyRevisions

This is a bash script. It accepts as input:

  • an Edge organization name
  • an apiproxy name
  • two revisions
  • administrator credentials

It then downloads the two API proxy revisions and runs the command-line diff tool on the exploded proxies.

The output looks like this:

diff -r bluegreen-r9/apiproxy/bluegreen.xml bluegreen-r11/apiproxy/bluegreen.xml
2c2
< <APIProxy revision="9" name="bluegreen">
---
> <APIProxy revision="11" name="bluegreen">
4c4
<     <CreatedAt>1465414312417</CreatedAt>
---
>     <CreatedAt>1465423969600</CreatedAt>
8c8
<     <LastModifiedAt>1465414312417</LastModifiedAt>
---
>     <LastModifiedAt>1465423969600</LastModifiedAt>
diff -r bluegreen-r9/apiproxy/policies/CacheInsert-TargetWeights.xml bluegreen-r11/apiproxy/policies/CacheInsert-TargetWeights.xml
10c10
<     <TimeoutInSec>30</TimeoutInSec>
---
>     <TimeoutInSec>10</TimeoutInSec>

View solution in original post

1 REPLY 1

OK, seeing no answers here from the community, I produced a quick-and-dirty tool for the job.

It is here: https://github.com/DinoChiesa/EdgeTools/tree/master/diffApiProxyRevisions

This is a bash script. It accepts as input:

  • an Edge organization name
  • an apiproxy name
  • two revisions
  • administrator credentials

It then downloads the two API proxy revisions and runs the command-line diff tool on the exploded proxies.

The output looks like this:

diff -r bluegreen-r9/apiproxy/bluegreen.xml bluegreen-r11/apiproxy/bluegreen.xml
2c2
< <APIProxy revision="9" name="bluegreen">
---
> <APIProxy revision="11" name="bluegreen">
4c4
<     <CreatedAt>1465414312417</CreatedAt>
---
>     <CreatedAt>1465423969600</CreatedAt>
8c8
<     <LastModifiedAt>1465414312417</LastModifiedAt>
---
>     <LastModifiedAt>1465423969600</LastModifiedAt>
diff -r bluegreen-r9/apiproxy/policies/CacheInsert-TargetWeights.xml bluegreen-r11/apiproxy/policies/CacheInsert-TargetWeights.xml
10c10
<     <TimeoutInSec>30</TimeoutInSec>
---
>     <TimeoutInSec>10</TimeoutInSec>