Moda API
Wat is de Moda API
API staat voor Application Programmable Interface. Door deze API is het mogelijk om zonder de webomgeving gegevens uit Moda te halen. Uiteraard zitten sommige gegevens beveiligd achter een gebruikersnaam en wachtwoord, net als op de Moda website zelf.
Deze pagina geeft een toelichting hoe programmeurs met deze API kunnen werken. Hiervoor is kennis vereist over XML en enige kennis over het HTTP protocol.
De werking van de Moda API
De Moda API werkt door middel van HTTP requests en geeft altijd XML terug. In veel sommige gevallen is het doorgeven van een URL voldoende. Soms zijn echter POST requesten vereist, bijvoorbeeld voor de authenticatie van een gebruiker.
De url die bijvoorbeeld gegeven zou kunnen worden is:
| 1 | http://klant.osingasoftware.nl/api/help/ |
Dat resulteert in de volgende XML:
| 1 | <help> |
| 2 | <function_info> |
| 3 | <function>help</function> |
| 4 | <info> |
| 5 | Lists all functions and subpackages of the current package |
| 6 | </info> |
| 7 | <inputs> |
| 8 | <input> |
| 9 | <name>[function]</name> |
| 10 | <info>Sends information on a specific function</info> |
| 11 | </input> |
| 12 | <input> |
| 13 | <name>[recursive]</name> |
| 14 | <info>Recurses into packages if set to string 'true'</info> |
| 15 | </input> |
| 16 | </inputs> |
| 17 | <output>A list of all functions and subpackages</output> |
| 18 | </function_info> |
| 19 | |
| 20 | <!-- etc. //--> |
| 21 | </help> |
Veel functies van de Moda API vereisen authenticatie. Hiervoor is een gebruikersnaam en wachtwoord nodig. De resultaten in de XML zijn vaak afhankelijk van deze inloggegevens, maar ook van de rechten die deze gebruiker heeft in het systeem.
cURL
Voor het maken van de HTTP requests kan het beste gebruik gemaakt worden van
cURL. cURL is als command-line tool te downloaden, maar er zijn ook libraries die door diverse programmeertalen worden gebruikt. Andere programmeertalen hebben hun eigen oplossing hiervoor gemaakt.
PHP
In dit voorbeeld wordt de cURL library van PHP gebruikt. Deze moet eerst wel op het systeem geinstalleerd zijn. Met phpinfo() is dit snel te achterhalen.
De volgende code laat de werking van authenticeren met cURL in PHP zien:
| 1 | //Het cURL object aanmaken |
| 2 | $ch = curl_init(); |
| 3 | |
| 4 | //De URL opgeven |
| 5 | curl_setopt($ch, CURLOPT_URL, "http://www.voorbeeld.nl/api/users/list" ); |
| 6 | |
| 7 | //De inloggegevens opgeven. |
| 8 | curl_setopt($ch, CURLOPT_USERPWD, 'username:password'); |
| 9 | |
| 10 | //Aangeven dat het nu via POST aangevraag moet worden |
| 11 | curl_setopt($ch, CURLOPT_POST, true); |
| 12 | |
| 13 | //De POST velden aangeven (zoals je in een URL achter het vraagteken zet) |
| 14 | curl_setopt($ch, CURLOPT_POSTFIELDS, "userids=1,2,3"); |
| 15 | |
| 16 | //Aangeven dat de data niet "geprint" moet worden, maar als resultaat van de curl_exec terug moet komen |
| 17 | curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); |
| 18 | |
| 19 | //De request uitvoeren en de XML data in de variabele $xmldata stoppen |
| 20 | $xmldata = curl_exec($ch); |
| 21 | |
| 22 | //In het geval van een foutmelding deze weergeven |
| 23 | if (curl_errno($ch)) { |
| 24 | print curl_error($ch); |
| 25 | } |
| 26 | |
| 27 | //Het cURL object vrijgeven |
| 28 | curl_close($ch); |
Meer voorbeelden van cURL in PHP staat in de
documentatie van PHP
ActionScript (Flash)
Het volgende voorbeeld werkt vanaf ActionScript 2.0:
| 1 | var xml: XML = new XML(); |
| 2 | xml.ignoreWhite = true; |
| 3 | //xml.addRequestHeader("userid", ""); |
| 4 | xml.load("http://www.voorbeeld.nl/api/users/list"); |
Voor authenticatie is een base64 encoder vereist. Deze zit standaard in ActionScript 3.0, maar niet in ActionScript 2.0. Hiervoor zijn echter wel diverse scripts voor op internet.