[vpsFree.cz: community-list] [vpsFree.cz: news-list] vpsAdmin API a další směr vývoje

Peter Šufliarsky sufliarskyp at gmail.com
Thu May 22 10:18:08 CEST 2014


Ahojte,

v poslednej dobre intenzívne využívam jedno REST-ové API, tak pridávam dva
postrehy, o ktorých si myslím, že by mohli byť zaujímavé.

Súhlasím s tým prihlasovaním. V mojom prípade prihlasovanie riešime tak, že
máme authentication request, v ktorom sa odošlú prihlasovacie údaje. Po
úspešnom prihlásení server vytvorí session a v hlavičke odpovede odošle
okrem iného Set-Cookie SESSIONID=xxx, kde xxx je nejaký unikátny kľúč. Ten
sa potom odosiela v hlavičke ostatných requestov a server podľa toho overí
užívateľa. Platnosť session ID vyprší po 30 minutách nečinnosti alebo po
odoslaní logout requestu.

Operácie typu start/stop/restart a podobne by som riešil takto: POST
/v1/vpses/:vps_id?action=start Je to asi len kozmetická zmena, ale mne to
pripadá byť trochu viac logické. start/stop/restart nereprezentujú žiadne
resources na serveri.

Peťo



2014-05-22 9:48 GMT+02:00 René Klačan <rene.klacan at gmail.com>:

