Ekki skrifa vonda vefþjónustu

17.01.2014

Í starfi okkar hjá Hugsmiðjunni þurfum við bakendagórillurnar oft að vinna á móti vefþjónustum (e. API) af öllum stærðum og gerðum.

Einföld hugmynd

Þó að hugmyndin um vefþjónustu sé einföld er ýmislegt sem þarf að hafa í huga þegar hún er smíðuð.

Gæði vefþjónustu geta haft gríðarleg áhrif á verkefni. Einfalt verkefni getur hæglega sprungið út í tíma ef vefþjónustan er illa gerð, með tilheyrandi kostnaði fyrir verkkaupa. Sérstaklega þarf að hafa þetta í huga ef nota á sömu vefþjónustuna á fleiri stöðum. Nokkrir klukkutímar í að bæta grunninn geta skilað sér margfalt til baka síðar meir.

Vönduð vefþjónusta getur sparað tíma og pening fyrir alla aðila. En gæðin koma ekki af sjálfu sér. Til að vanda til verka þarf að hugsa vel og hanna þjónustuna.

Undirbúningur

Þegar vefþjónusta er skrifuð þarf að byrja á því að taka ákvörðun um hvaða samskiptareglusett (e. protocol) skal notað: REST eða SOAP.

Það sem REST hefur yfir SOAP er að hún neyðir skrifandann til að hugsa og hanna þjónustuna sem á að fara að skrifa. Þess vegna eru REST þjónustur upp til hópa vandaðri og auðveldara að skrifa á móti þeim.

Vel úthugsuð SOAP þjónusta getur verið jafn góð og REST þjónusta og freistandi getur verið að nota SOAP þar sem góður stuðningur er fyrir SOAP í Microsoft umhverfum. SOAP stuðningur getur hins vegar verið mjög erfiður í öðrum umhverfum og þar sem SOAP fylgir mikið bákn (e. overhead) getur það kostað mikla vinnu að koma á handvirkum stuðningi. Ef einhverra hluta vegna er nauðsynlegt að byggja vefþjónustuna á SOAP er afskaplega mikilvægt að fylgja punktunum sem hér fylgja.

Nokkur atriði sem einkenna góða vefþjónustu:

  • Hafðu samræmi innan vefþjónustunnar (t.d. í köllum og stikum).
  • Notaðu vel studda staðla eins og t.d. SSL, basic-auth, http-get/post eins mikið og mögulegt er.
  • Settu vefþjónustuna þannig upp að notandinn þurfi ekki að þekkja innviði þíns kerfis. Mikið betra er að setja upp þjónustu sem býður upp á einfaldar og vel skilgreindar aðgerðir í stað þess að opinbera gagnalagið þitt. Það getur sparað mikla vinnu að gera þetta rétt í vefþjónustunni, frekar en að láta alla notendur þjónustunnar búa til þessar sömu aðgerðir í sínum kerfum.
  • Leyfðu tóm gildi. Aðgerðir vefþjónustunnar verða að ráða við tóm gildi. Ekki heimta að notandinn skáldi í eyðurnar.
  • Skilaðu gagnlegum villuboðum þegar aðgerðir mistakast.
  • Hafðu góðan fyrirvara á öllum breytingum á útgefinni vefþjónustu. Best er að halda gömlu útgáfunni keyrandi í einhvern tíma, ef mögulegt er.
  • Hafðu prufugögn tilbúin og útbúðu leið fyrir aðra að þróa á móti þjónustunni án þess að skemma raungögn.
  • Skjalaðu þjónustuna þína. Lágmarksskjölun ætti að innihalda aðgerðir með sýnidæmum, skyldu- og valkvæðum viðföngum, sjálfgefin gildi og villukóða. Vísun í WSDL er ekki skjölun.
  • Í guðs lifandi bænum prófaðu vefþjónustuna þína áður en aðrir eiga að fara að vinna á móti henni.

Fyrir þá sem vilja lesa sér betur til um tæknilegri útlistun á góðum vinnubrögðum við gerð vefþjónusta mælum við með þessari grein frá Steini “Stan” Jónssyni (fyrrverandi þróunarstjóra Hugsmiðjunnar) sem hefur hlotið yfirskriftina Web Service Design — Best Practices.

Peace out, one love.