2008-09-15 9 views
1

Wir entwickeln ein Middleware-SDK, sowohl in C++ als auch in Java, das beispielsweise von Spieleentwicklern, Animations-Softwareentwicklern, Avatar-Entwicklern als Bibliothek/DLL verwendet wird, um ihre Produkte zu verbessern.REST-Typ-API für nicht webbasierte Anwendungen, Ist es eine gute Idee?

Nachdem ich eine typische API mit bestimmten Aufrufen für bestimmte Funktionen erstellt habe, erwäge ich, die API durch Verwendung einer REST-API (GET, PUT, POST, DELETE) oder CRUD-Typ (CREATE, READ, UPDATE, DELETE) zu vereinfachen.

Dies funktioniert ähnlich wie eine REST-API vom Typ Client-Server, bei der es nur 4 mögliche API-Aufrufe gibt, die jedoch flexible Parameter annehmen können.

Dies scheint den Vorteil zu haben, die API stabil zu machen, indem neue Anrufe nicht hinzugefügt werden und alte Anrufe nicht entfernt werden. Daher muss sich ein Verbraucher dieser API nicht darum sorgen, dass er seinen Code neu kompilieren muss, um ihn an Aktualisierungen unserer Middleware anzupassen.

Der Overhead besteht darin, dass es eine zusätzliche Umleitungsebene im Middleware-Controller gibt, um API-Aufrufe zu routen, und der Entwickler muss wissen, welche Parameter für jeden REST-Aufruf verfügbar sind (natürlich mitgeliefert).

Ich habe dieses System bisher nicht außerhalb von Web-Typ-Client-Server-Anwendungen verwendet, so ist meine Frage: Ist das eine machbare Idee?

Ich denke in Bezug auf seine Effizienz sowie, wenn zum Beispiel ein Spieleentwickler es einfach zu bedienen finden würde.

Antwort

3

Ja, das ist eine machbare Idee. Aber ich bin nicht sicher, ob die Vorteile die Kosten rechtfertigen würden. REST eignet sich am besten für ein vernetztes Anwendungsszenario, das sich an Anforderungen und Antworten orientiert. Obwohl es eindeutige Lernkurvenvorteile für eine einheitliche Schnittstelle gibt, können diese Vorteile in fast jeder gut entworfenen API vorhanden sein, die vernünftig abstrakte Prozeduren bereitstellt.

Sie drückten auch Bedenken aus, ob ein Spieleentwickler eine einfach zu bedienende RESTful API finden würde. Ich wäre zweifelhaft. Ich habe viele REST-konforme Webdienste implementiert und vielen Entwicklern geholfen, sie sowohl zu entwickeln als auch zu verwenden. Der konzeptionelle Sprung, den man für REST benötigt, kann für jemanden, der seit Jahren in prozeduralen APIs steckt, erheblich sein. Ich würde denken, dass insbesondere Spieleentwickler sehr stark mit prozeduralen APIs verbunden sind, so dass der Versuch, ein anderes Paradigma zu verwenden, unabhängig von seinen Vorteilen, sich als äußerst schwierig erweisen könnte.

1

Denken Sie daran, dass REST nicht spezifisch für HTTP ist und nicht nur auf die 4 HTTP-Verben angewiesen ist. Welche Verben Sie haben und verwenden können, hängt davon ab, welches Protokoll Sie verwenden.