The AXL Philosophy and Objective
We, as programmers, typically have a look at an API with wild goals about constructing dazzling user-facing functions 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 just isn’t an API for user-facing functions. It’s an administration and configuration API. You don’t wish to push an end-user software constructed on AXL to 1,000 customers. And if you happen to do, you’re going to have a foul time.
Consider AXL as a programmatic solution to carry out net GUI administration and configuration duties. For instance, within the net GUI, you add an finish person this fashion.
- Choose the Person Administration menu
- Choose Finish Person
- 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 could have a textual content file with a listing of names, electronic mail addresses, telephone numbers, assigned firm telephone extension and different private knowledge of latest workers. Now you’ll be able to write an software 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 process in a method that makes your life as an administrator simpler.
AXL is a SOAP-based API. There’s no REST for the depraved right here.
Essentially the most typically used AXL APIs fall into the next teams:
- addSomething (e.g., add a telephone)
- getSomething (e.g., get a telephone’s information and settings)
- updateSomething (e.g., change a telephone’s information and settings)
- applySomething (e.g., apply the modifications you made for the telephone)
- removeSomething (e.g., take away a telephone)
- listSomething (e.g., checklist all telephones)
There are a number of different AXL APIs not in these teams that you simply’ll want at occasions, however these are probably the most regularly used operations.
Getting Began: Preparation
One of the simplest ways to get aware of AXL is to make use of a free, open-source software referred to as SoapUI. SoapUI makes it straightforward to experiment with the AXL API. However first, it is advisable to obtain the recordsdata 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 screen shot). The primary merchandise is the Cisco AXL Toolkit. Click on on Obtain and put it aside someplace.
The saved file ought to appear like this:
Open the zip file to see its contents
Open the schema listing.
Decide the model of Name Supervisor you’re utilizing. On this pattern, we’ll decide present.
Copy the three recordsdata above to a working listing. I selected C:SOAP.
Obtain and set up the open-source SoapUI from this web page. You’re accomplished with preparation. Now, it’s time to create an AXL mission to play with the API.
Set Up a SoapUI AXL Challenge
Click on on the File menu and select New SOAP Challenge.
Decide a reputation in your mission. 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, you must see this (assuming you used the identify New AXL Check, in any other case search for the identify you selected).
Proper click on on AXLAPIBinding and choose Present Interface Viewer. You must see this Dialog Field.
Click on on the Service Endpoints tab and also you’ll see the place you’ll be able to enter data for AXLAPI binding.
Kind what you see within the Endpoint subject, besides level to your server the place it says YOURSERVER. Assuming it’s protected in your work setting to do, enter your Administrator username and password within the acceptable fields. You may create an Administrator account in Name Supervisor particularly to be used with the AXL API, or you should utilize your main Administrator account.
You may 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. You must see all of the XML for this request pop up in a brand new dialog.
The listPhone request has a number of potential hangups which can be good to learn to keep away from. Any listSomething request goes to return, effectively, a listing of issues. Scroll all the way down to the underside of the request XML and also you’ll see these choices. These provide the choice to skip quite a lot 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 prime, search for what I’ve chosen right here, choose it and delete it. This attribute might be helpful, and also you don’t at all times should delete it, however on this case, you’ll have to take away the ‘sequence=”?”’ for the request to work correctly.
There’s yet one more factor. Do away with what you see chosen on this display screen shot. Choose it and delete it.
There are method too many values to specify, so let’s chop down the request to appear like this. Be sure that to place a p.c signal within the <identify></identify> tag. It is a wild card, which suggests it should checklist ALL the telephones. You wish to begin easy, so this can be a simplified listPhone operation.
Now’s the time to strive it out. Click on on the inexperienced “run” icon within the higher left. You must see the precise facet 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, however it as an alternative exhibits 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 may look one thing like this:
With that, you now have sufficient primary information to experiment with any of the AXL APIs. Hey now, you’re an all-star, get your sport on, go play.
As soon as you’re aware of how the API works, strive 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 dissipate CPU and RAM.
Right here’s a method 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 an alternative of launching a brand new one.
What to Keep away from and Frequent Errors
Many requests have a listing of non-obligatory search parameter tags, generally <identify> and <uuid>. You’ll often have to decide on one and delete the others.
As logical as it could appear, you’ll be able to’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 should not mirror pictures.
Watch out when utilizing APIs that offer you direct entry to the Name Supervisor database, like executeSqlQuery. Sophisticated joins could also be intelligent, however they will 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 assume.
Ask a query or depart a remark beneath.
And keep linked with Cisco DevNet on social!
LinkedIn | Twitter @CiscoDevNet | Fb | YouTube Channel