{"id":54187,"date":"2019-12-20T00:00:00","date_gmt":"2019-12-19T21:00:00","guid":{"rendered":"https:\/\/prohoster.info\/blog\/blog_prohoster\/testmace-moshhnaya-ide-dlya-raboty-s-api"},"modified":"2020-02-18T14:02:10","modified_gmt":"2020-02-18T11:02:10","slug":"testmace-moshhnaya-ide-dlya-raboty-s-api","status":"publish","type":"post","link":"https:\/\/prohoster.info\/sq\/blog\/news\/testmace-moshhnaya-ide-dlya-raboty-s-api","title":{"rendered":"TestMace \u2014 nj\u00eb IDE e fuqishme p\u00ebr pun\u00eb me API","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>P\u00ebrsh\u00ebndetje t\u00eb gjith\u00ebve! Sot d\u00ebshirojm\u00eb t\u00eb paraqesim p\u00ebr publikun IT produktin ton\u00eb \u2014 IDE p\u00ebr pun\u00ebn me API. <noindex><a rel=\"nofollow\" href=\"https:\/\/client.testmace.com\">TestMace<\/a><\/noindex>. Ndoshta disa nga ju tashm\u00eb e dini p\u00ebr ne nga <noindex><a rel=\"nofollow\" href=\"https:\/\/testmace.com\/blog\/\">artikujt e m\u00ebparsh\u00ebm<\/a><\/noindex>. Megjithat\u00eb, nuk kishte nj\u00eb p\u00ebrmbledhje gjith\u00ebp\u00ebrfshir\u00ebse t\u00eb mjetit, prandaj po e largojm\u00eb k\u00ebt\u00eb mang\u00ebsi t\u00eb pak\u00ebndshme.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"TestMace \u2014 nj\u00eb IDE e fuqishme p\u00ebr pun\u00eb me API\" src=\"\/wp-content\/uploads\/2019\/12\/798c0783510a07e7fd162bdf14151c29.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h1 id=\"motivaciya\">Motivimi<\/h1>\n<p><\/p>\n<p>D\u00ebshirojm\u00eb t\u00eb fillojm\u00eb me at\u00eb se si, n\u00eb fakt, erdh\u00ebm n\u00eb k\u00ebt\u00eb jet\u00eb dhe vendos\u00ebm t\u00eb krijojm\u00eb mjetin ton\u00eb p\u00ebr pun\u00eb t\u00eb avancuar me API. Le t\u00eb fillojm\u00eb me list\u00ebn e funksionaliteteve q\u00eb duhet t\u00eb ket\u00eb produkti, p\u00ebr t\u00eb cilin, sipas mendimit ton\u00eb, mund t\u00eb themi se \u00ebsht\u00eb 'IDE p\u00ebr pun\u00ebn me API':<\/p>\n<p><\/p>\n<ul>\n<li>Krijimi dhe ekzekutimi i k\u00ebrkesave dhe skenar\u00ebve (sekuenca k\u00ebrkesash)<\/li>\n<li>Shkrimi i testeve t\u00eb ndryshme<\/li>\n<li>Gjenarimi i testeve<\/li>\n<li>Puna me p\u00ebrshkrimin e API, p\u00ebrfshir\u00eb importin nga formate t\u00eb till\u00eb si Swagger, OpenAPI, WADL etj.<\/li>\n<li>Mocking i k\u00ebrkesave<\/li>\n<li>Support i mir\u00eb p\u00ebr nj\u00eb ose m\u00eb shum\u00eb gjuh\u00eb programuese p\u00ebr shkrimin e skripteve, duke p\u00ebrfshir\u00eb integrimin me bibliotekat popullore<\/li>\n<li>etj.<\/li>\n<\/ul>\n<p><\/p>\n<p>Lista mund t\u00eb plot\u00ebsohet sipas d\u00ebshir\u00ebs. \u00cbsht\u00eb e r\u00ebnd\u00ebsishme t\u00eb krijohet jo vet\u00ebm vet\u00eb IDE, por gjithashtu nj\u00eb infrastruktur\u00eb t\u00eb caktuar, si\u00e7 \u00ebsht\u00eb sinkronizimi cloud, mjetet e komand\u00ebs, sh\u00ebrbimi i monitorimit online etj. N\u00eb fund t\u00eb fundit, tendencat e viteve t\u00eb fundit na diktuan jo vet\u00ebm nj\u00eb funksionalitet t\u00eb fuqish\u00ebm t\u00eb aplikacionit, por edhe nj\u00eb nd\u00ebrfaqe t\u00eb k\u00ebndshme.<\/p>\n<p><\/p>\n<p>P\u00ebr k\u00eb \u00ebsht\u00eb i nevojsh\u00ebm nj\u00eb mjet i till\u00eb? E gjith\u00eb kjo \u00ebsht\u00eb e qart\u00eb, p\u00ebr t\u00eb gjith\u00eb ata q\u00eb jan\u00eb ndonj\u00ebher\u00eb t\u00eb lidhur me zhvillimin dhe testimin e API \u2014 zhvilluesit dhe testuesit =). Dhe ndon\u00ebse p\u00ebr t\u00eb par\u00ebt shpesh mjafton t\u00eb kryejn\u00eb k\u00ebrkesa t\u00eb vetme dhe skenar\u00eb t\u00eb thjesht\u00eb, p\u00ebr testuesit kjo \u00ebsht\u00eb nj\u00eb nga mjetet kryesore, e cila, p\u00ebrve\u00e7 t\u00eb tjerash, duhet t\u00eb p\u00ebrfshij\u00eb nj\u00eb mekaniz\u00ebm t\u00eb fuqish\u00ebm p\u00ebr shkrimin e testeve me mund\u00ebsin\u00eb e ekzekutimit t\u00eb tyre n\u00eb CI.<\/p>\n<p><\/p>\n<p>Pra, duke ndjekur k\u00ebto orientime, filluam t\u00eb krijojm\u00eb produktin ton\u00eb. Le t\u00eb shohim se \u00e7far\u00eb kemi arritur deri n\u00eb k\u00ebt\u00eb faz\u00eb.<\/p>\n<p><\/p>\n<h1 id=\"bystryy-start\">Nisja e shpejt\u00eb<\/h1>\n<p><\/p>\n<p>Le t\u00eb fillojm\u00eb me takimin e par\u00eb me aplikacionin. Mund ta shkarkoni <noindex><a rel=\"nofollow\" href=\"https:\/\/client.testmace.com\/\">n\u00eb faqen ton\u00eb<\/a><\/noindex>. N\u00eb k\u00ebt\u00eb moment mb\u00ebshteten t\u00eb tri platformat kryesore \u2014 Windows, Linux, MacOS. Shkarkoni, instaloni, hapni. N\u00eb fillim, mund t\u00eb shihni dritaren e m\u00ebposhtme:<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"TestMace \u2014 nj\u00eb IDE e fuqishme p\u00ebr pun\u00eb me API\" src=\"\/wp-content\/uploads\/2019\/12\/dbbd26d8656488cd11716f7dbede9ec7.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Klikoni n\u00eb plusin n\u00eb pjes\u00ebn e sip\u00ebrme t\u00eb zon\u00ebs s\u00eb p\u00ebrmbajtjes p\u00ebr t\u00eb krijuar k\u00ebrkes\u00ebn e par\u00eb. Tab-i me k\u00ebrkes\u00ebn duket si m\u00eb posht\u00eb:<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"TestMace \u2014 nj\u00eb IDE e fuqishme p\u00ebr pun\u00eb me API\" src=\"\/wp-content\/uploads\/2019\/12\/d76205f43ec821018642a3d354532e7e.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Le t\u00eb ndalemi pak m\u00eb gjat\u00eb n\u00eb t\u00eb. Interfaci i k\u00ebrkes\u00ebs i ngjan shum\u00eb atij t\u00eb klient\u00ebve popullar\u00eb t\u00eb REST, gj\u00eb q\u00eb leht\u00ebson migronin nga k\u00ebto mjete. Le t\u00eb b\u00ebjm\u00eb k\u00ebrkes\u00ebn e par\u00eb n\u00eb url <noindex><a rel=\"nofollow\" href=\"https:\/\/next.json-generator.com\/api\/json\/get\/NJv-NT-U8\">https:\/\/next.json-generator.com\/api\/json\/get\/NJv-NT-U8<\/a><\/noindex><\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"TestMace \u2014 nj\u00eb IDE e fuqishme p\u00ebr pun\u00eb me API\" src=\"\/wp-content\/uploads\/2019\/12\/19e639baa1e0d51f1a40b76ae9144d6c.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>N\u00eb p\u00ebrgjith\u00ebsi, n\u00eb shikim t\u00eb par\u00eb, panele e p\u00ebrgjigjeve nuk sjell ndonj\u00eb befasim. Megjithat\u00eb, do t'i drejtoj v\u00ebmendjen tuaj disa pikave:<\/p>\n<p><\/p>\n<ol>\n<li>Trupi i p\u00ebrgjigjes paraqitet si nj\u00eb pem\u00eb, e cila, nga nj\u00ebra an\u00eb, shton informueshm\u00ebrin\u00eb dhe nga ana tjet\u00ebr lejon t\u00eb shtojm\u00eb disa ve\u00e7ori interesante, p\u00ebr t\u00eb cilat do flasim m\u00eb posht\u00eb<\/li>\n<li>Ekziston nj\u00eb sked\u00eb Assertions, ku shfaqet lista e testeve p\u00ebr k\u00ebt\u00eb k\u00ebrkes\u00eb<\/li>\n<\/ol>\n<p><\/p>\n<p>Si\u00e7 mund t\u00eb v\u00ebreni, mjeti yn\u00eb mund t\u00eb p\u00ebrdoret si nj\u00eb klient i p\u00ebrshtatsh\u00ebm i REST. Megjithat\u00eb, ne nuk do t\u00eb ishim k\u00ebtu n\u00ebse kapacitetet e tij do t\u00eb kufizoheshin vet\u00ebm n\u00eb d\u00ebrgimin e k\u00ebrkesave. M\u00eb pas, do p\u00ebrshkruaj konceptet kryesore dhe funksionalitetet e TestMace.<\/p>\n<p><\/p>\n<h1 id=\"osnovnye-ponyatiya-i-vozmozhnosti\">Koncepte kryesore dhe mund\u00ebsi<\/h1>\n<p><\/p>\n<h2 id=\"uzel\">Nyja<\/h2>\n<p><\/p>\n<p>Funksionaliteti i TestMace \u00ebsht\u00eb i ndar\u00eb n\u00eb lloje t\u00eb ndryshme nyjash. N\u00eb shembullin e m\u00ebsip\u00ebrm ne demonstruam pun\u00ebn e nyj\u00ebs RequestStep. Megjithat\u00eb, aktualisht n\u00eb aplikacion jan\u00eb gjithashtu t\u00eb disponueshme lloje t\u00eb tjera nyjash:<\/p>\n<p><\/p>\n<ul>\n<li>RequestStep. Kjo \u00ebsht\u00eb nj\u00eb nyj\u00eb, me an\u00eb t\u00eb s\u00eb cil\u00ebs mund t\u00eb krijoni nj\u00eb k\u00ebrkes\u00eb. Si nj\u00eb element f\u00ebmijor, ajo mund t\u00eb ket\u00eb vet\u00ebm nj\u00eb nyj\u00eb Assertion.<\/li>\n<li>Assertion. Nyj\u00eb q\u00eb p\u00ebrdoret p\u00ebr t\u00eb shkruar teste. Mund t\u00eb jet\u00eb nj\u00eb nyj\u00eb f\u00ebmijore vet\u00ebm p\u00ebr nyj\u00ebn RequestStep.<\/li>\n<li>Folder. Lejon grupimin e nyjave Folder dhe RequestStep brenda saj.<\/li>\n<li>Project. Kjo \u00ebsht\u00eb nyja rr\u00ebnj\u00ebsore, krijohet automatikisht me krijimin e projektit. N\u00eb t\u00eb tjera p\u00ebrs\u00ebrit funksionalitetet e nyj\u00ebs Folder.<\/li>\n<li>Link. Nj\u00eb lidhje n\u00eb nyj\u00ebn Folder ose RequestStep. Lejon rip\u00ebrdorimin e k\u00ebrkesave dhe skenar\u00ebve.<\/li>\n<li>etj.<\/li>\n<\/ul>\n<p><\/p>\n<p>Nyjat vendosen n\u00eb scratches (panele n\u00eb k\u00ebndin e majt\u00eb posht\u00eb, q\u00eb sh\u00ebrben p\u00ebr krijimin e shpejt\u00eb t\u00eb k\u00ebrkesave 't\u00eb nj\u00ebhershme') dhe n\u00eb projekt (panele n\u00eb k\u00ebndin e majt\u00eb lart), n\u00eb t\u00eb cilin do t\u00eb ndalemi m\u00eb shum\u00eb.<\/p>\n<p><\/p>\n<h2 id=\"proekt\">Projekti<\/h2>\n<p><\/p>\n<p>Kur t\u00eb startoni aplikacionin, mund t\u00eb keni v\u00ebn\u00eb re nj\u00eb rresht t\u00eb vet\u00ebm Project n\u00eb k\u00ebndin e majt\u00eb lart. Ky \u00ebsht\u00eb rr\u00ebnj\u00ebsori i pem\u00ebs s\u00eb projektit. Kur projekti startohet, krijohet nj\u00eb projekt p\u00ebrkoh\u00ebsor, rruga e t\u00eb cilit varet nga sistemi operativ q\u00eb p\u00ebrdorni. N\u00eb \u00e7do moment mund t\u00eb transferoni projektin n\u00eb nj\u00eb vend m\u00eb t\u00eb p\u00ebrshtatsh\u00ebm p\u00ebr ju.<\/p>\n<p><\/p>\n<p>Q\u00ebllimi kryesor i projektit \u00ebsht\u00eb t\u00eb mund\u00ebsoj\u00eb ruajtjen e punimeve n\u00eb sistemin e skedar\u00ebve dhe sinkronizimin e m\u00ebtejsh\u00ebm p\u00ebrmes sistemeve t\u00eb kontrollit t\u00eb versioneve, ekzekutimin e skenar\u00ebve n\u00eb CI, rishikimin e ndryshimeve etj.<\/p>\n<p><\/p>\n<h2 id=\"peremennye\">Variablat<\/h2>\n<p><\/p>\n<p>Variablat jan\u00eb nj\u00eb nga mekanizmat kryesor\u00eb t\u00eb aplikacionit. Ata prej jush q\u00eb punoni me mjete t\u00eb tilla si TestMace, ndoshta e keni kuptuar p\u00ebr \u00e7far\u00eb do flitet. Pra, variablat jan\u00eb nj\u00eb m\u00ebnyr\u00eb p\u00ebr ruajtjen e t\u00eb dh\u00ebnave t\u00eb p\u00ebrbashk\u00ebta dhe komunikimin mes nodave. Nj\u00eb analog t\u00eb till\u00eb jan\u00eb variablat e ambientit n\u00eb Postman ose Insomnia. Megjithat\u00eb, ne kemi shkuar m\u00eb tej dhe e kemi zhvilluar tem\u00ebn. N\u00eb TestMace, variablat mund t\u00eb vendosen n\u00eb nivel nodash. \u00c7do nod\u00eb. Gjithashtu ekziston nj\u00eb mekaniz\u00ebm trash\u00ebgimi t\u00eb variablave nga pararend\u00ebsit dhe mbulimi i variablave n\u00eb pasardh\u00ebs. P\u00ebrve\u00e7 k\u00ebsaj, ekziston nj\u00eb s\u00ebr\u00eb variablesh t\u00eb integruar, emrat e variablave t\u00eb integruar fillojn\u00eb me <code>$<\/code>. Ja disa prej tyre:<\/p>\n<p><\/p>\n<ul>\n<li><code>$prevStep<\/code> \u2014 referenc\u00eb p\u00ebr variablat e nod\u00ebs s\u00eb kaluar<\/li>\n<li><code>$nextStep<\/code> \u2014 referenc\u00eb p\u00ebr variablat e nod\u00ebs s\u00eb ardhshme<\/li>\n<li><code>$parent<\/code> \u2014 po e nj\u00ebjta gj\u00eb, por p\u00ebr pararend\u00ebsin<\/li>\n<li><code>$response<\/code> \u2014 p\u00ebrgjigjja nga serveri<\/li>\n<li><code>$env<\/code> \u2014 variablat aktuale t\u00eb ambientit<\/li>\n<li><code>$dynamicVar<\/code> \u2014 variablat dinamike, t\u00eb krijuara gjat\u00eb ekzekutimit t\u00eb skenarit ose k\u00ebrkes\u00ebs<\/li>\n<\/ul>\n<p><\/p>\n<p><code>$env<\/code> \u2014 n\u00eb thelb, jan\u00eb variablat e zakonshme t\u00eb nivelit projekti, megjithat\u00eb, grupi i variablave t\u00eb ambientit ndryshon sipas ambientit t\u00eb zgjedhur. <\/p>\n<p><\/p>\n<p>Qasja n\u00eb variab\u00ebl b\u00ebhet p\u00ebrmes <code>${variable_name}<\/code><br \/>\nSi vler\u00eb e variablit mund t\u00eb jet\u00eb nj\u00eb variab\u00ebl tjet\u00ebr, ose madje nj\u00eb shprehje e t\u00ebr\u00eb. P\u00ebr shembull, si variab\u00ebl url mund t\u00eb jet\u00eb nj\u00eb shprehje e till\u00eb<br \/>\n<code>http:\/\/${host}:${port}\/${endpoint}<\/code>.<\/p>\n<p><\/p>\n<p>Ve\u00e7an\u00ebrisht vlen t\u00eb theksohet mund\u00ebsia e caktimit t\u00eb variablave gjat\u00eb ekzekutimit t\u00eb skriptit. P\u00ebr shembull, shpesh shfaqet nevoja p\u00ebr t\u00eb ruajtur t\u00eb dh\u00ebnat e autorizimit (token ose t\u00eb gjith\u00eb titullin), q\u00eb erdh\u00ebn nga serveri pas nj\u00eb logimi t\u00eb suksessh\u00ebm. TestMace lejon ruajtjen e k\u00ebtyre t\u00eb dh\u00ebnave n\u00eb variablat dinamike t\u00eb nj\u00ebrit prej pararend\u00ebsve. P\u00ebr t\u00eb shmangur kolizionet me variablat \"statike\" tashm\u00eb ekzistuese, variablat dinamike jan\u00eb vendosur n\u00eb nj\u00eb objekt t\u00eb ve\u00e7ant\u00eb. <code>$dynamicVar<\/code>. <\/p>\n<p><\/p>\n<h2 id=\"scenarii\">Skenar\u00ebt<\/h2>\n<p><\/p>\n<p>Duke p\u00ebrdorur t\u00eb gjitha mund\u00ebsit\u00eb e lartp\u00ebrmendura, ju mund t\u00eb realizoni skenar\u00eb t\u00eb t\u00ebr\u00eb k\u00ebrkesash. P\u00ebr shembull, krijimi i nj\u00eb entiteti -&gt; k\u00ebrkesa p\u00ebr entitetin -&gt; fshirja e entitetit. N\u00eb k\u00ebt\u00eb rast, ju mund t\u00eb p\u00ebrdorni nod\u00ebn Folder p\u00ebr grupimin e disa nodave RequestStep.<\/p>\n<p><\/p>\n<h2 id=\"avtodopolnenie-i-podsvetka-znacheniya-vyrazheniya\">Plot\u00ebsimi automatik dhe ndri\u00e7imi i vler\u00ebs s\u00eb shprehjes<\/h2>\n<p><\/p>\n<p>P\u00ebr nj\u00eb pun\u00eb t\u00eb k\u00ebndshme me variablat (dhe jo vet\u00ebm) \u00ebsht\u00eb e nevojshme autokompletimi. Natyrisht, \u00ebsht\u00eb e r\u00ebnd\u00ebsishme edhe ndri\u00e7imi i vler\u00ebs s\u00eb shprehjes, p\u00ebr t\u00eb qen\u00eb m\u00eb e leht\u00eb dhe m\u00eb ndihmuese t\u00eb sakt\u00ebsohet \u00e7far\u00eb ka t\u00eb b\u00ebj\u00eb ndonj\u00eb variab\u00ebl. Ky \u00ebsht\u00eb pik\u00ebrisht rasti kur \u00ebsht\u00eb m\u00eb mir\u00eb t\u00eb shoh\u00ebsh nj\u00eb her\u00eb sesa t\u00eb d\u00ebgjosh nj\u00ebqind her\u00eb:<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"TestMace \u2014 nj\u00eb IDE e fuqishme p\u00ebr pun\u00eb me API\" src=\"\/wp-content\/uploads\/2019\/12\/cf9d30c9623b18575825d4282b8fe3e3.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Vlen t\u00eb p\u00ebrmendet se autokompletimi \u00ebsht\u00eb realizuar jo vet\u00ebm p\u00ebr variablat, por edhe, p\u00ebr shembull, p\u00ebr titujt, vlerat e titujve t\u00eb caktuar (p.sh., autokompletimi p\u00ebr titullin Content-Type), protokollet dhe shum\u00eb gj\u00ebra t\u00eb tjera. Lista vazhdon t\u00eb plot\u00ebsohet me rritjen e aplikacionit.<\/p>\n<p><\/p>\n<h2 id=\"undoredo\">Undo\/redo<\/h2>\n<p><\/p>\n<p>Anulimi\/rip\u00ebrs\u00ebritja e ndryshimeve \u00ebsht\u00eb nj\u00eb gj\u00eb shum\u00eb e dobishme, por p\u00ebr ndonj\u00eb arsye nuk \u00ebsht\u00eb realizuar kudo (dhe mjete p\u00ebr t\u00eb punuar me API nuk jan\u00eb p\u00ebrjashtim). Por ne nuk jemi ata!) Undo\/redo \u00ebsht\u00eb realizuar n\u00eb kuad\u00ebr t\u00eb t\u00eb gjith\u00eb projektit, \u00e7far\u00eb lejon t\u00eb anulohet jo vet\u00ebm redaktimi i nj\u00eb nodi t\u00eb caktuar, por edhe krijimi, fshirja, zhvendosja, etj. Operacionet m\u00eb kritike k\u00ebrkojn\u00eb konfirmim.<\/p>\n<p><\/p>\n<h2 id=\"sozdanie-testov\">Krijimi i testeve<\/h2>\n<p><\/p>\n<p>P\u00ebr krijimin e testeve \u00ebsht\u00eb p\u00ebrgjegj\u00ebs nodi i Assertit. Nj\u00eb nga ve\u00e7orit\u00eb kryesore \u00ebsht\u00eb mund\u00ebsia e krijimit t\u00eb testeve pa programim, duke p\u00ebrdorur redaktor\u00ebt e integruar. <\/p>\n<p><\/p>\n<p>Nodi i Assertion p\u00ebrb\u00ebhet nga nj\u00eb grup assertion-esh. \u00c7do assertion ka nj\u00eb tip t\u00eb vetin, p\u00ebr momentin ekzistojn\u00eb disa tipe assertion-esh.<\/p>\n<p><\/p>\n<ol>\n<li>\n<p>Krahasimi i vlerave \u2014 thjesht krahason 2 vlera. Ka disa operator\u00eb krahasimi \u00abe barabart\u00eb\u00bb, \u00abnuk \u00ebsht\u00eb e barabart\u00eb\u00bb, \u00abm\u00eb e madhe\u00bb, \u00abm\u00eb e madhe ose e barabart\u00eb\u00bb, \u00abm\u00eb e vog\u00ebl\u00bb, \u00abm\u00eb e vog\u00ebl ose e barabart\u00eb\u00bb.<\/p>\n<p>\n<\/li>\n<li>\n<p>P\u00ebrfshin vler\u00ebn \u2014 kontrollon prani t\u00eb nj\u00eb n\u00ebnstrobe n\u00eb vargun.<\/p>\n<p>\n<\/li>\n<li>\n<p>XPath \u2014 kontrollon se \u00e7far\u00eb vler\u00eb ndodhet n\u00eb XML n\u00eb baz\u00eb t\u00eb selektorit t\u00eb caktuar.<\/p>\n<p>\n<\/li>\n<li>\n<p>Assertion JavaScript \u2014 nj\u00eb skript i rast\u00ebsish\u00ebm n\u00eb gjuh\u00ebn javascript, i cili kthen true n\u00eb rast suksesi dhe false n\u00eb rast d\u00ebshtimi.<\/p>\n<p>\n<\/li>\n<\/ol>\n<p><\/p>\n<p>Dua t\u00eb theksoj se vet\u00ebm e fundit k\u00ebrkon nga p\u00ebrdoruesi aft\u00ebsi programimi, 3 assertion-t e tjera krijohen me an\u00eb t\u00eb nd\u00ebrfaqes grafike. Ja, si duket dialogu p\u00ebr krijimin e nj\u00eb assertion-i p\u00ebr krahasimin e vlerave:<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"TestMace \u2014 nj\u00eb IDE e fuqishme p\u00ebr pun\u00eb me API\" src=\"\/wp-content\/uploads\/2019\/12\/e71e11fb0fb664d1d9751a71fbdcc850.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Krejti n\u00eb tort\u00eb \u00ebsht\u00eb krijimi i shpejt\u00eb i assertion-esh nga p\u00ebrgjigjja, thjesht shikoni k\u00ebt\u00eb!<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"TestMace \u2014 nj\u00eb IDE e fuqishme p\u00ebr pun\u00eb me API\" src=\"\/wp-content\/uploads\/2019\/12\/3b86084419339a7a05a3548df5c12d6a.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Megjith\u00ebse k\u00ebto assertion-e kan\u00eb kufizime t\u00eb qarta, kur p\u00ebrballeni me to, mund t\u00eb p\u00ebrdorni javascript assertion. Edhe k\u00ebtu, TestMace ofron nj\u00eb mjedis t\u00eb rehatsh\u00ebm me autokompaktim, ndri\u00e7im sintaksor dhe madje edhe nj\u00eb analizues static.<\/p>\n<p><\/p>\n<h2 id=\"opisanie-api\">P\u00ebrshkrimi i API<\/h2>\n<p><\/p>\n<p>TestMace ofron mund\u00ebsin\u00eb p\u00ebr t\u00eb p\u00ebrdorur API dhe p\u00ebr ta dokumentuar at\u00eb. P\u00ebrshkrimi ka nj\u00eb struktur\u00eb hierarkike dhe p\u00ebrshtatet natyrsh\u00ebm me projektin e p\u00ebrgjithsh\u00ebm. P\u00ebrve\u00e7 k\u00ebsaj, aktualisht ekziston mund\u00ebsia e importit t\u00eb p\u00ebrshkrimit t\u00eb API nga formatet Swagger 2.0 \/ OpenAPI 3.0. P\u00ebrshkrimi nuk \u00ebsht\u00eb thjesht nj\u00eb ngarkes\u00eb e vdekur, por integrohet ngusht\u00eb me pjes\u00ebn tjet\u00ebr t\u00eb projektit, duke ofruar autokompaktimin e URL-ve, titujve HTTP, parametrave t\u00eb pyetjeve dhe m\u00eb shum\u00eb, dhe n\u00eb t\u00eb ardhmen planifikojm\u00eb t\u00eb shtojm\u00eb teste p\u00ebr p\u00ebrputhshm\u00ebrin\u00eb e p\u00ebrgjigjeve me p\u00ebrshkrimin e API.<\/p>\n<p><\/p>\n<h2 id=\"sharing-nod\">Shirimi i nodave<\/h2>\n<p><\/p>\n<p>Rasti: do t\u00eb donit t\u00eb ndanit nj\u00eb k\u00ebrkes\u00eb problematike apo madje nj\u00eb skenar t\u00eb t\u00ebr\u00eb me nj\u00eb koleg apo thjesht ta bashkoni at\u00eb me nj\u00eb bug. TestMace mbulon edhe k\u00ebt\u00eb rast: aplikacioni lejon serializimin e \u00e7do node dhe madje t\u00eb nj\u00eb n\u00ebnpeme n\u00eb nj\u00eb URL. Kopjoni-ngjitni dhe tashm\u00eb e keni transferuar leht\u00ebsisht k\u00ebrkes\u00ebn n\u00eb nj\u00eb makin\u00eb tjet\u00ebr ose projekt.<\/p>\n<p><\/p>\n<h2 id=\"chelovekochitaemyy-format-hraneniya-proekta\">Formati i lexuesh\u00ebm nga njeriu p\u00ebr ruajtjen e projektit<\/h2>\n<p><\/p>\n<p>Aktualisht, \u00e7do nyje ruhet n\u00eb nj\u00eb skedar t\u00eb ve\u00e7ant\u00eb me prapashtes\u00ebn yml (ashtu si n\u00eb rastin e nod\u00ebs Assertion), ose n\u00eb nj\u00eb dosje me emrin e nod\u00ebs dhe skedarin index.yml n\u00eb t\u00eb.<br \/>\nJa si duket p\u00ebr shembull skedari me k\u00ebrkes\u00ebn q\u00eb b\u00ebm\u00eb n\u00eb p\u00ebrmbledhjen m\u00eb lart:<\/p>\n<p>\n<b class=\"spoiler_title\">index.yml<\/b><\/p>\n<pre><code class=\"ruby\">children: []\nvariables: {}\ntype: RequestStep\nassignVariables: []\nrequestData:\n  request:\n    method: GET\n    url: 'https:\/\/next.json-generator.com\/api\/json\/get\/NJv-NT-U8'\n  headers: []\n  disabledInheritedHeaders: []\n  params: []\n  body:\n    type: Json\n    jsonBody: ''\n    xmlBody: ''\n    textBody: ''\n    formData: []\n    file: ''\n    formURLEncoded: []\n  strictSSL: Inherit\nauthData:\n  type: inherit\nname: Scratch 1<\/code><\/pre>\n<p><\/p>\n<p>Si\u00e7 e shihni, gjith\u00e7ka \u00ebsht\u00eb shum\u00eb e qart\u00eb. N\u00ebse d\u00ebshironi, ky format mund t\u00eb redaktohet shum\u00eb leht\u00ebsisht edhe manualisht.<\/p>\n<p><\/p>\n<p>Hierarkia e dosjeve n\u00eb sistemin e skedar\u00ebve p\u00ebrs\u00ebrit sakt\u00ebsisht hierarkin\u00eb e nodave n\u00eb projekt. P\u00ebr shembull, nj\u00eb skenar i till\u00eb:<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"TestMace \u2014 nj\u00eb IDE e fuqishme p\u00ebr pun\u00eb me API\" src=\"\/wp-content\/uploads\/2019\/12\/8f08d934a977e4fdacd269f4ea0c34b5.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>P\u00ebrmblidhet n\u00eb sistemin e skedar\u00ebve n\u00eb k\u00ebto struktura (tregohet vet\u00ebm hierarkia e dosjeve, por thelbi \u00ebsht\u00eb i qart\u00eb)<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"TestMace \u2014 nj\u00eb IDE e fuqishme p\u00ebr pun\u00eb me API\" src=\"\/wp-content\/uploads\/2019\/12\/60a54704979f5a77ee05735fd8ebe824.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>\u00c7ka e leht\u00ebson procesin e rishikimit t\u00eb projektit.<\/p>\n<p><\/p>\n<h2 id=\"import-iz-postman\">Importi nga Postman<\/h2>\n<p><\/p>\n<p>Pas pas lexhimit t\u00eb lartp\u00ebrmendur, disa p\u00ebrdorues do t\u00eb d\u00ebshironin t\u00eb provonin (n\u00eb fakt?) produktin e ri ose (p\u00ebr \u00e7far\u00eb \u00ebsht\u00eb kjo!) t\u00eb p\u00ebrdorin at\u00eb n\u00eb projektin e tyre. Megjithat\u00eb, migrimi mund t\u00eb ndaloj\u00eb nj\u00eb num\u00ebr t\u00eb madh zhvillimesh t\u00eb b\u00ebra n\u00eb Postman. P\u00ebr k\u00ebto raste, TestMace mb\u00ebshtet importimin e koleksioneve nga Postman. Aktualisht mb\u00ebshtetet importi pa testet, megjithat\u00eb n\u00eb t\u00eb ardhmen nuk p\u00ebrjashtohet mb\u00ebshtetje p\u00ebr to.<\/p>\n<p><\/p>\n<h1 id=\"plany\">Planet<\/h1>\n<p><\/p>\n<p>Shpresoj se shum\u00eb nga ata q\u00eb e lexuan deri n\u00eb k\u00ebt\u00eb pik\u00eb e p\u00eblqyen produktin ton\u00eb. Megjithat\u00eb, kjo nuk \u00ebsht\u00eb gjith\u00e7ka! Puna mbi produktin po vazhdon me ritme t\u00eb plota dhe k\u00ebtu jan\u00eb disa karakteristika q\u00eb planifikojm\u00eb t\u00eb shtojm\u00eb s\u00eb shpejti.<\/p>\n<p><\/p>\n<h2 id=\"oblachnaya-sinhronizaciya\">Sinkronizimi n\u00eb cloud<\/h2>\n<p><\/p>\n<p>Nj\u00eb nga karakteristikat m\u00eb t\u00eb k\u00ebrkuara. Aktualisht, ne ofrojm\u00eb si mund\u00ebsi sinkronizimin p\u00ebrmes sistemeve t\u00eb kontrollit t\u00eb versioneve, p\u00ebr k\u00ebt\u00eb arsye, ne po e b\u00ebjm\u00eb formatin m\u00eb miq\u00ebsor p\u00ebr k\u00ebt\u00eb lloj ruajtjeje. Megjithat\u00eb, jo t\u00eb gjith\u00eb u p\u00ebrshtaten k\u00ebtij m\u00ebnyre punuese, prandaj planifikohet t\u00eb shtohet nj\u00eb mekaniz\u00ebm sinkronizimi q\u00eb \u00ebsht\u00eb i njohur p\u00ebr shum\u00eb. <\/p>\n<p><\/p>\n<h2 id=\"cli\">CLI<\/h2>\n<p><\/p>\n<p>Si\u00e7 u tha m\u00eb sip\u00ebr, produktet e nivelit IDE nuk mund t\u00eb shkojn\u00eb pa integrime t\u00eb ndryshme me aplikacione ose rrjedha pune ekzistuese. CLI \u00ebsht\u00eb pik\u00ebrisht ajo q\u00eb nevojitet p\u00ebr integrimin e testeve t\u00eb shkruara n\u00eb TestMace n\u00eb procesin e integrimit t\u00eb vazhduesh\u00ebm. Puna mbi CLI po vazhdon me ritme t\u00eb shpejta, n\u00eb versionet e hershme do t\u00eb ket\u00eb nj\u00eb projekt me nj\u00eb raport t\u00eb thjesht\u00eb n\u00eb konsol. M\u00eb von\u00eb, planifikohet t\u00eb shtohet raportimi n\u00eb formatin JUnit.<\/p>\n<p><\/p>\n<h2 id=\"plaginnaya-sistema\">Sistemi i plugineve<\/h2>\n<p><\/p>\n<p>Pavar\u00ebsisht fuqis\u00eb son\u00eb, numri i rasteve q\u00eb k\u00ebrkojn\u00eb zgjidhje \u00ebsht\u00eb i paan\u00eb. N\u00eb fund t\u00eb fundit, ka detyra q\u00eb jan\u00eb specifike p\u00ebr nj\u00eb projekt t\u00eb caktuar. Pik\u00ebrisht p\u00ebr k\u00ebt\u00eb arsye, ne planifikojm\u00eb t\u00eb shtojm\u00eb SDK p\u00ebr zhvillimin e plugineve dhe \u00e7do programues do t\u00eb mund t\u00eb shtoj\u00eb funksionalitet sipas d\u00ebshir\u00ebs.<\/p>\n<p><\/p>\n<h2 id=\"rasshirenie-assortimenta-tipov-uzlov\">Zgjerimi i gam\u00ebs s\u00eb tipave t\u00eb nyjeve<\/h2>\n<p><\/p>\n<p>Ky set nyjesh nuk mbulon t\u00eb gjith\u00eb rastet e nevojshme p\u00ebr p\u00ebrdoruesin. Nyjet q\u00eb planifikojm\u00eb t\u00eb shtojm\u00eb jan\u00eb:<\/p>\n<p><\/p>\n<ul>\n<li>Nyja Script \u2014 transformon dhe vendos t\u00eb dh\u00ebnat duke p\u00ebrdorur js dhe API-n\u00eb p\u00ebrkat\u00ebse. Duke p\u00ebrdorur k\u00ebt\u00eb lloj nyje, mund t\u00eb krijoni di\u00e7ka si skedar\u00ebt pre-request dhe post-request n\u00eb Postman.<\/li>\n<li>Nyja GraphQL \u2014 mb\u00ebshtetje p\u00ebr graphql<\/li>\n<li>Nyja Custom assertion \u2014 do t\u00eb lejoj\u00eb zgjerimin e setit t\u00eb assertion-ave ekzistuese n\u00eb projekt<br \/>\nNatyrisht, ky nuk \u00ebsht\u00eb nj\u00eb list\u00eb p\u00ebrfundimtare, ajo do t\u00eb plot\u00ebsohet vazhdimisht, p\u00ebrfshir\u00eb edhe feedback-un tuaj.<\/li>\n<\/ul>\n<p><\/p>\n<h1 id=\"faq\">FAQ<\/h1>\n<p><\/p>\n<p><strong>\u00c7far\u00eb e dallon ju nga Postman?<\/strong><\/p>\n<p><\/p>\n<ol>\n<li>Koncepti i nodave q\u00eb lejon praktisht nj\u00eb zgjerim t\u00eb pakufizuar t\u00eb funksionalitetit t\u00eb projektit<\/li>\n<li>Formati i lexuesh\u00ebm p\u00ebr njer\u00ebzit t\u00eb projektit, duke e ruajtur at\u00eb n\u00eb sistemin e skedar\u00ebve, q\u00eb e leht\u00ebson pun\u00ebn me sistemet e kontrollit t\u00eb versioneve<\/li>\n<li>Mund\u00ebsia e krijimit t\u00eb testeve pa programim dhe mb\u00ebshtetje m\u00eb e avancuar p\u00ebr js n\u00eb redaktorin e testeve (plot\u00ebsimi automatik, analizuesi statik)<\/li>\n<li>Plot\u00ebsim automatik i avancuar dhe ndri\u00e7imi i vler\u00ebs aktuale t\u00eb variablave<\/li>\n<\/ol>\n<p><\/p>\n<p><strong>A \u00ebsht\u00eb ky nj\u00eb produkt open-source?<\/strong><\/p>\n<p><\/p>\n<p>Jo, n\u00eb k\u00ebt\u00eb moment kodet burimore jan\u00eb t\u00eb mbyllura, megjithat\u00eb n\u00eb t\u00eb ardhmen ne shikojm\u00eb mund\u00ebsin\u00eb e hapjes s\u00eb kodit burimor<\/p>\n<p><\/p>\n<p><strong>Si jetoni ju?)<\/strong><\/p>\n<p><\/p>\n<p>P\u00ebrve\u00e7 versionit falas, ne planifikojm\u00eb t\u00eb lan\u00e7ojm\u00eb nj\u00eb version t\u00eb paguar t\u00eb produktit. Kjo do t\u00eb p\u00ebrfshij\u00eb s\u00eb pari gj\u00ebrat q\u00eb k\u00ebrkojn\u00eb nj\u00eb pjes\u00eb serverike, p\u00ebr shembull, sinkronizimin.<\/p>\n<p><\/p>\n<h1 id=\"zaklyuchenie\">P\u00ebrfundim<\/h1>\n<p><\/p>\n<p>Projekti yn\u00eb po ec\u00ebn me hapa t\u00eb m\u00ebdhenj drejt nj\u00eb l\u00ebshimi stabil. Megjithat\u00eb, tashm\u00eb produkti \u00ebsht\u00eb n\u00eb p\u00ebrdorim dhe vler\u00ebsimet pozitive nga p\u00ebrdoruesit tan\u00eb t\u00eb hersh\u00ebm e konfirmojn\u00eb k\u00ebt\u00eb. Ne jemi aktivisht n\u00eb mbledhjen e feedback-ut, sepse pa nj\u00eb bashk\u00ebpunim t\u00eb ngusht\u00eb me komunitetin, \u00ebsht\u00eb e pamundur t\u00eb nd\u00ebrtohet nj\u00eb mjet i mir\u00eb. Mund t\u00eb na gjeni k\u00ebtu:<\/p>\n<p><\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/client.testmace.com\">Faqja zyrtare<\/a><\/noindex><\/p>\n<p><\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/t.me\/testmace\">Telegram<\/a><\/noindex><\/p>\n<p><\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/testmaceslackin.herokuapp.com\">Slack<\/a><\/noindex><\/p>\n<p><\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/www.facebook.com\/testmace\">Facebook<\/a><\/noindex><\/p>\n<p><\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/TestMace\/TestMace-issues\">Issues-tracker<\/a><\/noindex><\/p>\n<p><\/p>\n<p>Presim me padurim d\u00ebshirat dhe sugjerimet tuaja!<\/p>\n<p>Burimi: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/458372\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0412\u0441\u0435\u043c \u043f\u0440\u0438\u0432\u0435\u0442! \u0421\u0435\u0433\u043e\u0434\u043d\u044f \u043c\u044b \u0445\u043e\u0442\u0438\u043c \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u043d\u0430 \u0441\u0443\u0434 IT-\u043e\u0431\u0449\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0441\u0442\u0438 \u043d\u0430\u0448 \u043f\u0440\u043e\u0434\u0443\u043a\u0442 \u2014 IDE \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 API TestMace. \u0412\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0438\u0437 \u0432\u0430\u0441 \u0443\u0436\u0435 \u0437\u043d\u0430\u044e\u0442 \u043e \u043d\u0430\u0441 \u0438\u0437 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0438\u0445 \u0441\u0442\u0430\u0442\u0435\u0439. \u041e\u0434\u043d\u0430\u043a\u043e \u0432\u0441\u0435\u043e\u0431\u044a\u0435\u043c\u043b\u044e\u0449\u0435\u0433\u043e \u043e\u0431\u0437\u043e\u0440\u0430 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0430 \u043d\u0435 \u0431\u044b\u043b\u043e, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0443\u0441\u0442\u0440\u0430\u043d\u044f\u0435\u043c \u044d\u0442\u043e\u0442 \u0434\u043e\u0441\u0430\u0434\u043d\u044b\u0439 \u043d\u0435\u0434\u043e\u0441\u0442\u0430\u0442\u043e\u043a. \u041c\u043e\u0442\u0438\u0432\u0430\u0446\u0438\u044f \u0425\u043e\u0442\u0435\u043b\u043e\u0441\u044c \u0431\u044b \u043d\u0430\u0447\u0430\u0442\u044c \u0441 \u0442\u043e\u0433\u043e \u043a\u0430\u043a, \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e, \u043c\u044b \u043f\u0440\u0438\u0448\u043b\u0438 \u043a \u0442\u0430\u043a\u043e\u0439 \u0436\u0438\u0437\u043d\u0438 \u0438 \u0440\u0435\u0448\u0438\u043b\u0438 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[702],"tags":[],"class_list":["post-54187","post","type-post","status-publish","format-standard","hentry","category-news"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.1.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u0412\u0441\u0435\u043c \u043f\u0440\u0438\u0432\u0435\u0442! \u0421\u0435\u0433\u043e\u0434\u043d\u044f \u043c\u044b \u0445\u043e\u0442\u0438\u043c \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u043d\u0430 \u0441\u0443\u0434 IT-\u043e\u0431\u0449\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0441\u0442\u0438 \u043d\u0430\u0448 \u043f\u0440\u043e\u0434\u0443\u043a\u0442 \u2014 IDE \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 API TestMace.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/sq\/blog\/news\/testmace-moshhnaya-ide-dlya-raboty-s-api\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"sq_AL\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47TestMace \u2014 \u043c\u043e\u0449\u043d\u0430\u044f IDE \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 API | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0412\u0441\u0435\u043c \u043f\u0440\u0438\u0432\u0435\u0442! \u0421\u0435\u0433\u043e\u0434\u043d\u044f \u043c\u044b \u0445\u043e\u0442\u0438\u043c \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u043d\u0430 \u0441\u0443\u0434 IT-\u043e\u0431\u0449\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0441\u0442\u0438 \u043d\u0430\u0448 \u043f\u0440\u043e\u0434\u0443\u043a\u0442 \u2014 IDE \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 API TestMace.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/sq\/blog\/news\/testmace-moshhnaya-ide-dlya-raboty-s-api\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2019-12-19T21:00:00+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-02-18T11:02:10+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47TestMace \u2014 nj\u00eb IDE e fuqishme p\u00ebr pun\u00ebn me API | ProHoster","description":"P\u00ebrsh\u00ebndetje t\u00eb gjith\u00ebve! Sot duam t\u00eb prezantojm\u00eb p\u00ebr publikun IT produktin ton\u00eb \u2014 IDE p\u00ebr pun\u00eb me API TestMace.","canonical_url":"https:\/\/prohoster.info\/sq\/blog\/news\/testmace-moshhnaya-ide-dlya-raboty-s-api","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"sq_AL","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47TestMace \u2014 \u043c\u043e\u0449\u043d\u0430\u044f IDE \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 API | ProHoster","og:description":"\u0412\u0441\u0435\u043c \u043f\u0440\u0438\u0432\u0435\u0442! \u0421\u0435\u0433\u043e\u0434\u043d\u044f \u043c\u044b \u0445\u043e\u0442\u0438\u043c \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u043d\u0430 \u0441\u0443\u0434 IT-\u043e\u0431\u0449\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0441\u0442\u0438 \u043d\u0430\u0448 \u043f\u0440\u043e\u0434\u0443\u043a\u0442 \u2014 IDE \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 API TestMace.","og:url":"https:\/\/prohoster.info\/sq\/blog\/news\/testmace-moshhnaya-ide-dlya-raboty-s-api","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2019-12-19T21:00:00+00:00","article:modified_time":"2020-02-18T11:02:10+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"54187","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-01-24 10:21:21","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 20:10:33","updated":"2026-01-24 10:21:21","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/posts\/54187","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/comments?post=54187"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/posts\/54187\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/media?parent=54187"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/categories?post=54187"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/tags?post=54187"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}