Ne všichni děláme integrace každý den. Proto jsme pro vás připravili rychlokurz integrace v dnešním světě, kde stručně zmiňujeme ty nejdůležitější pojmy a nástroje . Až se všim prokousáte, můžete pokračovat na příklady volání API.
...
...
...
...
pro integraci s využitím tzv. REST API.
Table of Contents |
---|
Základní principy a pojmy
Co potřebuje mít člověk v hlavě, aby rozuměl věcem kolem API:
Komunikace po internetu https://everything.curl.dev/protocols/network
Internetové protokoly https://everything.curl.dev/protocols/protocols
EndPoint - https://en.wikipedia.org/wiki/Web_API
REST- https://en.wikipedia.org/wiki/Representational_state_transfer https://zdrojak.cz/clanky/rest-architektura-pro-webove-api/
...
Postman
Postman je služba, která umožňuje ve velmi přátelském, srozumitelném prostředí textovat volání REST API rozhraní. Jednoduše si můžete organizovat různá volání, u každého volání přehledně zadáváte adresyu, typ volání, head, autorizaci, body, vidíte i výsledky volání. Využívá ji i Signi na https://signiapi.postman.co/.
Volání
Pro každé volání volíte:
V záhlaví požadavku se volí typ HTTP Request, typicky GET nebo POST .
V záhlaví požadavku se také uvádí adresa endpointu je v případě Signi API ná např. enpoind pro odeslání souboru k podpisu https://api.signi.com/api/v1/contract/ .
V případech, kdy enpoind má parametry, zadávají se na záložce Param, V případě Signi API např. endpoint založení souboru má parametr Type s hodnotou ”doc” tj. výsledná adresa je volání je https://api.signi.com/api/v1/contract/?type=doc .
Na záložce Autorization je jako typ autorizace zvolen jako typ autorizace API Key a jako hodnota klíče x-api-key je uveden API klíč workspace a umístění API klíče je zvoleno Header. API klíč pro váš workspace v Signi si vygenerujete dle návodu Generování API klíče.
Na záložce Body je jako typ volání zvoleno multipart/form-data a jsou uvedeny jeden či více Keys , což které mohou být buď typu text nebo file. V případě enpointu pro odeslání souboru k podpisu se předpokládají minimálně dva, data a uploaded_file_key. Pozor, oba dva jsou typu file , aby se do HTTP požadavku opravdu fyzicky přenesli soubory. V prvním je JSON s parametry volání endpointu, v druhém je soubor k podpisu - PDF anebo DOC, DOCX, XLS, XLSX, HTML. U každého klíče je třeba zvolit typ parametru je File, Klepnutím na “Select Files” se otevře výběr souboru, vložíte příslušný.
Tlačítkem Send se odesílíá požadavek na příslušné REST API. V dolním panelu pro zobrazení výsledku se ukazuje výsledek volání tj. obsah HTTP Response.
Tlačítkem Save se ukládá požadavek do Postmana pro opakované použítí.
Klíče na záložce Body jsou typu “File”, soubor k zaslání v požadavku se vybere z vašeho disku a nahraje přes “Select Files”.
Výsledek
Po odeslání požadavku tlačítkem Send se zobrazí v dolním panelu výsledku se ukazuje výsledek volání endpointu daného REST API. tj. obsah HTTP Response.
V případě úspěchu se objevuje kód 200 s příslušným komentářem. V případ ěchyby typicky kód 4xx nebo 5xx. Pi volání Signi API jsou nečastějšíá tyto chyby.
...
Curl
Pokkud jste spíše příznivcem příkazového řádku, mohl by vám vyhovovat pro účely testování volání REST API rozhraní Curl. Curl je open source program pro přenos dat přes různé internetové protokoly. Jeho příkazy se používají k popisu toho, jak se jaká data se při integraci přenáší. Stejně tak lze příkazy v programu spustit.
HTTP POST https://everything.curl.dev/http/post
HTTP Multipart formposts https://everything.curl.dev/http/multipart
HTTP cheat sheet - https://everything.curl.dev/http/cheatsheet
Seznam všech příkazů - https://curl.se/docs/manpage.html
...
hide progress
-s
...
verbose
-v
--trace-ascii <file>
...
extra info
-w "format"
...
output
-O
-o <file>
...
timeout
-m <seconds>
...
POST
-d "string"
-d @file
...
POST encoded
--data-urlencode
"[name]=val"
...
multipart formpost
-F name=value
-F name=@file
...
PUT
-T <file>
...
HEAD (ers too)
-I
-i
...
custom method
-X "METHOD"
...
read cookiejar
-b <file>
...
write cookiejar
-c <file>
...
send cookies
-b "c=1; d=2"
...
user-agent
-A "string"
...
proxy
-x <host:port>
...
add/remove headers
-H "name: value"
-H "name:"
...
custom address
--resolve
<host:port:addr>
...
smaller data
--compressed
...
insecure HTTPS
-k
...
Basic auth
-u user:passwd
...
follow redirects
-L
...
parallel
-Z
...
generate code
--libcurl <file>
list options
--help
...
...
...
...
Curl je většinou již součástí operačního systému - např. MS Windows, kde se spouští z aplikace Příkazová řádka, jež se spouští vyhledáním “cmd” ve vyhledávacím poli na pracovní ploše.
...
Curl příkaz spuštěný z příkazové řádky na MS Windows a jeho výsledek
Apiary
Apiary je jedna ze služeb sloužících pro zveřejňování dokumentace API. Využívá ji i Signi na https://ismlouva3rdpartyservice1.docs.apiary.io/
...
Příklad popisu endpointu “Autorizace > x-api-key > Detail uživatele”,
při volbě cURL v pravém panelu je vidět sada příkaz curl, stejně tak je možné zvolit jiná prostředí
Postman
Postman je jedna ze služeb pro testování volání API. Využívá ji i Signi na https://signiapi.postman.co/.
...
Příklad volání endpointu Detail uživatele
...
Odkud se vezmou kontaktní údaje na podepisující? - Jméno, Příjmení, E-mail, Telefon (ten není povinný, ale pak ho uživatel musí zadat sám, aby mu přišla SMS a on mohl být ověřen).
...
Co se bude to posílat? - Hotový dokument PDF/DOCX/HTML/XSLX nebo parametry pro vzor dokumentu uložený v Signi
...
Jak se vyvolá akce podpisování? - Akce v menu na relevantním záznamu, nastavení nějakého custom pole na hodnotu "Odeslat k podpisu” apod.
...
Kde se uživateli ukáže výsledek podpisu? - Stav podepisování / výsledný dokument případně celou historii podepisování (viz kontrolní list)
...
Jak se umístí podpisy? - Nejjednodušší je dynamické umístění podpisů na závěr dokumentu na Podpisovém archu. Variantou je statické umístění na přesné souřadnice (vhodné pro formuláře typu Evidenční list důchodového pojištění).
...
Jak se předávají výsledky zpět? - Preferovanou variantou je webhook volající aktivně integrovaný systém s výsledkem podepisování. Alternativně se lze z integrovaného systému periodicky ptát na výsledek podepisování.
...
Příklady volání Signi API
Až se prokousáte základy REST API, můžete pokračovat na příklady volání API anebo Pokročilé příklady volání Signi API . Pokud ještě tápete, napište nám na help@signi.com .