Le spunem tuturor sa o faca gresit.

2016–08–16 Edit: Daca apreciati acest continut, va rugam sa il promovati pe Steemit si sa ma urmariti si acolo. Multumesc!

La sfarsitul anului 2011, mi-am propus sa construiesc un nou API pentru FoxyCart. Cateva luni de cercetare m-au determinat sa beau Hypermedia All The Things! Kool-Aid. Am citit capitolul 5 al lui Roy Fielding, am consumat toate postarile de pe blogul lui Apigee, am pus o gramada de intrebari despre uimitorul grup Google API Craft si am devenit un participant regulat la RESTfest in ultimii patru ani consecutivi. Am invatat multe despre API-urile Hypermedia si imi place sa cred ca avem una destul de grozava pe care oamenii o pot invata si emula. O puteti verifica aici: https://api.foxycart.com/docs

Iata ceva ce ati putea observa imediat: documentatia nu este standard. De ce este asta? Ei bine, acest lucru revine la primul meu punct. Cred ca ii invatam pe oameni sa lucreze cu API-urile Hypermedia intr-un mod gresit. Iata cateva capturi de ecran de la unele sisteme de documentare populare pentru a ilustra punctul meu de vedere:

Fali

Documente IO

API Blue Print

Observi ceva?

Toti incurajeaza dezvoltatorii clienti si consumatorii API sa codeze direct la adresele URL. Cei adanci in fan clubul Hypermedia ar trebui sa intrebe imediat „Unde este hipermedia?” Daca vorbim despre modelul de maturitate Leonard Richardson, nu suntem la nivelul 3, deoarece instrumentele de documentare nu incurajeaza dezvoltatorii sa codeze relatiile de legatura hipermedia. REST implica „hipermedia ca motor al starii aplicatiei”, dar majoritatea dezvoltatorilor nici macar nu stiu ce inseamna geek-urile API atunci cand spun „constrangerea hipermedia”.

Hipermedia nu este complicata. O folosim in fiecare zi pe web. Pentru un API, la nivel de baza, este vorba doar de legaturi dintr-o stare de resursa in alta. Sistemele de documentare API comerciale si open source disponibile in prezent nu ii invata pe oameni nimic despre modul in care API-urile REST utilizeaza hipermedia pentru tot felul de genialitate.

tias follando con animales videos de travestis en español
se follan a su mujer pilladas pajeandose
manoseadas en el cine porno gay violado
incesto clasico corridas gays
española pillada maduras follando y corriendose
anal maduras españolas chuponas
defloin.com edurne follando
orgias rusas maduritas cachondas
descargar videos porno gratis porno español trans
follada a traicion videos porno tetonas gratis
actores porno gay españoles manoseadas en el cine
gitana follando videos pornos de abuelas
nenas peludas abuelas españolas xxx
porno gay negro folladas salvajes
porno incesto italiano porno gay negro
hermanos jovenes follando follada por muchos
humillada y follada porno con abuelas
mama incesto negras tetonas
mamadas de abuelas hentai en castellano
follando en el parque copilacion de mamadas

Acesta este acelasi fel de minunat care a permis Internetului sa prospere cu clientul-server, stateless, cache, sistem stratificat, cod la cerere, interfata uniforma. Resursele au legaturi numite relatii de legatura, iar dezvoltatorii ar trebui sa-si codifice clientii catre aceste relatii de legatura, pentru a face lucruri fara sa le pese la fel de mult despre detaliile sau procesele care se pot schimba in timp. Simplu, nu? Cred ca atat de multe API-uri „REST” gresesc acest lucru, in principal pentru ca niciunul dintre sistemele de documentare de acolo nu reprezinta acest lucru bine.

Deci, ce facem in legatura cu asta? Am ridicat aceasta intrebare in discutia mea RESTfest 5 in 5 din 2013 (sunetul este destul de dur, dar puteti gasi discutia aici si diapozitivele aici). As vrea sa cred ca discutia a starnit discutii cu adevarat interesante pe aceasta problema a stupinei. Ei fac progrese mari acolo, dar de la aceasta postare, problema hipermedia este inca deschisa.

Asadar, inapoi la hAPI (numele meu care zambeste pentru API-ul nostru Hypermedia): am ajuns sa ne construim propria documentatie de la zero. Am incercat sa concentram totul pe resurse si pe relatiile de legatura dintre ele. Am devenit creativi cu o diagrama interactiva pentru a explica modul in care relatiile de legatura functioneaza impreuna. Am implementat Browserul HAL si Browserul Siren pentru a permite oamenilor sa se joace cu relatiile de legatura si resursele direct intr-un mediu sandbox.

Incercarea FoxyCart de a realiza o diagrama interactiva a arborelui relatiei

Browser HAL, usor personalizat de FoxyCart

Vederea vizuala a relatiilor de legatura ca actiuni este foarte utila

Browserul Siren cu formulare!

Dar iata frecarea … Documentatia noastra nu este atat de grozava. Nu avem echipe de oameni care sa o imbunatateasca si sa o rafineze dupa mai multe iteratii cu multe implementari diferite, cum ar fi principalele sisteme de documentare pe care le folosesc concurentii nostri. Nu numai ca, daca nu folosim un format standard pentru definirea API-ului nostru, nu putem folosi instrumente distractive, cum ar fi API Transformer sau sa fim usor listati in API Commons sau Web programabil.

Documentatia noastra personalizata HAPI

In documentele noastre personalizate, afisam exemple de reprezentari pentru toate formatele pe care le acceptam.

Deci, cum putem gasi un echilibru intre idealismul despre ceea ce „ar trebui” sa fie sistemele de documentare Hypermedia API si ceea ce sunt acestea practic? Cum putem avansa intregul ecosistem incurajand dezvoltatorii clienti sa codeze relatiile in loc de adresele URL codificate? Cum ajutam sa deschidem drumul spre viitor, dar sa nu aratam ca niste persoane din exterior nesofisticate in acest proces? Ce pasi pragmatici ar trebui sa facem pentru a fi ca ceilalti copii misto care folosesc prezentari de documentatie standard, in timp ce spunem in acelasi timp: „Um, da, nu face asta. Nu codificati adresa URL, ci codificati relatia de legatura. ”

Nu prea am raspunsurile. Acum, cand documentele noastre personalizate sunt terminate, probabil voi ajunge sa le convertesc in API Blueprint, Swagger si RAML … dar asta dureaza si, din pacate, le spune tuturor sa o faca gresit.

PS Vei fi la Austin saptamana viitoare? Daca da, sper sa ne vedem la Conferinta strategiei API pentru Hypermedia API Breakout 1 pe 19 noiembrie. Voi vorbi despre povestea FoxyCart care ne construieste HAPI si despre cateva lucruri pe care le-am invatat pe parcurs.