ABONAMENTE VIDEO REDACȚIA
RO
EN
×
▼ LISTĂ EDIȚII ▼
Numărul 56
Abonament PDF

Cinci recomandări pentru a dezvolta un API cu user experience remarcabil

Alexandru Bolboacă
Agile Coach and Trainer, with a focus on technical practices
@Mozaic Works
PROGRAMARE

API-urile au devenit foarte importante într-o lume dominată de aplicaţii interconectate. API-urile au evoluat mult în ultimii ani, în special datorită standardelor JSON + REST. Însă mai există o subtilitate pe care trebuie să o iei în calcul:

API-urile sunt interfeţe cu utilizatorul.

Acronimul reflectă acest aspect: Interfaţă programabilă a aplicaţiei. Interfaţă pentru ce? Pentru alte sisteme software. Dar cine scrie aceste sisteme? Programatorii. Aşadar, API-ul este într-adevăr o interfaţă cu utilizatorul pentru programatorii ce îl folosesc.

Dat fiind că API-urile sunt interfeţe cu utilizatorul, se impune aplicarea principiilor şi tehnicilor UX pentru a fi folosite mai uşor. Iată cinci dintre ele.

Asigură-te că este ușor să înceapă

Cea mai bună metodă în acest sens este punerea la dispoziţie a unor mostre de cod gata de utilizare pentru cele mai comune limbaje de programare. La data scrierii acestui articol, recomandăm mostre de cod cel puţin pentru Java, C#, Javascript, ruby, python, PHP. Aceste mostre de cod trebuie să ofere suficiente informaţii pentru a te conecta la API, pentru a te autentifica şi a implementa cele mai frecvente scenarii. Mai multe informaţii la punctul 4.

Pentru a fi cât mai simplu, mostra de cod ar trebui să conțină tokenul de autentificare a utilizatorului logat. Şi anume, în locul:

client.call();

se poate afişa:

client.call("ASFasfduoiw2343vc");

Facilitaţi învăţarea

Cele mai bune API-uri sunt foarte uşor de învăţat. Redactarea unei documentaţii cuprinzătoare nu este suficientă. Utilizatorii nu au timp să parcurgă sute de pagini de manuale, dat fiind că au termene limită. Aşadar, pot ei deduce modul de acţiune într-un scenariu cu care nu s-au mai confruntat?

Multe API-uri arată că acest lucru este posibil. Secretul constă în consistenţă.

API-ul Highrise este un exemplu excelent de consistenţă. Highrise este un CRM SaaS simplu, dar foarte util. Asigură consistenţă pe multe nivele:

După ce aţi învăţat cum să folosiţi o anumită resursă în API-ul Highrise, celelalte vin natural. Doriţi o listă a persoanelor?

GET /people.xml

<people>
<person>
...
</person>
<person>
...
</person>
</people>

Doriţi o listă a companiilor?

GET /companies.xml

<companies>
<company>
...
</company>
<company>
...
</company>
</companies>

Răspunsul pentru companii şi persoane conţine câmpuri pentru informaţiile de contact, structurate exact în acelaşi mod:

<contact-data>
<email-addresses>
<email-address>
<id type="integer">1
</id>
<address>
corporate@example.com
</address>
<location>Work</location>
</email-address>
</email-addresses>
<phone-numbers>
<phone-number>
<id type="integer">2</id>
<number>555-555-5555</number>
<location>Work</location>
</phone-number>
<phone-number>
<id type="integer">3</id>
<number>555-666-6667</number>
<location>Fax</location>
</phone-number>
</phone-numbers>
</contact-data>

API-ul Highrise este un studiu de caz foarte interesant din perspectiva învățării și consecvenţei. Invităm cititorii să-l încerce şi să se inspire din modelul său.

Asiguraţi previzibilitatea

Una dintre cele mai enervante situaţii cu care se confruntă programatorii este atunci când au scris un cod care ar trebui să funcţioneze şi totuşi nu funcţionează dintr-un motiv oarecare.

Când au de - a face cu un API, acest lucru este cu atât mai neplăcut. De regulă, singurele modalităţi de rezolvare a problemei sunt analiza documentaţiei şi solicitarea asistenţei tehnice. Astfel utilizatorii pierd timp preţios.

API-urile bune au comportament consecvent. Returnează acelaşi cod de eroare pentru aceeaşi eroare. Gestionează cât de multe erori posibil. Comunică un mesaj util programatorului pentru a înţelege ceea ce este greşit şi cum să remedieze. Pentru situaţii mai ciudate, ele au un index cu probleme şi soluţii uşor de navigat. În plus, asigură asistenţă utilă şi rapidă la nevoie.

Există şi modalităţi de evitare a multora dintre aceste probleme: proiectarea API-ului pentru a evita pe cât posibil apariţia erorilor. Dacă sunt mulţi utilizatori care fac aceeaşi greşeală, îmbunătăţiţi modelul astfel încât să nu se mai întâmple. Nu numai ca va spori satisfacţia utilizatorului, dar va fi redusă şi activitatea de asistenţă. Toţi au de câştigat.

Testaţi scenariile de utilizare

Pentru că API-urile sunt interfeţe cu utilizatorii, trebuie să înţelegeţi scenariile şi să le testaţi cu teste de utilizare. Să luăm de exemplu un CRM precum Highrise. Scenariile obişnuite includ:

Aceste scenarii pot fi împărţite pe rând în mai mulţi paşi, generând etape de implementare simple. Fiecare etapă de acest tip se poate testa prin:

Aceste informaţii sunt folosite pentru a facilita şi îmbunătăţi designul API-ului.

Pornirea de la scenariile de utilizare

Există două modalităţi de dezvoltare a unui API:

Recomandăm metoda a doua pentru cele mai bune rezultate. În loc să se formuleze ipoteze despre API, porniţi de la punctul de vedere al utilizatorului. Scrie codul pe care ai vrea să-l scrii pentru a utiliza API-ul şi după ce ești mulţumit, începe să-l implementezi. Codul client se poate transforma în teste funcţionale pentru API şi în mostre de cod pentru documentare. Este un câştig pe toate fronturile.

Concluzie

V-am prezentat cinci recomandări pentru o experienţă remarcabilă a unui programator care foloseşte API-uri. Fiecare dintre acestea este inspirată de cel puţin unul din cele cinci principii de usability: uşurinţă de învăţare, eficienţă, uşurinţă de memorare, evitare greşeli, satisfacţie. În epoca SaaS şi a aplicaţiilor mobile, vor fi remarcate echipele care ating un nivel excelent în acest sens. Succes!

PS: Nu uitaţi să contactaţi autorii pentru observaţii și întrebări sau în cazul în Mulţumim!

În aceeaşi ediţie ... (56)

▼ TOATE ARTICOLELE ▼

Conferință

Sponsori

  • ntt data
  • 3PillarGlobal
  • Betfair
  • Telenav
  • Accenture
  • Siemens
  • Bosch
  • FlowTraders
  • MHP
  • Connatix
  • UIPatj
  • MetroSystems
  • Globant
  • MicroFocus
  • Colors in projects