The AXL Philosophy and Function
We, as programmers, usually take a look at an API with wild goals about constructing dazzling user-facing purposes that encourage jaw-dropping amazement. That’s simply how we’re constructed. And the AXL API has the ability to allow you to do this.
One phrase… DON’T.
AXL isn’t an API for user-facing purposes. It’s an administration and configuration API. You don’t wish to push an end-user utility constructed on AXL to 1,000 customers. And if you happen to do, you’re going to have a nasty time.
Consider AXL as a programmatic option to carry out net GUI administration and configuration duties. For instance, within the net GUI, you add an finish consumer this fashion.
- Choose the Consumer Administration menu
- Choose Finish Consumer
- Click on on +Add New
- Fill out the shape
Now, programming that may appear foolish and extra work than utilizing the online GUI. However consider it this fashion. You’ve gotten a textual content file with a listing of names, electronic mail addresses, cellphone numbers, assigned firm cellphone extension and different private information of recent workers. Now you may write an utility that reads the file and creates and configures an end-user account for every of the individuals and creates and configures strains and telephones entries for them. That’s automating an administration and configuration activity in a approach that makes your life as an administrator simpler.
AXL is a SOAP-based API. There’s no REST for the depraved right here.
Probably the most usually used AXL APIs fall into the next teams:
- addSomething (e.g., add a cellphone)
- getSomething (e.g., get a cellphone’s data and settings)
- updateSomething (e.g., change a cellphone’s data and settings)
- applySomething (e.g., apply the adjustments you made for the cellphone)
- removeSomething (e.g., take away a cellphone)
- listSomething (e.g., listing all telephones)
There are just a few different AXL APIs not in these teams that you just’ll want at occasions, however these are probably the most continuously used operations.
Getting Began: Preparation
The easiest way to get acquainted with AXL is to make use of a free, open-source instrument referred to as SoapUI. SoapUI makes it straightforward to experiment with the AXL API. However first, you must obtain the information you’ll use with SoapUI.
Log into Name Supervisor as an administrator. Beneath the Utility menu, choose Plugins.
Click on the Discover button (not proven on this display shot). The primary merchandise is the Cisco AXL Toolkit. Click on on Obtain and reserve it someplace.
The saved file ought to seem like this:
Open the zip file to see its contents
Open the schema listing.
Decide the model of Name Supervisor you might be utilizing. On this pattern, we’ll decide present.
Copy the three information above to a working listing. I selected C:SOAP.
Obtain and set up the open-source SoapUI from this web page. You’re completed with preparation. Now, it’s time to create an AXL challenge to play with the API.
Set Up a SoapUI AXL Undertaking
Click on on the File menu and select New SOAP Undertaking.
Decide a reputation in your challenge. Set the Preliminary WSDL to level to the AXLAPI.wsdl file you saved to a working listing earlier. Click on OK.
Within the left column, it is best to see this (assuming you used the title New AXL Check, in any other case search for the title you selected).
Proper click on on AXLAPIBinding and choose Present Interface Viewer. It’s best to see this Dialog Field.
Click on on the Service Endpoints tab and also you’ll see the place you may enter data for AXLAPI binding.
Kind what you see within the Endpoint area, besides level to your server the place it says YOURSERVER. Assuming it’s secure in your work surroundings to do, enter your Administrator username and password within the applicable fields. You possibly can create an Administrator account in Name Supervisor particularly to be used with the AXL API, or you should utilize your main Administrator account.
You possibly can shut this dialog field now.
Now let’s play with one of many requests. Within the left column, discover listPhone and click on on its plus signal. Then double-click on Request 1. It’s best to see all of the XML for this request pop up in a brand new dialog.
The listPhone request has just a few potential hangups which can be good to discover ways to keep away from. Any listSomething request goes to return, effectively, a listing of issues. Scroll right down to the underside of the request XML and also you’ll see these choices. These provide the choice to skip plenty of outcomes, or outline the place to begin. We don’t wish to mess with these choices proper now, so choose them and delete them.
On the high, search for what I’ve chosen right here, choose it and delete it. This attribute might be helpful, and also you don’t all the time should delete it, however on this case, you’ll have to take away the ‘sequence=”?”’ for the request to work correctly.
There’s yet another factor. Do away with what you see chosen on this display shot. Choose it and delete it.
There are approach too many values to specify, so let’s chop down the request to seem like this. Be certain that to place a % signal within the <title></title> tag. It is a wild card, which implies it’s going to listing ALL the telephones. You wish to begin easy, so it is a simplified listPhone operation.
Now’s the time to attempt it out. Click on on the inexperienced “run” icon within the higher left. It’s best to see the fitting aspect of the request change to this:
That is an unlucky bug within the present model of SoapUI. It ought to present you the XML response by default, but it surely as a substitute reveals you uncooked data. Till the app is fastened, you’ll should click on on the higher left XML tab to view the response.
The response would possibly look one thing like this:
With that, you now have sufficient fundamental data to experiment with any of the AXL APIs. Hey now, you’re an all-star, get your recreation on, go play.
As soon as you might be acquainted with how the API works, attempt programming with the API:
And if you happen to actually wish to run with the large boys, right here’s a tip for operating a number of AXL request sequentially. Each time you make an AXL request, Name Supervisor launches a Tomcat session. Whenever you make many requests in a row, Name Supervisor will launch a number of Tomcat classes, which burn up CPU and RAM.
Right here’s a approach round that. On the backside of the response, open up the headers and also you’ll see a cookie named JSESSIONID and its worth.
For those who set the JSESSIONID cookie and use the identical worth in your subsequent AXL request, Name Supervisor will re-use the Tomcat session as a substitute of launching a brand new one.
What to Keep away from and Widespread Errors
Many requests have a listing of non-obligatory search parameter tags, generally <title> and <uuid>. You’ll often have to decide on one and delete the others.
As logical as it could appear, you may’t carry out a getPhone, change some values, after which copy and paste the modified XML into an updatePhone request. getPhone and updatePhone XML tags usually are not mirror pictures.
Watch out when utilizing APIs that provide you with direct entry to the Name Supervisor database, like executeSqlQuery. Sophisticated joins could also be intelligent, however they’ll additionally suck up CPU and reminiscence the dimensions of a spy balloon, and that eats into the efficiency of each different operation.
We’d love to listen to what you suppose.
Ask a query or go away a remark beneath.
And keep linked with Cisco DevNet on social!
LinkedIn | Twitter @CiscoDevNet | Fb | YouTube Channel