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