Ich habe mir verschiedene API Technologien angeschaut und vor allem die Konzepte zweier Systeme konnten mich überzeugen: RESTful mit seiner Einfachheit aber dem Problem einer unbenutzbaren API ohne eine aktuelle Dokumentation mit den verfügbaren URLs und deren Parametern. SOAP mit seiner selbstbeschreibenden Struktur durch die WSDL aber dem Problem des hohen Overheads durch die Benutzung von XML und dem strengen Protokolls.
Beide Konzepte, Einfachheit und Struktur, sind für mich unabdingbar für eine gute API und daher habe ich mich nach einer Technologie umgeschaut die beide Vorteile ohne die Nachteile vereint: JsonRPC. Das Protokoll ist einfach wie RESTful: HTTP Requests mit Json formatierten Daten. Dazu ist es selbstbeschreibend wie SOAP: SMD mit allen verfügbaren Methoden und dazugehörigen Parameter.
POST Request an den Server (http://2x.dragonjsonserver.de/jsonrpc2.php):
{"id":1,"method":"Application.ping","params":{}} |
Response:
{"result":null,"id":"1","jsonrpc":"2.0"} |