> Ahojte,
>
> nebolo jednoduchsie a casovo uspornejsie pouzit uz nejaky existujuci API
> framework? Z mojho pohladu by to mohlo usetrit vela casu. Napriklad
> https://github.com/intridea/grape . Ci si myslite, ze poziadavky su
> natolko specificke, ze by to podobna kniznica efektivne nepokryla a bolo by
> ju nutne az nezmyselne ohybat?
>
> Ale inak skvela praca, velmi pekne napisane a tiez velmi ocenujem, ze to
> je v Ruby! Len by som vytkol to, ze tam nevidim testy.
>
> Rene
>
>
> 2014-05-21 22:10 GMT+02:00 Pavel Snajdr <snajpa at snajpa.net>:
>
> -----BEGIN PGP SIGNED MESSAGE-----
>> Hash: SHA256
>>
>> Ahoj,
>>
>> posilat porad username+password a nemit rozliseni mezi API pristupem a
>> UI pristupem je smrt, natoz to chtit nejak potom auditovat, totalne
>> nemozne - takze to je jedna z veci, co se bude resit dal, vime o tom.
>>
>> Neco na ten, jak rikas, je urcite v planu, ono to jenom nejde delat
>> jako revoluci "vsechno najednou", jelikoz prerodit vpsAdmin za behu v
>> neco min srackoidniho (zdravim sam sebe o 5 let v minulosti) to neni
>> task na par tydnu a obzvlast kdyz se to clovek rozhodne udelat poradne
>> a jeste to chce udelat recyklovatelne.
>>
>> Proto jsme vymysleli jak co nejvic ty prace ohledne API a tak
>> automatizovat uz samotnym napsanim toho kodu urcitym stylem, aby se
>> napsal jenom jednou a nebylo potreba udrzovat 228342934 veci okolo
>> jako napr. dokumentace a kvadrilion ruznych klientu pro triliardu
>> platform :))
>>
>> Aither prerodil tenhle muj napad v HaveAPI, coz vypada jako uplne
>> super vec, na kterou jsem celou dobu cekal.
>> Uz nejakou chvili se zabyvam s ruznymi lidmi automatizaci ruznych
>> low-level procesu (mluvim o low-level vecech z pohledu provozovatele
>> byznysu online, tzn. nastaveni OS, runtime jazyka, DB...) a presne
>> nejaka takovahle moznost jak vybavit uzavrene komplexni prostredi
>> jasne popsanym strukturovanym rozhrani na praci s nim, to mi presne
>> chybelo.
>>
>> Proto bych chtel, jestli mate kdo ted cas, fakt na to mrknete, jestli
>> jste meli potrebu kdy tvorit nejaky APIcka pro neco, tohle je uplne o
>> necem jinym, je to holt vyzdimana koncentrovana bolest pri psani API
>> pretavena v lek :))
>>
>> No a celej duvod, proc jsem se s Aitherem dohodnul, ze to announcne uz
>> ted, kdyz se uci na statnice, je aby byl prostor na feedback.
>>
>> Takze kdo jste kdy delal HTTP API pro neco, kouknete na to a dejte
>> vedet. Dik!
>>
>> S pozdravem
>>
>> Pavel Snajdr
>>
>> +421 948 816 186  | +420 720 107 791          | 110-010-956
>> CTO of Relbit     | Predseda vpsFree.cz, o.s. | RHCE
>> http://relbit.com | http://vpsfree.cz         | https://www.redhat.com
>>
>> On 05/21/2014 08:20 PM, Ján Raska wrote:
>> > Ahoj,
>> >
>> > super napad. Akurat mam malu vyhradu voci autentifikacii, moderne
>> > RESTful APIs sa dnes vacsinou robia stateless s pouzitim tokenu,
>> > ktory sa zasiela vramci Authentication headeru. S tym ze okrem
>> > temporary tokenu je aj moznost zisat long-term token (bez
>> > expiracie), alebo este lepsie short-term token spolu s refresh
>> > tokenom (refresh token bezpecne ulozim, komunikujem so short term
>> > tokenom a ked vyprsi, tak pomocou refresh tokenu urobim reissue). V
>> > podstate na podobnom principe pracuje OAuth 2.0, ale na nieco
>> > taketo je z mojich skusenosti jednoduchsie nakodit nieco vlastne
>> > nez implementovat cely OAuth (pokial samozrejme nepouzijem hotovu
>> > libku :) ).
>> >
>> > Vyhoda takehoto API je, ze sa potom k tomu daju napisat mobilne
>> > appky, do ktorych sa prihlasis raz a oni si token ulozia do device
>> > DB.
>> >
>> > Jano
>> >
>> > On 20 May 2014, at 19:01, Jakub Skokan <jakub.skokan at havefun.cz
>> > <mailto:jakub.skokan at havefun.cz>> wrote:
>> >
>> >> Zdravím,
>> >>
>> >> na adrese https://api.vpsfree.cz je k dispozici vývojová verze
>> >> vpsAdmin API. Je to ve stavu, kdy to funguje, ale není to
>> >> doladěné a nemá to všechny funkce.
>> >>
>> >> Při vývoji vzniknul framework HaveAPI [1], který naše API
>> >> využívá. Jedná se o framework na tvorbu sebepopisujících se
>> >> RESTful API.
>> >>
>> >> Sebepopisující se API odpovídá na HTTP metodu OPTIONS a vrací
>> >> JSON obsahující seznam dostupných verzí API, objektů, akcí,
>> >> jejich vstupních/výstupních parametrů, popis, validaci, ukázku
>> >> použítí, apod. Díky této vlastnosti lze vytvořit klienta, který
>> >> dokáže komunikovat s jakýmkoli API, které je postavené nad
>> >> HaveAPI. Změny v API se okamžitě projeví ve všech klientech,
>> >> atd.
>> >>
>> >> Dokumentace API: - Automaticky generovaná frameworkem na
>> >> https://api.vpsfree.cz
>> >>
>> >> Co to zatím umí: - Vytvoření a smazání playground VPS, - seznam
>> >> vlastních VPS, start, stop, restart, změna hesla, přeinstalace, -
>> >> výpis konfigurace VPS, - seznam IP adres VPS, - seznam dostupných
>> >> dstribucí (nutné k vytvoření VPS).
>> >>
>> >> Připravení klienti: - CLI a klient v Ruby (>= 2.0) [2], který
>> >> také existuje v obecné formě (pro jakékoliv API, rozdíl je pouze
>> >> ve jménu a výchozí URL) [3], - PHP klient [4] a jeho obecná forma
>> >> [5].
>> >>
>> >> Návody na instalaci a použití jednotlivých klientů jsou na
>> >> přiložených odkazech.
>> >>
>> >> Aktivita je vítána. Hodilo by se, kdyby se našlo pár lidí, co by
>> >> udělali klienta ve svém oblíbeném jazyce. Nejvíc by se nám hodil
>> >> alespoň proof-of-concept v JS, abychom si ověřili, že je možné
>> >> udělat UI kompletně v HTML5 & JS, já už na to aktuálně nemám
>> >> čas.
>> >>
>> >> Pokud nenarazíme na nějaké větší problémy, aplikační logika
>> >> vpsAdminu se bude postupně přesouvat z webového rozhraní do
>> >> tohoto API. Současně se z vpsAdminu pomalu bude stávat nezávislý
>> >> projekt na vpsFree.cz, aby jeho použití nebylo limitováno naším
>> >> sdružením a šel nasadit i jinde.
>> >>
>> >> Do budoucna se počítá s tím, že přes API půjde hýbat s parametry
>> >> VPS a člen si bude moci rozdělit přidělené prostředky mezi více
>> >> VPS jak se mu zlíbí (v rozumných mantinelech).
>> >>
>> >> Rozhodli jsme se to spustit a oznámit co nejdříve, i když
>> >> nekompletní, aby se koncept otestoval v praxi. Budu rád za
>> >> jakoukoliv zpětnou vazbu, nápady či připomínky.
>> >>
>> >> [1] https://github.com/vpsfreecz/haveapi
>> >>
>> >> [2] https://github.com/vpsfreecz/vpsfree-client
>> >>
>> >> [3] https://github.com/vpsfreecz/haveapi-client
>> >>
>> >> [4] https://github.com/vpsfreecz/haveapi-client-php/tree/vpsfree
>> >>
>> >> [5] https://github.com/vpsfreecz/haveapi-client-php -- S
>> >> pozdravem
>> >>
>> >> Jakub Skokan _______________________________________________
>> >> News-list mailing list News-list at lists.vpsfree.cz
>> >> <mailto:News-list at lists.vpsfree.cz>
>> >> http://lists.vpsfree.cz/listinfo/news-list
>> >
>> >
>> >
>> > _______________________________________________ Community-list
>> > mailing list Community-list at lists.vpsfree.cz
>> > http://lists.vpsfree.cz/listinfo/community-list
>> >
>> -----BEGIN PGP SIGNATURE-----
>> Version: GnuPG v1
>> Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/
>>
>> iF4EAREIAAYFAlN9CEsACgkQMBKdi9lkZ6p1UgD9FhUz15ApUnlTqufJgATy2BCa
>> QPkScmJTxfU/gcDGynAA+wavOPBtamMxqOjiRsuKHt4SUYPLtJSuEq2wB8VrH8e/
>> =jIPF
>> -----END PGP SIGNATURE-----
>> _______________________________________________
>> Community-list mailing list
>> Community-list at lists.vpsfree.cz
>> http://lists.vpsfree.cz/listinfo/community-list
>>
>
>
> _______________________________________________
> Community-list mailing list
> Community-list at lists.vpsfree.cz
> http://lists.vpsfree.cz/listinfo/community-list
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.vpsfree.cz/pipermail/community-list/attachments/20140522/c02d6983/attachment-0002.html>


More information about the Community-list mailing list