{"id":39476,"date":"2019-10-31T22:33:41","date_gmt":"2019-10-31T19:33:41","guid":{"rendered":"https:\/\/prohoster.info\/blog\/legkoe-upravlenie-konfiguratsiyami-mikroservisov-s-pomoshhyu-microconfig-io\/"},"modified":"2019-10-31T22:33:41","modified_gmt":"2019-10-31T19:33:41","slug":"legkoe-upravlenie-konfiguratsiyami-mikroservisov-s-pomoshhyu-microconfig-io","status":"publish","type":"post","link":"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/legkoe-upravlenie-konfiguratsiyami-mikroservisov-s-pomoshhyu-microconfig-io","title":{"rendered":"Menaxhim i leht\u00eb i konfigurimeve t\u00eb mikrosh\u00ebrbjeve me microconfig.io","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Nj\u00eb nga problemet kryesore gjat\u00eb zhvillimit dhe operimit t\u00eb m\u00ebvonsh\u00ebm t\u00eb mikrosh\u00ebrbjeve \u00ebsht\u00eb p\u00ebrgatitja e sakt\u00eb dhe e kujdesshme e instancave t\u00eb tyre. Mendoj se nj\u00eb fram\u00eb t\u00eb ri mund t\u00eb ndihmoj\u00eb n\u00eb k\u00ebt\u00eb, <noindex><a rel=\"nofollow\" href=\"http:\/\/microconfig.io\">microconfig.io<\/a><\/noindex>. Ai lejon zgjidhjen elegante t\u00eb disa detyrave rutin\u00eb t\u00eb konfigurimit t\u00eb aplikacioneve. <br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\nN\u00ebse keni shum\u00eb mikrosh\u00ebrbje dhe secili prej tyre vjen me skedarin\/skedar\u00ebt e tij t\u00eb konfigurimit, ka nj\u00eb probabilitet t\u00eb madh t\u00eb b\u00ebni nj\u00eb gabim n\u00eb nj\u00ebrin prej tyre, t\u00eb cilin pa p\u00ebrvoj\u00eb dhe nj\u00eb sistem regjistrimi mund ta zbuloni shum\u00eb v\u00ebshtir\u00eb. Q\u00ebllimi kryesor i k\u00ebtij frami \u00ebsht\u00eb t\u00eb minimizoj\u00eb parametrat e p\u00ebrs\u00ebritur t\u00eb konfigurimit t\u00eb instancave, duke zvog\u00ebluar k\u00ebshtu mund\u00ebsin\u00eb e shtimit t\u00eb gabimeve.<\/p>\n<p>Le t\u00eb shohim nj\u00eb shembull. Supozojm\u00eb se ka nj\u00eb aplikacion t\u00eb thjesht\u00eb me nj\u00eb skedar konfigurimi <b>yaml<\/b>. Mund t\u00eb jet\u00eb \u00e7do mikrosh\u00ebrbje n\u00eb \u00e7do gjuh\u00eb. Le t\u00eb shohim se si mund t\u00eb aplikojm\u00eb k\u00ebt\u00eb fram\u00eb n\u00eb k\u00ebt\u00eb sh\u00ebrbim. <\/p>\n<p>Por s\u00eb pari, p\u00ebr m\u00eb shum\u00eb leht\u00ebsi, le t\u00eb krijojm\u00eb nj\u00eb projekt t\u00eb zbraz\u00ebt n\u00eb Idea IDE, duke instaluar paraprakisht plagin microconfig.io: <\/p>\n<p><img decoding=\"async\" alt=\"Menaxhim i leht\u00eb i konfigurimeve t\u00eb mikrosh\u00ebrbjeve me microconfig.io\" src=\"\/wp-content\/uploads\/2019\/10\/e2809b31309a80cf6909cf554081e895.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nJemi n\u00eb procesin e konfigurimit t\u00eb fillimit t\u00eb plugins, mund t\u00eb p\u00ebrdorim konfigurimin e paracaktuar, si\u00e7 \u00ebsht\u00eb n\u00eb screenshot-in e m\u00ebsip\u00ebrm.<\/p>\n<p>Sh\u00ebrbimi yn\u00eb quhet order, k\u00ebshtu q\u00eb n\u00eb projektin e ri do t\u00eb krijojm\u00eb nj\u00eb struktur\u00eb t\u00eb ngjashme:<\/p>\n<p><img decoding=\"async\" alt=\"Menaxhim i leht\u00eb i konfigurimeve t\u00eb mikrosh\u00ebrbjeve me microconfig.io\" src=\"\/wp-content\/uploads\/2019\/10\/a1edb8aa2e5dae3867cfff78276ebb8d.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nN\u00eb dosjen me emrin e sh\u00ebrbimit vendosim skedarin e konfiguracionit \u2014 <b>application.yaml<\/b>. T\u00eb gjitha mikrosh\u00ebrbimet fillojn\u00eb n\u00eb nj\u00eb mjedis t\u00eb caktuar, k\u00ebshtu q\u00eb, p\u00ebrve\u00e7 krijimit t\u00eb konfigurimit t\u00eb vet sh\u00ebrbimit, nevojitet t\u00eb p\u00ebrshkruajm\u00eb edhe mjedisin: p\u00ebr k\u00ebt\u00eb do t\u00eb krijojm\u00eb dosjen <b>envs<\/b> dhe do t\u00eb shtojm\u00eb n\u00eb t\u00eb nj\u00eb skedar me emrin e mjedisit ton\u00eb t\u00eb pun\u00ebs. K\u00ebshtu, framework-u do t\u00eb krijoj\u00eb skedar\u00ebt e konfigurimit p\u00ebr sh\u00ebrbimet n\u00eb mjedisin <b>dev<\/b>, pasi n\u00eb cil\u00ebsimet e plugin-it \u00ebsht\u00eb vendosur pik\u00ebrisht ky parametr.<\/p>\n<p>Struktura e skedarit <b>dev.yaml<\/b> do t\u00eb jet\u00eb mjaft e thjesht\u00eb: <\/p>\n<pre><code class=\"plaintext\">mainorder:\n    components:\n         - order<\/code><\/pre>\n<p>\nFramework-u punon me konfigurime q\u00eb jan\u00eb t\u00eb bashkuara n\u00eb grupe. P\u00ebr sh\u00ebrbimin ton\u00eb do t\u00eb zgjedhim nj\u00eb em\u00ebr p\u00ebr grupin <b>mainorder<\/b>. Framework-u gjen \u00e7do grup t\u00eb till\u00eb aplikacionesh n\u00eb skedarin e mjediseve dhe krijon p\u00ebr t\u00eb gjitha ato konfigurimet q\u00eb i gjendet n\u00eb dosjet p\u00ebrkat\u00ebse. <\/p>\n<p>N\u00eb vet\u00eb skedarin e cil\u00ebsimeve t\u00eb sh\u00ebrbimit <b>order<\/b> do t\u00eb sh\u00ebnojm\u00eb p\u00ebr tani vet\u00ebm nj\u00eb paramet\u00ebr: <\/p>\n<pre><code class=\"plaintext\">spring.application.name: order<\/code><\/pre>\n<p>\nTani do t\u00eb aktivizojm\u00eb plugin-in, dhe ai do t\u00eb na gjeneroj\u00eb konfigurimin e nevojsh\u00ebm t\u00eb sh\u00ebrbimit ton\u00eb n\u00eb rrug\u00ebn e specifikuar n\u00eb pronat:<\/p>\n<p><img decoding=\"async\" alt=\"Menaxhim i leht\u00eb i konfigurimeve t\u00eb mikrosh\u00ebrbjeve me microconfig.io\" src=\"\/wp-content\/uploads\/2019\/10\/9099990c05fd3c6ef0549f231dc84fb5.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nMund <noindex><a rel=\"nofollow\" href=\"https:\/\/microconfig.io\/#\/?id=running-the-config-build\">t\u00eb shkojm\u00eb<\/a><\/noindex> edhe pa instaluar plugin-in, thjesht duke shkarkuar shp\u00ebrndarjen e framework-ut dhe duke e ekzekutuar at\u00eb nga linja e komand\u00ebs.<br \/>\nKy zgjidhje do t\u00eb jet\u00eb e p\u00ebrshtatshme p\u00ebr p\u00ebrdorim n\u00eb serverin e nd\u00ebrtimit.<\/p>\n<p>Duhet theksuar se framework-u kupton shum\u00eb mir\u00eb <b>pronat<\/b> sintaks\u00ebn, pra skedar\u00ebt e zakonsh\u00ebm t\u00eb pronave, q\u00eb mund t\u00eb p\u00ebrdoren s\u00eb bashku me <b>yaml<\/b> konfigurimet.<\/p>\n<p>Le t\u00eb shtojm\u00eb nj\u00eb sh\u00ebrbim tjet\u00ebr <b>pages\u00eb<\/b> edhe t\u00eb komplikuar at\u00eb ekzistuesin nj\u00ebkoh\u00ebsisht.<br \/>\nN\u00eb <b>order<\/b>:<\/p>\n<pre><code class=\"plaintext\">eureka:\n instance.preferIpAddress: true\n client:\n   serviceUrl:\n     defaultZone: http:\/\/192.89.89.111:6782\/eureka\/\nserver.port: 9999\nspring.application.name: order\ndb.url: 192.168.0.100<\/code><\/pre>\n<p>\nN\u00eb <b>pages\u00eb<\/b>:<\/p>\n<pre><code class=\"plaintext\">eureka:\n instance.preferIpAddress: true\n client:\n   serviceUrl:\n     defaultZone: http:\/\/192.89.89.111:6782\/eureka\/\nserver.port: 9998\nspring.application.name: payments\ndb.url: 192.168.0.100<\/code><\/pre>\n<p>\nProblemi kryesor me k\u00ebto konfigurime \u00ebsht\u00eb prania e nj\u00eb s\u00ebr\u00eb t\u00eb madhe kopipaste n\u00eb cil\u00ebsimet e sh\u00ebrbimeve. Le t\u00eb shohim se si framework-u do t\u00eb na ndihmoj\u00eb t\u00eb heqim dor\u00eb nga ajo. T\u00eb fillojm\u00eb me at\u00eb m\u00eb t\u00eb dukshme \u2014 prania e konfigurimit <b>eureka<\/b> n\u00eb p\u00ebrshkrimin e \u00e7do mikrosh\u00ebrbimi. Do t\u00eb krijojm\u00eb nj\u00eb katalog t\u00eb ri me nj\u00eb skedar cil\u00ebsimesh dhe do t'i shtojm\u00eb nj\u00eb konfigurim t\u00eb ri:<\/p>\n<p><img decoding=\"async\" alt=\"Menaxhim i leht\u00eb i konfigurimeve t\u00eb mikrosh\u00ebrbjeve me microconfig.io\" src=\"\/wp-content\/uploads\/2019\/10\/8b7467a3bd5b22cac5b44c0681ac17fd.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nDhe tani do t\u00eb shtojm\u00eb rreshtin n\u00eb \u00e7do projekt tonin. <i>#include eureka<\/i>.<\/p>\n<p>Framwork-u automatikisht do t\u00eb gjej\u00eb konfigurimin e eureka dhe do ta kopjoj\u00eb at\u00eb n\u00eb skedar\u00ebt e konfigurimit t\u00eb sh\u00ebrbimeve, nd\u00ebrsa nj\u00eb konfigurim i ve\u00e7ant\u00eb i eureka nuk do t\u00eb krijohet, pasi ne nuk do ta citojm\u00eb at\u00eb n\u00eb skedarin e ambientit. <b>dev.yaml<\/b>. Sh\u00ebrbimi <b>order<\/b>:<\/p>\n<pre><code class=\"1c\">#include eureka\nserver.port: 9999\nspring.application.name: order\ndb.url: 192.168.0.100<\/code><\/pre>\n<p>\nGjithashtu mund t\u00eb nxjerrim cil\u00ebsimet e baz\u00ebs s\u00eb t\u00eb dh\u00ebnave n\u00eb nj\u00eb konfigurim t\u00eb ve\u00e7ant\u00eb, duke ndryshuar linj\u00ebn e importit n\u00eb <i>#include eureka, oracle<\/i>.<\/p>\n<p>Duhet theksuar se \u00e7do ndryshim gjat\u00eb rinovimit t\u00eb skedar\u00ebve t\u00eb konfigurimit framework-u e ndjek dhe e vendos at\u00eb n\u00eb nj\u00eb sked\u00eb t\u00eb ve\u00e7ant\u00eb af\u00ebr skedarit kryesor t\u00eb konfigurimit. Sh\u00ebnimi n\u00eb log-un e tij duket si: \"Ruajti 1 ndryshim n\u00eb pron\u00ebsi n\u00eb <b>order\/diff-application.yaml<\/b>\". Kjo lejon t\u00eb zbulojm\u00eb shpejt ndryshimet n\u00eb skedar\u00ebt e m\u00ebdhenj t\u00eb konfigurimit.<\/p>\n<p>Nxjerrja e pjes\u00ebve t\u00eb p\u00ebrbashk\u00ebta t\u00eb konfigurimit lejon eliminimin e shum\u00eb kopjeve t\u00eb panevojshme, por nuk lejon krijimin fleksib\u00ebl t\u00eb konfigurimit p\u00ebr ambiente t\u00eb ndryshme \u2014 endpointet e sh\u00ebrbimeve tona jan\u00eb unike dhe t\u00eb ngurt\u00eb, kjo \u00ebsht\u00eb nj\u00eb problem. Le t\u00eb p\u00ebrpiqemi ta heqim k\u00ebt\u00eb.<\/p>\n<p>Nj\u00eb zgjidhje e mir\u00eb do t\u00eb ishte t\u00eb mbahen t\u00eb gjitha endpointet n\u00eb nj\u00eb konfigurim t\u00eb vet\u00ebm, n\u00eb t\u00eb cilin do t\u00eb mund t\u00eb referoheshin t\u00eb tjer\u00ebt. P\u00ebr k\u00ebt\u00eb, framework-u ka integruar mb\u00ebshtetje p\u00ebr placeholder-at. K\u00ebshtu do t\u00eb ndryshoj\u00eb skedari i konfigurimit. <b>eureka<\/b>:<\/p>\n<pre><code class=\"plaintext\"> klienti:\n   sh\u00ebrbimiUrl:\n     zonaDefault: http:\/\/${endpoints@eurekaip}:6782\/eureka\/<\/code><\/pre>\n<p>\nTani le t\u00eb shohim si funksionon ky placeholder. Sistemi gjen komponentin me emrin <b>endpoints<\/b> dhe k\u00ebrkon n\u00eb t\u00eb vler\u00ebn <b>eurekaip<\/b>, pastaj e vendos n\u00eb konfigurimin ton\u00eb. Por si t\u00eb veprojm\u00eb me mjediset e ndryshme? P\u00ebr k\u00ebt\u00eb, do t\u00eb krijojm\u00eb nj\u00eb skedar konfigurimi n\u00eb <b>endpoints<\/b> formatin e m\u00ebposht\u00ebm <b>application.dev.yaml<\/b>. Framework-u vet\u00eb, nga zgjerimi i skedarit, merr vendimin se p\u00ebr cilin mjedis po i p\u00ebrket kjo konfigurim dhe e ngarkon at\u00eb:<\/p>\n<p><img decoding=\"async\" alt=\"Menaxhim i leht\u00eb i konfigurimeve t\u00eb mikrosh\u00ebrbjeve me microconfig.io\" src=\"\/wp-content\/uploads\/2019\/10\/c46cf097a0efb1d578a126858077a76b.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nP\u00ebrmbajtja e skedarit dev:<\/p>\n<pre><code class=\"plaintext\">eurekaip: 192.89.89.111\ndbip: 192.168.0.100<\/code><\/pre>\n<p>\nT\u00eb nj\u00ebjt\u00ebn konfigurim mund ta krijojm\u00eb edhe p\u00ebr portet e sh\u00ebrbimeve tona:<\/p>\n<pre><code class=\"plaintext\">server.port: ${ports@order}.<\/code><\/pre>\n<p>\nT\u00eb gjitha cil\u00ebsimet e r\u00ebnd\u00ebsishme ndodhen n\u00eb nj\u00eb vend, duke reduktuar k\u00ebshtu mund\u00ebsin\u00eb e gabimeve p\u00ebr shkak t\u00eb parametra t\u00eb shp\u00ebrndar\u00eb n\u00eb skedar\u00ebt e konfigurimit.<\/p>\n<p>Framework-u ofron shum\u00eb placeholder-e tashm\u00eb t\u00eb gatshme, p\u00ebr shembull, mund t\u00eb merrni emrin e dosjes n\u00eb t\u00eb cil\u00ebn ndodhet skedari i konfigurimit dhe ta caktoni at\u00eb:<\/p>\n<pre><code class=\"1c\">#include eureka, oracle\nserver.port: ${ports@order}\nspring.application.name: ${this@name}<\/code><\/pre>\n<p>\nFal\u00eb k\u00ebsaj, nuk \u00ebsht\u00eb e nevojshme t\u00eb tregoni emrin e aplikacionit n\u00eb konfigurim dhe gjithashtu mund ta nxirrni n\u00eb nj\u00eb modul t\u00eb p\u00ebrgjithsh\u00ebm, p\u00ebr shembull, n\u00eb t\u00eb nj\u00ebjt\u00ebn eureka:<\/p>\n<pre><code class=\"plaintext\">klienti:\n   sh\u00ebrbimiUrl:\n     zonaDefault: http:\/\/${endpoints@eurekaip}:6782\/eureka\/\n emri.aplikacionit.spring: ${this@name}<\/code><\/pre>\n<p>\nSkedari i konfigurimit <b>order<\/b> do t\u00eb shkurtohet n\u00eb nj\u00eb rresht:<\/p>\n<pre><code class=\"1c\">#include eureka, oracle\nserver.port: ${ports@order}<\/code><\/pre>\n<p>\nN\u00eb rast se ndonj\u00eb konfigurim nga konfigurimi prind nuk na nevojitet, ne mund ta specifikojm\u00eb at\u00eb n\u00eb konfigurimin ton\u00eb dhe kjo do t\u00eb aplikoj\u00eb gjat\u00eb gjenerimit. Pra, n\u00ebse p\u00ebr ndonj\u00eb arsye na nevojitet nj\u00eb em\u00ebr unik p\u00ebr sh\u00ebrbimin order, thjesht l\u00ebm\u00eb parametrin <b>spring.application.name<\/b>.<\/p>\n<p>Le t\u00eb themi se n\u00eb sh\u00ebrbim ne duhet t\u00eb shtojm\u00eb konfigurime t\u00eb personalizuara p\u00ebr regjistrimin, t\u00eb cilat ruhen n\u00eb nj\u00eb sked\u00eb t\u00eb ve\u00e7ant\u00eb, p\u00ebr shembull, <b>logback.xml<\/b>. Do t\u00eb krijojm\u00eb nj\u00eb grup t\u00eb ve\u00e7ant\u00eb konfigurimesh p\u00ebr t\u00eb:<\/p>\n<p><img decoding=\"async\" alt=\"Menaxhim i leht\u00eb i konfigurimeve t\u00eb mikrosh\u00ebrbjeve me microconfig.io\" src=\"\/wp-content\/uploads\/2019\/10\/103a58dab32ebc57ea1d8457b6bcf3d7.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nN\u00eb konfigurimin baz\u00eb do t\u00eb tregojm\u00eb p\u00ebr framework-un ku t\u00eb vendoset skeda jon\u00eb e nevojshme p\u00ebr regjistrimin duke p\u00ebrdorur placeholder-in <b>@ConfigDir<\/b>:<\/p>\n<pre><code class=\"plaintext\">microconfig.template.logback.fromFile: ${logback@configDir}\/logback.xml<\/code><\/pre>\n<p>\nN\u00eb skedar <b>logback.xml<\/b> konfigurojm\u00eb appenders standarde, t\u00eb cilat gjithashtu mund t\u00eb p\u00ebrmbajn\u00eb placeholder-e, t\u00eb cilat framework-u do t'i ndryshoj\u00eb gjat\u00eb gjenerimit t\u00eb konfigurimeve, p\u00ebr shembull:<\/p>\n<pre><code class=\"1c\">logs\/${this@name}.log<\/code><\/pre>\n<p>\nDuke shtuar n\u00eb konfigurimet e sh\u00ebrbimeve importimin <b>logback<\/b>, ne automatikisht marrim regjistrimin e konfiguruar p\u00ebr \u00e7do sh\u00ebrbim:<\/p>\n<pre><code class=\"1c\">#include eureka, oracle, logback\nserver.port: ${ports@order}<\/code><\/pre>\n<p>\nKa ardhur koha t\u00eb njohim m\u00eb n\u00eb detaje t\u00eb gjitha placeholder-et e disponueshme t\u00eb framework-ut:<\/p>\n<p><b>${this@env}<\/b> \u2014 kthen nj\u00eb em\u00ebr t\u00eb ambientit aktual.<br \/>\n<b>${&#8230;@name} <\/b> \u2014 kthen emrin e komponentit.<br \/>\n<b>${&#8230;@configDir}<\/b> \u2014 kthen rrug\u00ebn e plot\u00eb n\u00eb katalogun e konfigurimit t\u00eb komponentit.<br \/>\n<b>${&#8230;@resultDir}<\/b> \u2014 kthen rrug\u00ebn e plot\u00eb n\u00eb katalogun e vendosjes s\u00eb komponentit (skedar\u00ebt e marra do t\u00eb vendosen n\u00eb k\u00ebt\u00eb katalog).<br \/>\n<b>${this@configRoot}<\/b> \u2014 kthen rrug\u00ebn e plot\u00eb n\u00eb katalogun rr\u00ebnj\u00ebsor t\u00eb ruajtjes s\u00eb konfigurimeve.<\/p>\n<p>Po ashtu, sistemi lejon marrjen e variablave t\u00eb ambientit, p\u00ebr shembull rruga ndaj java:<br \/>\n<b>${env@JAVA_HOME}<\/b><br \/>\nOse, pasi q\u00eb struktura \u00ebsht\u00eb shkruar n\u00eb <b>JAVA<\/b>, mund t\u00eb marrim variablat sistemor\u00eb t\u00eb ngjash\u00ebm me thirrjen <b>System::getProperty<\/b> n\u00ebp\u00ebrmjet nj\u00eb konstrukti t\u00eb till\u00eb:<br \/>\n<b>${system@os.name}<\/b><br \/>\nP\u00ebr t\u00eb p\u00ebrmendur mb\u00ebshtetje p\u00ebr gjuh\u00ebn e zgjerimeve <b>Spring EL<\/b>. N\u00eb konfigurim aplikohen shprehje t\u00eb ngjashme:<\/p>\n<pre><code class=\"1c\">connection.timeoutInMs: #{5 * 60 * 1000}\ndatasource.maximum-pool-size: #{${this@datasource.minimum-pool-size} + 10} <\/code><\/pre>\n<p>\ndhe mund t\u00eb p\u00ebrdoren variablat lokale n\u00eb skedar\u00ebt e konfigurimit p\u00ebrmes shprehjes <b>#var<\/b>:<\/p>\n<pre><code class=\"1c\">#var feedRoot: ${system@user.home}\/feed\nfolder:\n root: ${this@feedRoot}\n success: ${this@feedRoot}\/archive\n error: ${this@feedRoot}\/error<\/code><\/pre>\n<p>\nN\u00eb k\u00ebt\u00eb m\u00ebnyr\u00eb, ky framework paraqet nj\u00eb instrument t\u00eb fuqish\u00ebm p\u00ebr konfiguruar me fleksibilitet konfigurimet e mikrosherbimeve. Ai e kryen misionin e tij kryesor \u2013 eliminimin e kopjimeve t\u00eb panevojshme n\u00eb konfigurime, konsolidimin e konfigurimeve dhe si pasoj\u00eb minimizimin e mund\u00ebsive p\u00ebr gabime, duke lejuar nj\u00ebkoh\u00ebsisht kombinimin leht\u00eb t\u00eb konfigurimeve dhe ndryshimin p\u00ebr mjedise t\u00eb ndryshme.<\/p>\n<p>N\u00ebse jeni t\u00eb interesuar p\u00ebr k\u00ebt\u00eb framework, ju rekomandoj t\u00eb vizitoni faqen e tij zyrtare dhe t\u00eb shihni informacionin e plot\u00eb <noindex><a rel=\"nofollow\" href=\"https:\/\/microconfig.io\">dokumentacionin<\/a><\/noindex>, ose t\u00eb hidhni nj\u00eb sy n\u00eb kodin burimor <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/microconfig\/microconfig\">k\u00ebtu<\/a><\/noindex>.<br \/>\n<br \/>Burimi: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/473078\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041e\u0434\u043d\u043e\u0439 \u0438\u0437 \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0445 \u043f\u0440\u043e\u0431\u043b\u0435\u043c \u043f\u0440\u0438 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0435 \u0438 \u043f\u043e\u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0439 \u044d\u043a\u0441\u043f\u043b\u0443\u0430\u0442\u0430\u0446\u0438\u0438 \u043c\u0438\u043a\u0440\u043e\u0441\u0435\u0440\u0432\u0438\u0441\u043e\u0432 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0433\u0440\u0430\u043c\u043e\u0442\u043d\u0430\u044f \u0438 \u0430\u043a\u043a\u0443\u0440\u0430\u0442\u043d\u0430\u044f \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u0438\u0445 \u0438\u043d\u0441\u0442\u0430\u043d\u0441\u043e\u0432. \u0412 \u044d\u0442\u043e\u043c, \u043d\u0430 \u043c\u043e\u0439 \u0432\u0437\u0433\u043b\u044f\u0434, \u043c\u043e\u0436\u0435\u0442 \u043f\u043e\u043c\u043e\u0447\u044c \u043d\u043e\u0432\u044b\u0439 \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a microconfig.io. \u041e\u043d \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u044d\u043b\u0435\u0433\u0430\u043d\u0442\u043d\u043e \u0440\u0435\u0448\u0438\u0442\u044c \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0440\u0443\u0442\u0438\u043d\u043d\u044b\u0435 \u0437\u0430\u0434\u0430\u0447\u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439. \u0415\u0441\u043b\u0438 \u0443 \u0432\u0430\u0441 \u043c\u043d\u043e\u0433\u043e \u043c\u0438\u043a\u0440\u043e\u0441\u0435\u0440\u0432\u0438\u0441\u043e\u0432, \u0438 \u043a\u0430\u0436\u0434\u044b\u0439 \u0438\u0437 \u043d\u0438\u0445 \u043f\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0432\u043c\u0435\u0441\u0442\u0435 \u0441\u043e \u0441\u0432\u043e\u0438\u043c \u0444\u0430\u0439\u043b\u043e\u043c\/\u0444\u0430\u0439\u043b\u0430\u043c\u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043a, \u0442\u043e \u0432\u0435\u043b\u0438\u043a\u0430 \u0432\u0435\u0440\u043e\u044f\u0442\u043d\u043e\u0441\u0442\u044c [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":39477,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-39476","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 4.9.10 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041e\u0434\u043d\u043e\u0439 \u0438\u0437 \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0445 \u043f\u0440\u043e\u0431\u043b\u0435\u043c \u043f\u0440\u0438 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0435 \u0438 \u043f\u043e\u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0439 \u044d\u043a\u0441\u043f\u043b\u0443\u0430\u0442\u0430\u0446\u0438\u0438 \u043c\u0438\u043a\u0440\u043e\u0441\u0435\u0440\u0432\u0438\u0441\u043e\u0432 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0433\u0440\u0430\u043c\u043e\u0442\u043d\u0430\u044f \u0438 \u0430\u043a\u043a\u0443\u0440\u0430\u0442\u043d\u0430\u044f \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u0438\u0445 \u0438\u043d\u0441\u0442\u0430\u043d\u0441\u043e\u0432. \u0412 \u044d\u0442\u043e\u043c, \u043d\u0430 \u043c\u043e\u0439 \u0432\u0437\u0433\u043b\u044f\u0434, \u043c\u043e\u0436\u0435\u0442 \u043f\u043e\u043c\u043e\u0447\u044c \u043d\u043e\u0432\u044b\u0439 \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a microconfig.io. \u041e\u043d \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u044d\u043b\u0435\u0433\u0430\u043d\u0442\u043d\u043e \u0440\u0435\u0448\u0438\u0442\u044c \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0440\u0443\u0442\u0438\u043d\u043d\u044b\u0435 \u0437\u0430\u0434\u0430\u0447\u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439. \u0415\u0441\u043b\u0438 \u0443 \u0432\u0430\u0441 \u043c\u043d\u043e\u0433\u043e \u043c\u0438\u043a\u0440\u043e\u0441\u0435\u0440\u0432\u0438\u0441\u043e\u0432, \u0438 \u043a\u0430\u0436\u0434\u044b\u0439 \u0438\u0437 \u043d\u0438\u0445 \u043f\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0432\u043c\u0435\u0441\u0442\u0435 \u0441\u043e \u0441\u0432\u043e\u0438\u043c \u0444\u0430\u0439\u043b\u043e\u043c\/\u0444\u0430\u0439\u043b\u0430\u043c\u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043a, \u0442\u043e \u0432\u0435\u043b\u0438\u043a\u0430 \u0432\u0435\u0440\u043e\u044f\u0442\u043d\u043e\u0441\u0442\u044c\" \/>\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\/administrirovanie\/legkoe-upravlenie-konfiguratsiyami-mikroservisov-s-pomoshhyu-microconfig-io\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 4.9.10\" \/>\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\udd47\u041b\u0435\u0433\u043a\u043e\u0435 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f\u043c\u0438 \u043c\u0438\u043a\u0440\u043e\u0441\u0435\u0440\u0432\u0438\u0441\u043e\u0432 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e microconfig.io | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041e\u0434\u043d\u043e\u0439 \u0438\u0437 \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0445 \u043f\u0440\u043e\u0431\u043b\u0435\u043c \u043f\u0440\u0438 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0435 \u0438 \u043f\u043e\u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0439 \u044d\u043a\u0441\u043f\u043b\u0443\u0430\u0442\u0430\u0446\u0438\u0438 \u043c\u0438\u043a\u0440\u043e\u0441\u0435\u0440\u0432\u0438\u0441\u043e\u0432 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0433\u0440\u0430\u043c\u043e\u0442\u043d\u0430\u044f \u0438 \u0430\u043a\u043a\u0443\u0440\u0430\u0442\u043d\u0430\u044f \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u0438\u0445 \u0438\u043d\u0441\u0442\u0430\u043d\u0441\u043e\u0432. \u0412 \u044d\u0442\u043e\u043c, \u043d\u0430 \u043c\u043e\u0439 \u0432\u0437\u0433\u043b\u044f\u0434, \u043c\u043e\u0436\u0435\u0442 \u043f\u043e\u043c\u043e\u0447\u044c \u043d\u043e\u0432\u044b\u0439 \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a microconfig.io. \u041e\u043d \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u044d\u043b\u0435\u0433\u0430\u043d\u0442\u043d\u043e \u0440\u0435\u0448\u0438\u0442\u044c \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0440\u0443\u0442\u0438\u043d\u043d\u044b\u0435 \u0437\u0430\u0434\u0430\u0447\u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439. \u0415\u0441\u043b\u0438 \u0443 \u0432\u0430\u0441 \u043c\u043d\u043e\u0433\u043e \u043c\u0438\u043a\u0440\u043e\u0441\u0435\u0440\u0432\u0438\u0441\u043e\u0432, \u0438 \u043a\u0430\u0436\u0434\u044b\u0439 \u0438\u0437 \u043d\u0438\u0445 \u043f\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0432\u043c\u0435\u0441\u0442\u0435 \u0441\u043e \u0441\u0432\u043e\u0438\u043c \u0444\u0430\u0439\u043b\u043e\u043c\/\u0444\u0430\u0439\u043b\u0430\u043c\u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043a, \u0442\u043e \u0432\u0435\u043b\u0438\u043a\u0430 \u0432\u0435\u0440\u043e\u044f\u0442\u043d\u043e\u0441\u0442\u044c\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/legkoe-upravlenie-konfiguratsiyami-mikroservisov-s-pomoshhyu-microconfig-io\" \/>\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-10-31T19:33:41+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T19:33:41+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\udd47Menaxhimi i thjesht\u00eb i konfigurimeve t\u00eb mikrosh\u00ebrbimeve me microconfig.io | ProHoster","description":"Nj\u00eb nga problemet kryesore gjat\u00eb zhvillimit dhe eksplorimit t\u00eb m\u00ebvonsh\u00ebm t\u00eb mikrosherbimeve \u00ebsht\u00eb konfigurimi i sakt\u00eb dhe i kujdessh\u00ebm i instancave t\u00eb tyre. N\u00eb k\u00ebt\u00eb pik\u00ebpamje, mendoj se framework-u i ri microconfig.io mund t\u00eb ndihmoj\u00eb. Ai lejon t\u00eb zgjidhni me eleganc\u00eb disa detyra rutin\u00eb t\u00eb konfigurimit t\u00eb aplikacioneve. N\u00ebse keni shum\u00eb mikrosherbime dhe secili prej tyre vjen me skedarin e tij\/skedar\u00ebt e tij t\u00eb konfigurimeve, at\u00ebher\u00eb ka nj\u00eb probabilitet t\u00eb madh","canonical_url":"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/legkoe-upravlenie-konfiguratsiyami-mikroservisov-s-pomoshhyu-microconfig-io","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\udd47\u041b\u0435\u0433\u043a\u043e\u0435 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f\u043c\u0438 \u043c\u0438\u043a\u0440\u043e\u0441\u0435\u0440\u0432\u0438\u0441\u043e\u0432 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e microconfig.io | ProHoster","og:description":"\u041e\u0434\u043d\u043e\u0439 \u0438\u0437 \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0445 \u043f\u0440\u043e\u0431\u043b\u0435\u043c \u043f\u0440\u0438 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0435 \u0438 \u043f\u043e\u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0439 \u044d\u043a\u0441\u043f\u043b\u0443\u0430\u0442\u0430\u0446\u0438\u0438 \u043c\u0438\u043a\u0440\u043e\u0441\u0435\u0440\u0432\u0438\u0441\u043e\u0432 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0433\u0440\u0430\u043c\u043e\u0442\u043d\u0430\u044f \u0438 \u0430\u043a\u043a\u0443\u0440\u0430\u0442\u043d\u0430\u044f \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u0438\u0445 \u0438\u043d\u0441\u0442\u0430\u043d\u0441\u043e\u0432. \u0412 \u044d\u0442\u043e\u043c, \u043d\u0430 \u043c\u043e\u0439 \u0432\u0437\u0433\u043b\u044f\u0434, \u043c\u043e\u0436\u0435\u0442 \u043f\u043e\u043c\u043e\u0447\u044c \u043d\u043e\u0432\u044b\u0439 \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a microconfig.io. \u041e\u043d \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u044d\u043b\u0435\u0433\u0430\u043d\u0442\u043d\u043e \u0440\u0435\u0448\u0438\u0442\u044c \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0440\u0443\u0442\u0438\u043d\u043d\u044b\u0435 \u0437\u0430\u0434\u0430\u0447\u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439. \u0415\u0441\u043b\u0438 \u0443 \u0432\u0430\u0441 \u043c\u043d\u043e\u0433\u043e \u043c\u0438\u043a\u0440\u043e\u0441\u0435\u0440\u0432\u0438\u0441\u043e\u0432, \u0438 \u043a\u0430\u0436\u0434\u044b\u0439 \u0438\u0437 \u043d\u0438\u0445 \u043f\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0432\u043c\u0435\u0441\u0442\u0435 \u0441\u043e \u0441\u0432\u043e\u0438\u043c \u0444\u0430\u0439\u043b\u043e\u043c\/\u0444\u0430\u0439\u043b\u0430\u043c\u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043a, \u0442\u043e \u0432\u0435\u043b\u0438\u043a\u0430 \u0432\u0435\u0440\u043e\u044f\u0442\u043d\u043e\u0441\u0442\u044c","og:url":"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/legkoe-upravlenie-konfiguratsiyami-mikroservisov-s-pomoshhyu-microconfig-io","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-10-31T19:33:41+00:00","article:modified_time":"2019-10-31T19:33:41+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"39476","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 02:05:19","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 13:48:28","updated":"2026-01-24 02:05:19"},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/posts\/39476","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=39476"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/posts\/39476\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/media\/39477"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/media?parent=39476"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/categories?post=39476"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/tags?post=39476"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}