When you don’t know the answer to something, you look it up; dictionaries, references, thesauruses – in every day life, these little tools brighten our worlds and our minds with information when they’ve gone dark.
Unfortunately, that isn’t always the case when it comes to software.
Though we carry out a very large amount of R&D, we don’t always find the information we’re looking for. In these cases, it’s important to get creative.
One project left us with no veritable documentation (and thus, no help) when adjusting an appraisal subcommittee’s web services in PHP.
On the outside, the request was relatively simple. Our client wanted the latest license data of all his appraisers saved and updated in his database. For a bit of perspective, the appraisers’ latest active license information is maintained by the appraiser subcommittee (ASC) which is an independent agency of the Federal Financial Institutions Examination Council; they offer web services which apply search parameters, returning appraiser license data which can then be altered and updated within each appraisers’ table.
There were some hoops to traverse. The ASC.Gov web services are built in .Net with access and usage documentation in .Net and C#. That being said, no access documentation is established for PHP on the official website of the institution, or any other website or resource for that matter. After hours of research, we came to the conclusion that we’d need to get tricky.
The .Net example code needed to be converted to a compatible PHP code set, but without a precedent this would require hours of trial and error. So, we got started.
Our developers began translating the .NET code to PHP code, re-writing said code in PHP. They tried multiple methods to attempt to pass the parameters, constantly debugging the request calls until a solution was devised. After days of this tenuous process, our developers discovered a way to code parameters as PHP objects with property names equal to that of the basic parameters of established web service method calls.
We finally made the web service call work (we tend to make things work around here) and our project was a success.