{"id":53015,"date":"2019-11-21T00:00:00","date_gmt":"2019-11-20T21:00:00","guid":{"rendered":"https:\/\/prohoster.info\/blog\/blog_prohoster\/hranilishhe-key-value-ili-kak-nashi-prilozheniya-stali-udobnee"},"modified":"2020-02-18T14:00:51","modified_gmt":"2020-02-18T11:00:51","slug":"hranilishhe-key-value-ili-kak-nashi-prilozheniya-stali-udobnee","status":"publish","type":"post","link":"https:\/\/prohoster.info\/ro\/blog\/administrirovanie\/hranilishhe-key-value-ili-kak-nashi-prilozheniya-stali-udobnee","title":{"rendered":"Stocare key-value, sau cum aplica\u021biile noastre au devenit mai convenabile","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/Voximplant\/blog\/476452\/\"><img decoding=\"async\" alt=\"Stocare key-value, sau cum aplica\u021biile noastre au devenit mai convenabile\" src=\"\/wp-content\/uploads\/2019\/11\/686d1669d32a1fb5c5a42cf6c068b19b.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<p>Cine dezvolt\u0103 pe Voximplant cunoa\u0219te conceptul de \u201eaplica\u021bii\u201d, care leag\u0103 \u00eentre ele scenariile cloud, numerele de telefon, utilizatorii, regulile \u0219i cozile de apeluri. Pe scurt, aplica\u021biile sunt piatra de temelie a dezvolt\u0103rii pe platforma noastr\u0103, punctul de plecare pentru orice solu\u021bie bazat\u0103 pe Voximplant, deoarece totul \u00eencepe cu crearea unei aplica\u021bii.<\/p>\n<p>Anterior, aplica\u021biile \u201enu \u00ee\u0219i aminteau\u201d ac\u021biunile pe care le execut\u0103 scenariile sau rezultatele calculelor, a\u0219a c\u0103 dezvoltatorii erau nevoi\u021bi s\u0103 salveze valorile \u00een servicii externe sau pe backend-ul lor. Dac\u0103 a\u021bi lucrat vreodat\u0103 cu stocarea local\u0103 \u00een browser, noua noastr\u0103 func\u021bionalitate este destul de similar\u0103, deoarece permite aplica\u021biilor s\u0103 memoreze perechi \u201echeie-valoare\u201d care sunt unice pentru fiecare aplica\u021bie din contul dvs. Func\u021bionarea stoc\u0103rii a devenit posibil\u0103 datorit\u0103 noului modul <noindex><a rel=\"nofollow\" href=\"https:\/\/voximplant.com\/docs\/references\/voxengine\/applicationstorage\">ApplicationStorage<\/a><\/noindex> \u2013 mai jos ve\u021bi g\u0103si un ghid scurt de utilizare, bun venit!<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h2>Ve\u021bi avea nevoie de<\/h2>\n<p><\/p>\n<ul>\n<li>un cont Voximplant. Dac\u0103 nu ave\u021bi unul, atunci <noindex><a rel=\"nofollow\" href=\"https:\/\/voximplant.com\/sign-up\/\">\u00eenregistrarea se face aici<\/a><\/noindex>;<\/li>\n<li>o aplica\u021bie Voximplant, precum \u0219i un scenariu, o regul\u0103 \u0219i un utilizator. Toate acestea le vom crea \u00een acest tutorial;<\/li>\n<li>un client web pentru a efectua un apel \u2013 vom folosi telefonul nostru web <noindex><a rel=\"nofollow\" href=\"https:\/\/phone.voximplant.com\/\">phone.voximplant.com<\/a><\/noindex>.<\/li>\n<\/ul>\n<p><\/p>\n<h2>Set\u0103rile Voximplant<\/h2>\n<p>\nMai \u00eent\u00e2i, conecta\u021bi-v\u0103 la contul dvs.: <noindex><a rel=\"nofollow\" href=\"https:\/\/manage.voximplant.com\/auth\">manage.voximplant.com\/auth<\/a><\/noindex>. \u00cen meniul din st\u00e2nga, face\u021bi clic pe \u201eAplica\u021bii\u201d, apoi pe \u201eAplica\u021bie nou\u0103\u201d \u0219i crea\u021bi o aplica\u021bie cu numele storage. Accesa\u021bi noua aplica\u021bie, comuta\u021bi pe fila \u201eScenarii\u201d pentru a crea un scenariu countingCalls cu urm\u0103torul cod:<\/p>\n<pre><code class=\"javascript\">require(Modules.ApplicationStorage);\n\nVoxEngine.addEventListener(AppEvents.CallAlerting, async (e) =&gt; {\nlet r = {value: -1};\n\n    try {\n        r = await ApplicationStorage.get('totalCalls');\n        if (r === null) {\n            r = await ApplicationStorage.put('totalCalls', 0);\n        }\n    } catch(e) {\n        Logger.write('E\u0219ec la ob\u021binerea valorii totalCalls');\n    }\n\n    try {\n        await ApplicationStorage.put('totalCalls', (r.value | 0) + 1);\n    } catch(e) {\n        Logger.write('E\u0219ec la actualizarea valorii totalCalls');\n    }\n    \n    e.call.answer();\n    e.call.say(`Bine a\u021bi venit. Num\u0103rul apelurilor anterioare: ${r.value}. `, Language.RO_ROMAN);\n\n    e.call.addEventListener(CallEvents.PlaybackFinished, VoxEngine.terminate);\n\n});<\/code><\/pre>\n<p>\nPrima linie conecteaz\u0103 modulul ApplicationStorage, restul logicii fiind plasat\u0103 \u00een handlerul evenimentului <noindex><a rel=\"nofollow\" href=\"https:\/\/voximplant.com\/docs\/references\/voxengine\/appevents#callalerting\">CallAlerting<\/a><\/noindex>.<\/p>\n<p>\u00cen primul r\u00e2nd, declar\u0103m o variabil\u0103 pentru a putea compara valoarea ini\u021bial\u0103 cu contorul apelurilor. Apoi, \u00eencerc\u0103m s\u0103 ob\u021binem valoarea cheii totalCalls din stocare. Dac\u0103 aceast\u0103 cheie nu exist\u0103, o cre\u0103m:<\/p>\n<pre><code class=\"javascript\">try {\n    r = await ApplicationStorage.get('totalCalls');\n    if (r === null) {\n        r = await ApplicationStorage.put('totalCalls', 0);\n    }\n}<\/code><\/pre>\n<p>\nApoi este necesar s\u0103 cre\u0219tem valoarea cheii \u00een stocare:<\/p>\n<pre><code class=\"javascript\">try {\n        await ApplicationStorage.put('totalCalls', (r.value | 0) + 1);\n    }<\/code><\/pre>\n<p><\/p>\n<blockquote><p>ATEN\u021aIE<\/p>\n<p>Pentru fiecare promisiune, este necesar s\u0103 specifica\u021bi \u00een mod explicit gestionarea e\u0219ecurilor, a\u0219a cum este ar\u0103tat \u00een listingul de mai sus \u2013 altfel, execu\u021bia scriptului va fi oprit\u0103, iar \u00een loguri ve\u021bi vedea o eroare. Detalii <noindex><a rel=\"nofollow\" href=\"https:\/\/voximplant.com\/blog\/cloud-side-javascript-promise-handling-update\">aici<\/a><\/noindex>.<\/p><\/blockquote>\n<p> Dup\u0103 ce lucr\u0103m cu stocarea, scriptul r\u0103spunde la apelul telefonic de intrare prin sintez\u0103 vocal\u0103 \u0219i spune de c\u00e2te ori a\u021bi apelat p\u00e2n\u0103 acum. Dup\u0103 acest mesaj, scriptul finalizeaz\u0103 sesiunea.<\/p>\n<p>Dup\u0103 ce a\u021bi salvat scriptul, accesa\u021bi tab-ul \u201eRutare\u201d al aplica\u021biei dvs. \u0219i face\u021bi clic pe \u201eRegul\u0103 nou\u0103\u201d. Numi\u021bi-o startCounting, specifica\u021bi scriptul countingCalls \u0219i l\u0103sa\u021bi masca implicit\u0103 (.*).<\/p>\n<p><img decoding=\"async\" alt=\"Stocare key-value, sau cum aplica\u021biile noastre au devenit mai convenabile\" src=\"\/wp-content\/uploads\/2019\/11\/5f7452211a61dd98ccbdcbfac3f7ccd9.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nUltimul pas \u2013 crearea utilizatorului. Pentru aceasta, accesa\u021bi \u201eUtilizatori\u201d, face\u021bi clic pe \u201eCreare utilizator\u201d, specifica\u021bi un nume (de exemplu, user1) \u0219i o parol\u0103, apoi face\u021bi clic pe \u201eCreare\u201d. Aceast\u0103 pereche login-parol\u0103 va fi necesar\u0103 pentru autentificarea \u00een webphone.<\/p>\n<h2>Verific\u0103m<\/h2>\n<p>\nDeschide\u021bi webphone-ul la linkul <noindex><a rel=\"nofollow\" href=\"https:\/\/phone.voximplant.com\/\">phone.voximplant.com<\/a><\/noindex> \u0219i conecta\u021bi-v\u0103, folosind numele contului, numele aplica\u021biei \u0219i perechea login-parol\u0103 a utilizatorului din aplica\u021bie. Dup\u0103 ce a\u021bi reu\u0219it s\u0103 v\u0103 conecta\u021bi, introduce\u021bi orice set de caractere \u00een c\u00e2mpul de intrare \u0219i face\u021bi clic pe Apel. Dac\u0103 totul a fost f\u0103cut corect, ve\u021bi auzi un mesaj de \u00eent\u00e2mpinare sintetizat!<\/p>\n<p>V\u0103 dorim o dezvoltare excelent\u0103 pe Voximplant \u0219i r\u0103m\u00e2ne\u021bi la curent cu nout\u0103\u021bile \u2013 vor fi multe \ud83d\ude09<br \/>\n<br \/>Sursa: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/Voximplant\/blog\/476452\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0422\u043e\u0442, \u043a\u0442\u043e \u0440\u0430\u0437\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0435\u0442 \u043d\u0430 Voximplant, \u0437\u043d\u0430\u0435\u0442 \u043e \u043a\u043e\u043d\u0446\u0435\u043f\u0446\u0438\u0438 \u00ab\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439\u00bb, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0441\u0432\u044f\u0437\u044b\u0432\u0430\u044e\u0442 \u0434\u0440\u0443\u0433 \u0441 \u0434\u0440\u0443\u0433\u043e\u043c \u043e\u0431\u043b\u0430\u0447\u043d\u044b\u0435 \u0441\u0446\u0435\u043d\u0430\u0440\u0438\u0438, \u0442\u0435\u043b\u0435\u0444\u043e\u043d\u043d\u044b\u0435 \u043d\u043e\u043c\u0435\u0440\u0430, \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439, \u043f\u0440\u0430\u0432\u0438\u043b\u0430 \u0438 \u043e\u0447\u0435\u0440\u0435\u0434\u0438 \u0437\u0432\u043e\u043d\u043a\u043e\u0432. \u041f\u0440\u043e\u0449\u0435 \u0433\u043e\u0432\u043e\u0440\u044f, \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u2013 \u044d\u0442\u043e \u043a\u0440\u0430\u0435\u0443\u0433\u043e\u043b\u044c\u043d\u044b\u0439 \u043a\u0430\u043c\u0435\u043d\u044c \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043d\u0430 \u043d\u0430\u0448\u0435\u0439 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0435, \u0432\u0445\u043e\u0434\u043d\u0430\u044f \u0442\u043e\u0447\u043a\u0430 \u0432 \u043b\u044e\u0431\u043e\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 Voximplant, \u0442\u0430\u043a \u043a\u0430\u043a \u0438\u043c\u0435\u043d\u043d\u043e \u0441 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0432\u0441\u0435 \u0438 \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442\u0441\u044f. \u0420\u0430\u043d\u044c\u0448\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u00ab\u043d\u0435 \u043f\u043e\u043c\u043d\u0438\u043b\u0438\u00bb [&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":[688],"tags":[],"class_list":["post-53015","post","type-post","status-publish","format-standard","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.2.1 - aioseo.com -->\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\/ro\/blog\/administrirovanie\/hranilishhe-key-value-ili-kak-nashi-prilozheniya-stali-udobnee\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.2.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"ro_RO\" \/>\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\u0425\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0435 key-value, \u0438\u043b\u0438 \u043a\u0430\u043a \u043d\u0430\u0448\u0438 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0441\u0442\u0430\u043b\u0438 \u0443\u0434\u043e\u0431\u043d\u0435\u0435 | ProHoster\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/ro\/blog\/administrirovanie\/hranilishhe-key-value-ili-kak-nashi-prilozheniya-stali-udobnee\" \/>\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-11-20T21:00:00+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-02-18T11:00:51+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\udd47Stocare key-value, sau cum aplica\u021biile noastre au devenit mai u\u0219or de utilizat | ProHoster","description":"","canonical_url":"https:\/\/prohoster.info\/ro\/blog\/administrirovanie\/hranilishhe-key-value-ili-kak-nashi-prilozheniya-stali-udobnee","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"ro_RO","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\u0425\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0435 key-value, \u0438\u043b\u0438 \u043a\u0430\u043a \u043d\u0430\u0448\u0438 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0441\u0442\u0430\u043b\u0438 \u0443\u0434\u043e\u0431\u043d\u0435\u0435 | ProHoster","og:url":"https:\/\/prohoster.info\/ro\/blog\/administrirovanie\/hranilishhe-key-value-ili-kak-nashi-prilozheniya-stali-udobnee","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-11-20T21:00:00+00:00","article:modified_time":"2020-02-18T11:00:51+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"53015","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 05:45:21","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 20:32:32","updated":"2026-01-24 05:45:21","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/posts\/53015","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/comments?post=53015"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/posts\/53015\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/media?parent=53015"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/categories?post=53015"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/tags?post=53015"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}