Sherpa: Simpler. Better.

Sherpa: Simpler. Better.

Omdat Irias graag bij wil dragen aan de opensource-gemeenschap en het belangrijk vinden dat goede, nieuwe vindingen en technieken breed en patentvrij gebruikt moeten kunnen worden, hebben wij een belangrijk onderdeel van onze ontwikkeltechnieken beschikbaar gesteld aan een ieder die het wil gebruiken.

Het gaat om Sherpa: een techniek om op een slimmere en eenvoudigere manier informatie uit te wisselen tussen frontend (gebruikersinteracties) en backend (dataverwerking) dan wat voorheen met traditionele technieken mogelijk was. En misschien nog wel belangrijker: het stelt de programmeurs in staat om deze interactie goed te documenteren.

Dankzij Sherpa:

  • Kunnen frontend en backendprogrammeurs optimaal samenwerken
  • Wordt hun code beter gedocumenteerd
  • Is deze documentatie sneller en makkelijker beschikbaar

Sherpa is bedacht en ontwikkeld door Mechiel Lukkien. Voor specificaties en technische details verwijzen wij u dan ook graag door naar zijn website.

Hoe werkt Sherpa


Sherpa bestaat uit twee onderdelen:

  • Aan de backendkant publiceert Sherpa een lijst met functies en de documentatie behorende bij deze functies
  • Aan de frontendkant maakt Sherpa het via een javascript-bibliotheek mogelijk deze functies aan te roepen.

Net als bij tradionele REST-APIs hebben alle api-functies hun eigen endpoint. Het grootste verschil met REST is dat de functieparameters niet in de URL verpakt worden, maar in JSON-objecten in de body van elke request. Alle functieaanroepen zijn dan ook POST-requests, in tegenstelling tot wat bij REST-APIs het geval is. Het functieresultaat wordt ook als JSON-object teruggestuurd, tenzij er iets fout gegaan is. Errorcodes worden niet als HTTP-errorcodes verstuurd, maar ook verpakt in JSON-objecten.

De bibliotheken die wij nu als open source code met MIT-licentie hebben gepubliceerd zorgen ervoor dat:

  • Functies die in de backend worden geschreven en van documentatie worden verzien automatisch als sherpa-functies worden gepubliceerd
  • In de frontend deze functies direct kunnen worden aangeroepen

Waarom Sherpa?


Zogeheten 'remote procedure call'-technieken bestaan al heel lang. Implementaties van die techniek zijn echter vaak nodeloos complex. Sherpa is aanzienlijk eenvoudiger in het gebruik dan bijvoorbeeld REST-apis of SOAP. We hoeven ons bijvoorbeeld niet meer in allerlei bochten te wringen om functienamen en parameters te 'mappen' op urls. We hoeven ons ook niet meer druk te maken over alle http-headers die we correct moeten gebruiken en interpreteren, om een écht correcte REST-api te bouwen. Daarnaast voorkomt Sherpa moeilijke vertalingen tussen XML en je objecten die nodig is bij bijvoorbeeld XMLRPC. Kortom: de grootste reden waarom Sherpa er is simpelweg eenvoud zonder op kracht in te leveren.

Sherpa gebruiken?


De recent gepubliceerde code betreft een java-library die te vinden is in maven repositories . Daarnaast bestaat er een implementatie in Go (cliënt en server) en is er een JavaScript-client-library beschikbaar.