{"id":23182,"date":"2023-05-15T20:49:51","date_gmt":"2023-05-15T17:19:51","guid":{"rendered":"https:\/\/nabfollower.com\/blog\/build-email-verifier-with-go-2k3c\/"},"modified":"2023-05-15T20:49:51","modified_gmt":"2023-05-15T17:19:51","slug":"build-email-verifier-with-go-2k3c","status":"publish","type":"post","link":"https:\/\/nabfollower.com\/blog\/build-email-verifier-with-go-2k3c\/","title":{"rendered":"\u0633\u0627\u062e\u062a \u062a\u0623\u06cc\u06cc\u062f \u06a9\u0646\u0646\u062f\u0647 \u0627\u06cc\u0645\u06cc\u0644 \u0628\u0627 Go"},"content":{"rendered":"<div data-article-id=\"1322861\" id=\"article-body\">\n<p>\u0627\u0648\u0644\u06cc\u0646 \u0645\u0631\u062d\u0644\u0647 \u0627\u0632 \u0627\u0631\u0633\u0627\u0644 \u0633\u0631\u062f \u0628\u0627 \u062f\u0631\u06cc\u0627\u0641\u062a \u0622\u062f\u0631\u0633 \u0627\u06cc\u0645\u06cc\u0644 \u0627\u0633\u062a\u062e\u062f\u0627\u0645 \u06a9\u0646\u0646\u062f\u0647 \u0641\u0646\u06cc \u0634\u0631\u0648\u0639 \u0645\u06cc \u0634\u0648\u062f.  \u0627\u063a\u0644\u0628 \u0627\u0632 \u0637\u0631\u06cc\u0642 \u0627\u06cc\u0646\u062a\u0631\u0646\u062a \u06af\u0641\u062a\u0647 \u0645\u06cc \u0634\u0648\u062f \u06a9\u0647 \u0628\u0647 \u0637\u0648\u0631 \u062a\u0635\u0627\u062f\u0641\u06cc \u0627\u06cc\u0645\u06cc\u0644 \u0628\u0627 \u062a\u0631\u06a9\u06cc\u0628 \u0646\u0627\u0645 \u0648 \u0646\u0627\u0645 \u062e\u0627\u0646\u0648\u0627\u062f\u06af\u06cc \u0627\u0633\u062a\u062e\u062f\u0627\u0645 \u06a9\u0646\u0646\u062f\u0647 \u062a\u0634\u06a9\u06cc\u0644 \u062f\u0647\u06cc\u062f. <\/p>\n<p>\u0628\u06af\u0648\u06cc\u06cc\u062f\u060c \u0627\u06af\u0631 \u0645\u06cc \u062e\u0648\u0627\u0647\u06cc\u062f \u0628\u0647 \u0645\u0646 \u0627\u06cc\u0645\u06cc\u0644 \u0628\u0632\u0646\u06cc\u062f\u060c \u062a\u0631\u06a9\u06cc\u0628 \u0647\u0627\u06cc \u0645\u0645\u06a9\u0646 \u0645\u06cc \u062a\u0648\u0627\u0646\u062f \u0628\u0627\u0634\u062f <code>aniket.pal@companymail.com<\/code>\u060c <code>pal.aniket@companymail.com<\/code>\u060c <code>paniket@companymail.com<\/code>\u060c <code>aniketpal@comapanymail.com<\/code> \u0648 \u0645\u0631\u062a\u0628\u0637  \u0627\u06cc\u062c\u0627\u062f \u06cc\u06a9 \u0644\u06cc\u0633\u062a \u0639\u0638\u06cc\u0645 \u0627\u0632 \u062c\u0627\u06cc\u06af\u0634\u062a \u0648 \u062a\u0631\u06a9\u06cc\u0628 \u0647\u0627\u06cc \u0645\u062a\u0639\u062f\u062f.  \u0628\u0631\u0627\u06cc \u06a9\u0648\u062a\u0627\u0647 \u06a9\u0631\u062f\u0646 \u0641\u0636\u0627\u06cc \u062c\u0633\u062a\u062c\u0648\u060c \u06cc\u06a9 \u0628\u0631\u0646\u0627\u0645\u0647 \u06a9\u0627\u0631\u0628\u0631\u062f\u06cc \u0627\u06cc\u062c\u0627\u062f \u062e\u0648\u0627\u0647\u06cc\u0645 \u06a9\u0631\u062f \u062a\u0627 \u0628\u0631\u0631\u0633\u06cc \u06a9\u0646\u06cc\u0645 \u06a9\u0647 \u0622\u06cc\u0627 companymail.com \u0645\u0639\u062a\u0628\u0631 \u0627\u0633\u062a \u06cc\u0627 \u0646\u0647. <\/p>\n<p>\u0647\u062f\u0641 \u0627\u0632 \u0622\u0645\u0648\u0632\u0634 \u0627\u06cc\u0646 \u0627\u0633\u062a \u06a9\u0647 \u0628\u0647 \u0634\u0645\u0627 \u062f\u0631\u06a9 \u06a9\u0627\u0645\u0644\u06cc \u0627\u0632 \u0642\u0627\u0628\u0644\u06cc\u062a \u0647\u0627\u06cc go-lang \u0628\u062f\u0647\u062f.  \u0645\u0627 \u0627\u0632 \u0647\u06cc\u0686 \u0645\u0627\u0698\u0648\u0644 \u0634\u062e\u0635 \u062b\u0627\u0644\u062b\u06cc \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0646\u062e\u0648\u0627\u0647\u06cc\u0645 \u06a9\u0631\u062f\u060c \u0641\u0642\u0637 \u0628\u0627 \u0645\u0627\u0698\u0648\u0644 \u0647\u0627\u06cc \u0627\u0635\u0644\u06cc Go \u06a9\u0647 \u062e\u0648\u0627\u0647\u06cc\u0645 \u0633\u0627\u062e\u062a.       <\/p>\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_84 counter-hierarchy ez-toc-counter-rtl ez-toc-grey ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">\u0641\u0647\u0631\u0633\u062a \u0645\u0637\u0627\u0644\u0628<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Toggle Table of Content\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/nabfollower.com\/blog\/build-email-verifier-with-go-2k3c\/#%DA%86%D8%B1%D8%A7_Go_%D8%B1%D8%A7_%D8%A7%D9%86%D8%AA%D8%AE%D8%A7%D8%A8_%DA%A9%D9%86%DB%8C%D8%AF%D8%9F_%F0%9F%A4%A8\" >\u0686\u0631\u0627 Go \u0631\u0627 \u0627\u0646\u062a\u062e\u0627\u0628 \u06a9\u0646\u06cc\u062f\u061f  \ud83e\udd28<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/nabfollower.com\/blog\/build-email-verifier-with-go-2k3c\/#%DA%86%D9%87_%DA%86%DB%8C%D8%B2%DB%8C_%D8%AE%D9%88%D8%A7%D9%87%DB%8C%D9%85_%D8%B3%D8%A7%D8%AE%D8%AA%D8%9F_%F0%9F%91%A8%E2%80%8D%F0%9F%9A%92\" >\u0686\u0647 \u0686\u06cc\u0632\u06cc \u062e\u0648\u0627\u0647\u06cc\u0645 \u0633\u0627\u062e\u062a\u061f  \ud83d\udc68\u200d\ud83d\ude92<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/nabfollower.com\/blog\/build-email-verifier-with-go-2k3c\/#%D8%B3%D8%A7%D8%AE%D8%AA_Backend_%F0%9F%9A%AA\" >\u0633\u0627\u062e\u062a Backend \ud83d\udeaa<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/nabfollower.com\/blog\/build-email-verifier-with-go-2k3c\/#%D8%B3%D8%A7%D8%AE%D8%AA_Frontend_%F0%9F%8E%A8\" >\u0633\u0627\u062e\u062a Frontend \ud83c\udfa8<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/nabfollower.com\/blog\/build-email-verifier-with-go-2k3c\/#%D8%AF%DB%8C%DA%AF%D8%B1_%F0%9F%92%9A\" >\u062f\u06cc\u06af\u0631 \ud83d\udc9a<\/a><\/li><\/ul><\/nav><\/div>\n<h2><span class=\"ez-toc-section\" id=\"%DA%86%D8%B1%D8%A7_Go_%D8%B1%D8%A7_%D8%A7%D9%86%D8%AA%D8%AE%D8%A7%D8%A8_%DA%A9%D9%86%DB%8C%D8%AF%D8%9F_%F0%9F%A4%A8\"><\/span>\n<p>  \u0686\u0631\u0627 Go \u0631\u0627 \u0627\u0646\u062a\u062e\u0627\u0628 \u06a9\u0646\u06cc\u062f\u061f  \ud83e\udd28<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u062f\u0627\u0633\u062a\u0627\u0646 \u0627\u0632 \u0627\u06cc\u0646 \u0642\u0631\u0627\u0631 \u0627\u0633\u062a \u06a9\u0647 \u062a\u0648\u0633\u0639\u0647 \u062f\u0647\u0646\u062f\u06af\u0627\u0646 \u06af\u0648\u06af\u0644 Golang \u0631\u0627 \u062a\u0648\u0633\u0639\u0647 \u062f\u0627\u062f\u0646\u062f \u062f\u0631 \u062d\u0627\u0644\u06cc \u06a9\u0647 \u0645\u0646\u062a\u0638\u0631 \u0628\u0648\u062f\u0646\u062f \u062a\u0627 \u0632\u0628\u0627\u0646 \u0647\u0627\u06cc \u062f\u06cc\u06af\u0631 \u06a9\u0627\u0645\u067e\u0627\u06cc\u0644 \u0634\u0648\u0646\u062f.  \u062a\u0648\u0633\u0639\u0647 \u062f\u0647\u0646\u062f\u06af\u0627\u0646 \u06af\u0648\u06af\u0644 \u0628\u0647 \u062f\u0644\u06cc\u0644 \u0646\u0627\u0631\u0636\u0627\u06cc\u062a\u06cc \u062e\u0648\u062f \u0627\u0632 \u0645\u062c\u0645\u0648\u0639\u0647 \u0627\u0628\u0632\u0627\u0631 \u062e\u0648\u062f\u060c \u0645\u062c\u0628\u0648\u0631 \u0634\u062f\u0646\u062f \u0628\u0647 \u0637\u0648\u0631 \u06a9\u0627\u0645\u0644 \u062f\u0631\u0628\u0627\u0631\u0647 \u062a\u0648\u0633\u0639\u0647 \u0633\u06cc\u0633\u062a\u0645 \u062a\u062c\u062f\u06cc\u062f \u0646\u0638\u0631 \u06a9\u0646\u0646\u062f\u060c \u06a9\u0647 \u0622\u0646\u0647\u0627 \u0631\u0627 \u0628\u0647 \u0627\u06cc\u062c\u0627\u062f \u06cc\u06a9 \u0631\u0627\u0647 \u062d\u0644 \u0646\u0627\u0628\u060c \u0645\u062a\u0648\u0633\u0637 \u200b\u200b\u0648 \u06a9\u0627\u0645\u067e\u0627\u06cc\u0644 \u0633\u0648\u0642 \u062f\u0627\u062f \u06a9\u0647 \u0627\u0632 \u0686\u0646\u062f \u0631\u0634\u062a\u0647 \u0627\u06cc \u0639\u0638\u06cc\u0645\u060c \u0647\u0645\u0632\u0645\u0627\u0646\u06cc \u0648 \u0639\u0645\u0644\u06a9\u0631\u062f \u062a\u062d\u062a \u0627\u0633\u062a\u0631\u0633 \u067e\u0634\u062a\u06cc\u0628\u0627\u0646\u06cc \u0645\u06cc \u06a9\u0646\u062f.<\/p>\n<blockquote>\n<p>\u0647\u0631 \u0633\u0627\u0632\u0645\u0627\u0646\u06cc \u06a9\u0647 \u0628\u0647 \u0645\u0642\u06cc\u0627\u0633 \u0646\u06af\u0627\u0647 \u0645\u06cc \u06a9\u0646\u062f\u060c \u0627\u0632 Golang \u0628\u0631\u0627\u06cc \u0633\u0627\u062e\u062a \u0631\u06cc\u0632\u0633\u0631\u0648\u06cc\u0633 \u0647\u0627\u06cc \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631\u06cc \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc \u06a9\u0646\u062f.<\/p>\n<\/blockquote>\n<p>\u0639\u0644\u0627\u0648\u0647 \u0628\u0631 \u0627\u06cc\u0646\u060c Go \u06cc\u06a9 \u0632\u0628\u0627\u0646 \u0639\u0627\u0644\u06cc \u0628\u0631\u0627\u06cc \u0627\u06cc\u062c\u0627\u062f \u0648\u0628 \u0633\u0631\u0648\u0631\u0647\u0627 \u0648 \u062e\u062f\u0645\u0627\u062a \u0648\u0628 \u0633\u0627\u062f\u0647 \u0648 \u062f\u0631 \u0639\u06cc\u0646 \u062d\u0627\u0644 \u06a9\u0627\u0631\u0622\u0645\u062f \u0627\u0633\u062a.  \u0627\u06cc\u0646 \u06cc\u06a9 \u0628\u0633\u062a\u0647 HTTP \u062f\u0627\u062e\u0644\u06cc \u0631\u0627 \u0627\u0631\u0627\u0626\u0647 \u0645\u06cc \u062f\u0647\u062f \u06a9\u0647 \u0634\u0627\u0645\u0644 \u0627\u0628\u0632\u0627\u0631\u0647\u0627\u06cc\u06cc \u0628\u0631\u0627\u06cc \u0627\u06cc\u062c\u0627\u062f \u0633\u0631\u06cc\u0639 \u0648\u0628 \u06cc\u0627 \u0633\u0631\u0648\u0631 \u0641\u0627\u06cc\u0644 \u0627\u0633\u062a. <\/p>\n<p>\u0647\u0645\u0686\u0646\u06cc\u0646\u060c \u0627\u06af\u0631 \u0628\u0647 \u0627\u06a9\u0648\u0633\u06cc\u0633\u062a\u0645 Cloud Native \u0639\u0644\u0627\u0642\u0647 \u062f\u0627\u0631\u06cc\u062f\u060c Go \u0632\u0628\u0627\u0646\u06cc \u0627\u0633\u062a \u06a9\u0647 \u0628\u0627\u06cc\u062f \u0628\u0627 \u0622\u0646 \u0634\u0631\u0648\u0639 \u06a9\u0646\u06cc\u062f.  \u062f\u0631 \u0627\u06cc\u0646 \u0645\u0648\u0631\u062f\u060c \u0634\u0645\u0627 \u0647\u0631\u06af\u0632 \u06cc\u06a9 \u0633\u0631\u0648\u0631 \u0628\u0627\u0637\u0646 \u0631\u0627 \u0628\u0627 Go checkout \u0627\u06cc\u062c\u0627\u062f \u0646\u06a9\u0631\u062f\u0647 \u0627\u06cc\u062f. <\/p>\n<h2><span class=\"ez-toc-section\" id=\"%DA%86%D9%87_%DA%86%DB%8C%D8%B2%DB%8C_%D8%AE%D9%88%D8%A7%D9%87%DB%8C%D9%85_%D8%B3%D8%A7%D8%AE%D8%AA%D8%9F_%F0%9F%91%A8%E2%80%8D%F0%9F%9A%92\"><\/span>\n<p>  \u0686\u0647 \u0686\u06cc\u0632\u06cc \u062e\u0648\u0627\u0647\u06cc\u0645 \u0633\u0627\u062e\u062a\u061f  \ud83d\udc68\u200d\ud83d\ude92<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u0627\u0628\u0632\u0627\u0631 \u06a9\u0648\u0686\u06a9 \u0628\u0631\u0631\u0633\u06cc \u0645\u06cc \u06a9\u0646\u062f \u06a9\u0647 \u0622\u06cc\u0627 \u062f\u0627\u0645\u0646\u0647 \u0627\u06cc\u0645\u06cc\u0644 \u0648\u062c\u0648\u062f \u062f\u0627\u0631\u062f \u06cc\u0627 \u062e\u06cc\u0631.  \u0647\u062f\u0641 \u0627\u06cc\u0646 \u0627\u0633\u062a \u06a9\u0647 \u0628\u0641\u0647\u0645\u06cc\u0645 \u0686\u06af\u0648\u0646\u0647 \u0645\u06cc \u062a\u0648\u0627\u0646 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 Go Lang \u0686\u06af\u0648\u0646\u0647 \u0628\u06a9 \u0627\u0646\u062f \u0648 \u0641\u0631\u0627\u0646\u062a \u0627\u0646\u062f \u0633\u0627\u062e\u062a.  \u0645\u0627 \u0628\u0627 \u0633\u0631\u0648\u0631 \u0628\u0627\u0637\u0646 \u0634\u0631\u0648\u0639 \u0645\u06cc \u06a9\u0646\u06cc\u0645 \u0648 \u0633\u067e\u0633 \u0628\u0647 \u0633\u0627\u062e\u062a\u0646 \u0642\u0633\u0645\u062a \u062c\u0644\u0648\u06cc\u06cc \u0645\u06cc \u0631\u0648\u06cc\u0645 \u0648 \u062f\u0631 \u0639\u06cc\u0646 \u062d\u0627\u0644 \u0641\u0636\u0627\u06cc\u06cc \u0628\u0631\u0627\u06cc \u06a9\u0627\u0648\u0634 \u062f\u0631 \u0627\u062e\u062a\u06cc\u0627\u0631 \u0634\u0645\u0627 \u0642\u0631\u0627\u0631 \u0645\u06cc \u062f\u0647\u06cc\u0645.  <\/p>\n<h2><span class=\"ez-toc-section\" id=\"%D8%B3%D8%A7%D8%AE%D8%AA_Backend_%F0%9F%9A%AA\"><\/span>\n<p>  \u0633\u0627\u062e\u062a Backend \ud83d\udeaa<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u0645\u0627 \u0627\u0632 \u0642\u0633\u0645\u062a \u062c\u0644\u0648\u06cc\u06cc \u0628\u0631\u0646\u0627\u0645\u0647 \u0628\u0631\u0627\u06cc \u062f\u0631\u06cc\u0627\u0641\u062a \u062f\u0627\u0645\u0646\u0647 \u0645\u0648\u0631\u062f \u0646\u06cc\u0627\u0632 \u062e\u0648\u062f \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc \u06a9\u0646\u06cc\u0645. <\/p>\n<p>\u062a\u0639\u0631\u06cc\u0641 \u067e\u06a9\u06cc\u062c \u0627\u0635\u0644\u06cc \u0648 \u0648\u0627\u0631\u062f \u06a9\u0631\u062f\u0646 \u0628\u0633\u062a\u0647 \u0647\u0627\u06cc \u0645\u0648\u0631\u062f \u0646\u06cc\u0627\u0632.<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight go\"><code><span class=\"k\">package<\/span> <span class=\"n\">main<\/span>\n\n<span class=\"k\">import<\/span> <span class=\"p\">(<\/span>\n    <span class=\"s\">\"encoding\/json\"<\/span>\n    <span class=\"s\">\"fmt\"<\/span>\n    <span class=\"s\">\"log\"<\/span>\n    <span class=\"s\">\"net\"<\/span>\n    <span class=\"s\">\"net\/http\"<\/span>\n    <span class=\"s\">\"strings\"<\/span>\n\n    <span class=\"s\">\"github.com\/gorilla\/mux\"<\/span>\n<span class=\"p\">)<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u0627\u06af\u0631 \u062f\u0631 \u0646\u062d\u0648\u0647 \u0646\u0635\u0628 \u0633\u0631\u062f\u0631\u06af\u0645 \u0647\u0633\u062a\u06cc\u062f <code>gorilla\/mux<\/code> \u0648 \u0627\u06cc\u0646 \u0628\u0633\u062a\u0647 \u0686\u0647 \u06a9\u0627\u0631\u06cc \u0627\u0646\u062c\u0627\u0645 \u0645\u06cc \u062f\u0647\u062f\u060c \u0633\u0627\u062e\u062a \u0633\u0631\u0648\u0631 \u0628\u0627 Go \u0632\u06cc\u0631 10 \u062f\u0642\u06cc\u0642\u0647 \u0631\u0627 \u0628\u062e\u0648\u0627\u0646\u06cc\u062f.  \u0627\u0632 \u0647\u0645\u200c\u0627\u06a9\u0646\u0648\u0646\u060c \u06a9\u0645\u06cc \u062f\u06cc\u0631\u062a\u0631 API\u0647\u0627\u06cc REST \u0631\u0627 \u0645\u06cc\u200c\u0633\u0627\u0632\u06cc\u0645.  \u0627\u0648\u0644\u060c \u0627\u062c\u0627\u0632\u0647 \u062f\u0647\u06cc\u062f \u0641\u0631\u0636 \u06a9\u0646\u06cc\u0645 \u06a9\u0647 \u062f\u0631\u06cc\u0627\u0641\u062a \u0645\u06cc \u06a9\u0646\u06cc\u0645 <code>domain<\/code> \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u0631\u0634\u062a\u0647 \u0627\u06cc \u06a9\u0647 \u0628\u0627\u06cc\u062f \u0631\u0648\u06cc \u0622\u0646 \u06a9\u0627\u0631 \u06a9\u0646\u06cc\u0645. <\/p>\n<p>\u062a\u0639\u0631\u06cc\u0641 \u06cc\u06a9 \u06a9\u0646\u062a\u0631\u0644 \u06a9\u0646\u0646\u062f\u0647\u060c <code>isValidDomain<\/code>.  \u06a9\u0646\u062a\u0631\u0644 \u06a9\u0646\u0646\u062f\u0647 \u0641\u0642\u0637 \u06cc\u06a9 \u067e\u0627\u0631\u0627\u0645\u062a\u0631 \u0631\u0627 \u0645\u06cc \u06af\u06cc\u0631\u062f \u0648 \u0645\u06cc \u06af\u0648\u06cc\u062f:<code>domain<\/code> \u0627\u0632 \u0646\u0648\u0639 \u0631\u0634\u062a\u0647<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight go\"><code><span class=\"k\">func<\/span> <span class=\"n\">isValidDomain<\/span><span class=\"p\">(<\/span><span class=\"n\">domain<\/span> <span class=\"kt\">string<\/span><span class=\"p\">){<\/span>\n<span class=\"c\">\/\/ controller code goes here<\/span>\n<span class=\"p\">}<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u0628\u06cc\u0627\u06cc\u06cc\u062f \u06a9\u0627\u0631 \u0631\u0627 \u0628\u0627 \u0639\u0645\u0644\u06a9\u0631\u062f \u06a9\u0646\u062a\u0631\u0644\u0631 \u0634\u0631\u0648\u0639 \u06a9\u0646\u06cc\u0645.  \u0627\u0628\u062a\u062f\u0627\u060c \u062a\u0639\u0631\u06cc\u0641 \u0645\u062a\u063a\u06cc\u0631\u0647\u0627\u06cc\u06cc \u0628\u0631\u0627\u06cc \u0628\u0631\u0631\u0633\u06cc \u0627\u06cc\u0646\u06a9\u0647 \u0622\u06cc\u0627 \u062f\u0627\u0645\u0646\u0647 \u062e\u0627\u0635 \u062f\u0627\u0631\u0627\u06cc \u0631\u06a9\u0648\u0631\u062f\u0647\u0627\u06cc MX\u060c \u0631\u06a9\u0648\u0631\u062f\u0647\u0627\u06cc SPF \u0648 \u0631\u06a9\u0648\u0631\u062f\u0647\u0627\u06cc DMARC \u0627\u0633\u062a \u06cc\u0627 \u062e\u06cc\u0631.  \u0627\u06af\u0631 \u062f\u0627\u0631\u0646\u062f \u0686\u0647 \u0633\u0648\u0627\u0628\u0642\u06cc \u062f\u0627\u0631\u0646\u062f.<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight go\"><code>  <span class=\"k\">var<\/span> <span class=\"n\">hasMX<\/span><span class=\"p\">,<\/span> <span class=\"n\">hasSPF<\/span><span class=\"p\">,<\/span> <span class=\"n\">hasDMARC<\/span> <span class=\"kt\">bool<\/span> \n  <span class=\"k\">var<\/span> <span class=\"n\">spfRecord<\/span> <span class=\"kt\">string<\/span>\n  <span class=\"k\">var<\/span> <span class=\"n\">dmarcRecord<\/span>  <span class=\"kt\">string<\/span> \n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u0627\u06a9\u0646\u0648\u0646 \u0632\u0645\u0627\u0646 \u0622\u0646 \u0627\u0633\u062a \u06a9\u0647 \u062f\u0627\u062f\u0647 \u0647\u0627 \u0631\u0627 \u062f\u0631 \u0627\u06cc\u0646\u062a\u0631\u0646\u062a \u0628\u0631\u0631\u0633\u06cc \u06a9\u0646\u06cc\u062f.  \u0628\u0633\u062a\u0647 \u0647\u0627\u06cc \u0641\u0634\u0631\u062f\u0647 \u062f\u0627\u062e\u0644\u06cc Go\u060c \u06a9\u0627\u0631 \u0631\u0627 \u0627\u0646\u062c\u0627\u0645 \u062f\u0647\u06cc\u062f <code>net\/http<\/code> \u0628\u0633\u062a\u0647 \u0628\u0646\u062f\u06cc  \u062f\u0631 \u0627\u06cc\u0646 \u0635\u0648\u0631\u062a\u060c \u0634\u0645\u0627 \u0628\u0627\u06cc\u062f \u0627\u0632 ruby \u200b\u200b\u06cc\u0627 nodej \u0647\u0627\u06cc\u06cc \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc \u06a9\u0631\u062f\u06cc\u062f \u06a9\u0647 \u0628\u0631\u0627\u06cc \u0646\u0635\u0628 \u0628\u0627\u06cc\u0646\u0631\u06cc \u0647\u0627\u06cc \u0628\u06cc\u0634\u062a\u0631 \u0628\u0647 \u0622\u0646 \u0646\u06cc\u0627\u0632 \u062f\u0627\u0634\u062a\u06cc\u062f.<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight go\"><code>    <span class=\"n\">mxRecords<\/span><span class=\"p\">,<\/span><span class=\"n\">err<\/span> <span class=\"o\">:=<\/span> <span class=\"n\">net<\/span><span class=\"o\">.<\/span><span class=\"n\">LookupMX<\/span><span class=\"p\">(<\/span><span class=\"n\">domain<\/span><span class=\"p\">)<\/span>\n\n    <span class=\"k\">if<\/span> <span class=\"n\">err<\/span> <span class=\"o\">!=<\/span> <span class=\"no\">nil<\/span><span class=\"p\">{<\/span>\n        <span class=\"n\">log<\/span><span class=\"o\">.<\/span><span class=\"n\">Printf<\/span><span class=\"p\">(<\/span><span class=\"s\">\"Error: %v<\/span><span class=\"se\">\\n<\/span><span class=\"s\">\"<\/span><span class=\"p\">,<\/span><span class=\"n\">err<\/span><span class=\"p\">)<\/span>\n    <span class=\"p\">}<\/span>\n\n    <span class=\"k\">if<\/span> <span class=\"nb\">len<\/span><span class=\"p\">(<\/span><span class=\"n\">mxRecords<\/span><span class=\"p\">)<\/span><span class=\"o\">&gt;<\/span><span class=\"m\">0<\/span><span class=\"p\">{<\/span>\n        <span class=\"n\">hasMX<\/span> <span class=\"o\">=<\/span> <span class=\"no\">true<\/span> \n    <span class=\"p\">}<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u0645\u0627 \u0627\u0632 \u0628\u0633\u062a\u0647 \u0646\u062a \u0628\u0631\u0627\u06cc \u062f\u0631\u06cc\u0627\u0641\u062a \u0622\u0646 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc \u06a9\u0646\u06cc\u0645 <code>mxRecords<\/code>\u060c \u062f\u0631 \u0635\u0648\u0631\u062a\u06cc \u06a9\u0647 \u062f\u0627\u062f\u0647 \u0647\u0627 \u0631\u0627 \u062f\u0631\u06cc\u0627\u0641\u062a \u0646\u06a9\u0646\u06cc\u0645\u060c \u062e\u0637\u0627 \u062f\u0631\u06cc\u0627\u0641\u062a \u0645\u06cc \u06a9\u0646\u06cc\u0645.  \u062e\u0637\u0627 \u0631\u0627 \u062f\u0631 \u062e\u0637\u0648\u0637 \u0632\u06cc\u0631 \u0628\u0631\u0631\u0633\u06cc \u0645\u06cc \u06a9\u0646\u06cc\u0645.  \u0628\u0631\u0627\u06cc \u0628\u0631\u0631\u0633\u06cc \u0627\u06cc\u0646\u06a9\u0647 \u0622\u06cc\u0627 mxRecords \u0631\u0627 \u062f\u0631\u06cc\u0627\u0641\u062a \u06a9\u0631\u062f\u0647\u200c\u0627\u06cc\u0645\u060c \u0628\u0631\u0631\u0633\u06cc \u0645\u06cc\u200c\u06a9\u0646\u06cc\u0645 \u06a9\u0647 \u0622\u06cc\u0627 \u0637\u0648\u0644 \u0622\u0631\u0627\u06cc\u0647 \u0628\u06cc\u0634 \u0627\u0632 \u06cc\u06a9 \u0627\u0633\u062a \u06cc\u0627 \u062e\u06cc\u0631\u060c \u0628\u0647 \u0627\u06cc\u0646 \u0645\u0639\u0646\u06cc \u06a9\u0647 \u0622\u06cc\u0627 \u0622\u0631\u0627\u06cc\u0647 \u062d\u0627\u0648\u06cc \u0628\u06cc\u0634 \u0627\u0632 \u06cc\u06a9 \u0639\u0646\u0635\u0631 \u0627\u0633\u062a.<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight go\"><code>    <span class=\"n\">txtRecords<\/span><span class=\"p\">,<\/span> <span class=\"n\">err<\/span> <span class=\"o\">:=<\/span> <span class=\"n\">net<\/span><span class=\"o\">.<\/span><span class=\"n\">LookupTXT<\/span><span class=\"p\">(<\/span><span class=\"n\">domain<\/span><span class=\"p\">)<\/span>\n\n    <span class=\"k\">if<\/span> <span class=\"n\">err<\/span> <span class=\"o\">!=<\/span> <span class=\"no\">nil<\/span><span class=\"p\">{<\/span>\n        <span class=\"n\">log<\/span><span class=\"o\">.<\/span><span class=\"n\">Printf<\/span><span class=\"p\">(<\/span><span class=\"s\">\"Error: %v<\/span><span class=\"se\">\\n<\/span><span class=\"s\">\"<\/span><span class=\"p\">,<\/span><span class=\"n\">err<\/span><span class=\"p\">)<\/span>\n    <span class=\"p\">}<\/span>\n\n    <span class=\"k\">for<\/span> <span class=\"n\">_<\/span><span class=\"p\">,<\/span> <span class=\"n\">record<\/span> <span class=\"o\">:=<\/span> <span class=\"k\">range<\/span> <span class=\"n\">txtRecords<\/span><span class=\"p\">{<\/span>\n        <span class=\"k\">if<\/span> <span class=\"n\">strings<\/span><span class=\"o\">.<\/span><span class=\"n\">HasPrefix<\/span><span class=\"p\">(<\/span><span class=\"n\">record<\/span><span class=\"p\">,<\/span><span class=\"s\">\"v=spf1\"<\/span><span class=\"p\">){<\/span>\n            <span class=\"n\">hasSPF<\/span> <span class=\"o\">=<\/span> <span class=\"no\">true<\/span> \n            <span class=\"n\">spfRecord<\/span> <span class=\"o\">=<\/span> <span class=\"n\">record<\/span>\n            <span class=\"k\">break<\/span>\n        <span class=\"p\">}<\/span>\n    <span class=\"p\">}<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u0645\u0634\u0627\u0628\u0647 mxRecords\u060c \u0645\u0627 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u062f\u0627\u062f\u0647 \u0647\u0627 \u0648 \u062e\u0637\u0627\u0647\u0627 \u0631\u0627 \u0645\u062f\u06cc\u0631\u06cc\u062a \u0645\u06cc \u06a9\u0646\u06cc\u0645 <code>:=<\/code> \u0627\u067e\u0631\u0627\u062a\u0648\u0631. <\/p>\n<blockquote>\n<p>\u06cc\u0627\u062f \u0622\u0648\u0631\u062f\u0646\u060c <code>:=<\/code> \u06cc\u06a9 \u0627\u0639\u0644\u0627\u0645\u06cc\u0647 \u0627\u0633\u062a\u060c \u062f\u0631 \u062d\u0627\u0644\u06cc \u06a9\u0647 <code>=<\/code> \u06cc\u06a9 \u0627\u067e\u0631\u0627\u062a\u0648\u0631 \u0627\u0646\u062a\u0633\u0627\u0628 \u0627\u0633\u062a. <\/p>\n<\/blockquote>\n<p>\u067e\u0633 \u0627\u0632 \u0631\u0633\u06cc\u062f\u06af\u06cc \u0628\u0647 \u062e\u0637\u0627\u060c \u0627\u0632 \u0622\u0646 \u0639\u0628\u0648\u0631 \u0645\u06cc \u06a9\u0646\u06cc\u0645 <code>txtRecords<\/code> slice\u060c \u0627\u0632 \u0622\u0646\u062c\u0627\u06cc\u06cc \u06a9\u0647 \u0645\u0627 \u0628\u0647 \u0627\u06cc\u0646\u062f\u06a9\u0633 \u0646\u06cc\u0627\u0632 \u0646\u062f\u0627\u0631\u06cc\u0645\u060c \u0622\u0646 \u0631\u0627 \u0646\u0627\u062f\u06cc\u062f\u0647 \u0645\u06cc \u06af\u06cc\u0631\u06cc\u0645 <code>_<\/code>.  \u0627\u0632 \u0622\u0646\u062c\u0627\u06cc\u06cc \u06a9\u0647 Golang \u0627\u062c\u0627\u0632\u0647 \u062f\u0627\u0634\u062a\u0646 \u0645\u062a\u063a\u06cc\u0631\u0647\u0627\u06cc \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0646\u0634\u062f\u0647 \u0631\u0627 \u0646\u0645\u06cc \u062f\u0647\u062f\u060c \u0627\u0632 \u0639\u0645\u0644\u06af\u0631 \u0632\u06cc\u0631 \u062e\u0637 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc \u06a9\u0646\u06cc\u0645.  \u0647\u0646\u06af\u0627\u0645\u06cc \u06a9\u0647 \u0645\u0627 \u062d\u0644\u0642\u0647 \u0628\u06cc\u0634 \u0627\u0632 <code>txtRecords<\/code>\u060c \u0628\u0631\u0631\u0633\u06cc \u0645\u06cc \u06a9\u0646\u06cc\u0645 \u06a9\u0647 \u0622\u06cc\u0627 \u0646\u0633\u062e\u0647 \u0631\u06a9\u0648\u0631\u062f \u0632\u06cc\u0631 \u0648\u062c\u0648\u062f \u062f\u0627\u0631\u062f \u06cc\u0627 \u062e\u06cc\u0631 <code>spf1<\/code>.  \u0627\u06af\u0631 \u0686\u0646\u06cc\u0646 \u0627\u0633\u062a\u060c \u0639\u0644\u0627\u0645\u062a \u06af\u0630\u0627\u0631\u06cc \u0645\u06cc \u06a9\u0646\u06cc\u0645 <code>hasSPF<\/code> \u0645\u062b\u0628\u062a \u0648 \u0630\u062e\u06cc\u0631\u0647 \u0645\u0642\u062f\u0627\u0631 \u0631\u06a9\u0648\u0631\u062f \u062f\u0631 <code>spfRecord<\/code>.<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight go\"><code>    <span class=\"n\">dmarcRecords<\/span><span class=\"p\">,<\/span> <span class=\"n\">err<\/span> <span class=\"o\">:=<\/span> <span class=\"n\">net<\/span><span class=\"o\">.<\/span><span class=\"n\">LookupTXT<\/span><span class=\"p\">(<\/span><span class=\"s\">\"_dmarc.\"<\/span> <span class=\"o\">+<\/span> <span class=\"n\">domain<\/span><span class=\"p\">)<\/span>\n\n    <span class=\"k\">if<\/span> <span class=\"n\">err<\/span> <span class=\"o\">!=<\/span> <span class=\"no\">nil<\/span><span class=\"p\">{<\/span>\n        <span class=\"n\">log<\/span><span class=\"o\">.<\/span><span class=\"n\">Printf<\/span><span class=\"p\">(<\/span><span class=\"s\">\"Error: %v<\/span><span class=\"se\">\\n<\/span><span class=\"s\">\"<\/span><span class=\"p\">,<\/span><span class=\"n\">err<\/span><span class=\"p\">)<\/span>\n    <span class=\"p\">}<\/span>\n\n    <span class=\"k\">for<\/span> <span class=\"n\">_<\/span><span class=\"p\">,<\/span> <span class=\"n\">record<\/span> <span class=\"o\">:=<\/span> <span class=\"k\">range<\/span> <span class=\"n\">dmarcRecords<\/span><span class=\"p\">{<\/span>\n        <span class=\"k\">if<\/span> <span class=\"n\">strings<\/span><span class=\"o\">.<\/span><span class=\"n\">HasPrefix<\/span><span class=\"p\">(<\/span><span class=\"n\">record<\/span> <span class=\"p\">,<\/span><span class=\"s\">\"v=DMARC1\"<\/span><span class=\"p\">){<\/span>\n            <span class=\"n\">hasDMARC<\/span> <span class=\"o\">=<\/span> <span class=\"no\">true<\/span>\n            <span class=\"n\">dmarcRecord<\/span> <span class=\"o\">=<\/span> <span class=\"n\">record<\/span> \n            <span class=\"k\">break<\/span>\n        <span class=\"p\">}<\/span>\n    <span class=\"p\">}<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u0628\u0647 \u062f\u0646\u0628\u0627\u0644 <code>dmarcRecords<\/code> \u062a\u0642\u0631\u06cc\u0628\u0627 \u0634\u0628\u06cc\u0647 \u0628\u0647 <code>txtRecords<\/code>.  \u0627\u0636\u0627\u0641\u0647 \u0645\u06cc \u06a9\u0646\u06cc\u0645 <code>_dmarc.<\/code> \u062f\u0631 \u067e\u06cc\u0634\u0648\u0646\u062f url \u062f\u0627\u0645\u0646\u0647\u060c \u0648 \u0627\u0632 <code>net<\/code> \u0628\u0633\u062a\u0647 \u0627\u06cc \u0628\u0631\u0627\u06cc \u0628\u0631\u0631\u0633\u06cc \u0627\u06cc\u0646\u06a9\u0647 \u0622\u06cc\u0627 \u0631\u06a9\u0648\u0631\u062f\u0647\u0627\u06cc \u0645\u0631\u0628\u0648\u0637\u0647 \u0628\u0631\u0627\u06cc dmarc \u0648\u062c\u0648\u062f \u062f\u0627\u0631\u062f \u06cc\u0627 \u062e\u06cc\u0631.  \u0647\u0646\u06af\u0627\u0645 \u0639\u0628\u0648\u0631 \u0627\u0632 \u0628\u0631\u0634 dmarcRecords\u060c \u0628\u0631\u0631\u0633\u06cc \u0645\u06cc \u06a9\u0646\u06cc\u0645 \u06a9\u0647 \u0622\u06cc\u0627 \u0646\u0633\u062e\u0647 \u0631\u06a9\u0648\u0631\u062f \u0648\u062c\u0648\u062f \u062f\u0627\u0631\u062f \u06cc\u0627 \u062e\u06cc\u0631 <code>DMARC1<\/code> hasDMARC true \u0631\u0627 \u0639\u0644\u0627\u0645\u062a \u06af\u0630\u0627\u0631\u06cc \u0645\u06cc \u06a9\u0646\u06cc\u0645 \u0648 \u0645\u0642\u062f\u0627\u0631 \u0631\u06a9\u0648\u0631\u062f \u0631\u0627 \u062f\u0631 dmarcRecord \u0630\u062e\u06cc\u0631\u0647 \u0645\u06cc \u06a9\u0646\u06cc\u0645. <\/p>\n<p>\u0628\u0631\u0627\u06cc \u0628\u0631\u0631\u0633\u06cc \u0627\u06cc\u0646\u06a9\u0647 \u0622\u06cc\u0627 \u0645\u0627 \u0645\u0642\u0627\u062f\u06cc\u0631 \u0648 \u06a9\u0646\u062a\u0631\u0644 \u06a9\u0646\u0646\u062f\u0647 \u062e\u0648\u062f \u0631\u0627 \u062f\u0631\u06cc\u0627\u0641\u062a \u0645\u06cc \u06a9\u0646\u06cc\u0645 <code>isValidDomain<\/code> \u062e\u0648\u0628 \u06a9\u0627\u0631 \u0645\u06cc \u06a9\u0646\u062f  \u0628\u06cc\u0627\u06cc\u06cc\u062f \u0645\u0642\u0627\u062f\u06cc\u0631\u06cc \u0631\u0627 \u06a9\u0647 \u062a\u0627 \u06a9\u0646\u0648\u0646 \u062f\u0627\u0634\u062a\u0647 \u0627\u06cc\u0645 \u0686\u0627\u067e \u06a9\u0646\u06cc\u0645.<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight go\"><code><span class=\"n\">fmt<\/span><span class=\"o\">.<\/span><span class=\"n\">Printf<\/span><span class=\"p\">(<\/span><span class=\"s\">\"domain=%v<\/span><span class=\"se\">\\n<\/span><span class=\"s\">,hasMX=%v<\/span><span class=\"se\">\\n<\/span><span class=\"s\">,hasSPF=%v<\/span><span class=\"se\">\\n<\/span><span class=\"s\">,spfRecord=%v<\/span><span class=\"se\">\\n<\/span><span class=\"s\">,hasDMARC=%v<\/span><span class=\"se\">\\n<\/span><span class=\"s\">,dmarcRecord=%v<\/span><span class=\"se\">\\n<\/span><span class=\"s\">\"<\/span><span class=\"p\">,<\/span><span class=\"n\">domain<\/span><span class=\"p\">,<\/span><span class=\"n\">hasMX<\/span><span class=\"p\">,<\/span><span class=\"n\">hasSPF<\/span><span class=\"p\">,<\/span><span class=\"n\">spfRecord<\/span><span class=\"p\">,<\/span><span class=\"n\">hasDMARC<\/span><span class=\"p\">,<\/span><span class=\"n\">dmarcRecord<\/span><span class=\"p\">)<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u062a\u062f\u0648\u06cc\u0646 <code>isValidDomain<\/code> \u0627\u0633\u06a9\u0631\u06cc\u067e\u062a\u060c \u0645\u0627 \u062f\u0627\u0631\u06cc\u0645.<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight go\"><code><span class=\"k\">func<\/span> <span class=\"n\">isValidDomain<\/span><span class=\"p\">(<\/span><span class=\"n\">domain<\/span> <span class=\"kt\">string<\/span><span class=\"p\">){<\/span>\n    <span class=\"k\">var<\/span> <span class=\"n\">hasMX<\/span><span class=\"p\">,<\/span> <span class=\"n\">hasSPF<\/span><span class=\"p\">,<\/span> <span class=\"n\">hasDMARC<\/span> <span class=\"kt\">bool<\/span> \n    <span class=\"k\">var<\/span> <span class=\"n\">spfRecord<\/span> <span class=\"kt\">string<\/span>\n    <span class=\"k\">var<\/span> <span class=\"n\">dmarcRecord<\/span>  <span class=\"kt\">string<\/span> \n\n    <span class=\"n\">mxRecords<\/span><span class=\"p\">,<\/span><span class=\"n\">err<\/span> <span class=\"o\">:=<\/span> <span class=\"n\">net<\/span><span class=\"o\">.<\/span><span class=\"n\">LookupMX<\/span><span class=\"p\">(<\/span><span class=\"n\">domain<\/span><span class=\"p\">)<\/span>\n\n    <span class=\"k\">if<\/span> <span class=\"n\">err<\/span> <span class=\"o\">!=<\/span> <span class=\"no\">nil<\/span><span class=\"p\">{<\/span>\n        <span class=\"n\">log<\/span><span class=\"o\">.<\/span><span class=\"n\">Printf<\/span><span class=\"p\">(<\/span><span class=\"s\">\"Error: %v<\/span><span class=\"se\">\\n<\/span><span class=\"s\">\"<\/span><span class=\"p\">,<\/span><span class=\"n\">err<\/span><span class=\"p\">)<\/span>\n    <span class=\"p\">}<\/span>\n\n    <span class=\"k\">if<\/span> <span class=\"nb\">len<\/span><span class=\"p\">(<\/span><span class=\"n\">mxRecords<\/span><span class=\"p\">)<\/span><span class=\"o\">&gt;<\/span><span class=\"m\">0<\/span><span class=\"p\">{<\/span>\n        <span class=\"n\">hasMX<\/span> <span class=\"o\">=<\/span> <span class=\"no\">true<\/span> \n    <span class=\"p\">}<\/span>\n\n    <span class=\"n\">txtRecords<\/span><span class=\"p\">,<\/span> <span class=\"n\">err<\/span> <span class=\"o\">:=<\/span> <span class=\"n\">net<\/span><span class=\"o\">.<\/span><span class=\"n\">LookupTXT<\/span><span class=\"p\">(<\/span><span class=\"n\">domain<\/span><span class=\"p\">)<\/span>\n\n    <span class=\"k\">if<\/span> <span class=\"n\">err<\/span> <span class=\"o\">!=<\/span> <span class=\"no\">nil<\/span><span class=\"p\">{<\/span>\n        <span class=\"n\">log<\/span><span class=\"o\">.<\/span><span class=\"n\">Printf<\/span><span class=\"p\">(<\/span><span class=\"s\">\"Error: %v<\/span><span class=\"se\">\\n<\/span><span class=\"s\">\"<\/span><span class=\"p\">,<\/span><span class=\"n\">err<\/span><span class=\"p\">)<\/span>\n    <span class=\"p\">}<\/span>\n\n    <span class=\"k\">for<\/span> <span class=\"n\">_<\/span><span class=\"p\">,<\/span> <span class=\"n\">record<\/span> <span class=\"o\">:=<\/span> <span class=\"k\">range<\/span> <span class=\"n\">txtRecords<\/span><span class=\"p\">{<\/span>\n        <span class=\"k\">if<\/span> <span class=\"n\">strings<\/span><span class=\"o\">.<\/span><span class=\"n\">HasPrefix<\/span><span class=\"p\">(<\/span><span class=\"n\">record<\/span><span class=\"p\">,<\/span><span class=\"s\">\"v=spf1\"<\/span><span class=\"p\">){<\/span>\n            <span class=\"n\">hasSPF<\/span> <span class=\"o\">=<\/span> <span class=\"no\">true<\/span> \n            <span class=\"n\">spfRecord<\/span> <span class=\"o\">=<\/span> <span class=\"n\">record<\/span>\n            <span class=\"k\">break<\/span>\n        <span class=\"p\">}<\/span>\n    <span class=\"p\">}<\/span>\n\n    <span class=\"n\">dmarcRecords<\/span><span class=\"p\">,<\/span> <span class=\"n\">err<\/span> <span class=\"o\">:=<\/span> <span class=\"n\">net<\/span><span class=\"o\">.<\/span><span class=\"n\">LookupTXT<\/span><span class=\"p\">(<\/span><span class=\"s\">\"_dmarc.\"<\/span> <span class=\"o\">+<\/span> <span class=\"n\">domain<\/span><span class=\"p\">)<\/span>\n\n    <span class=\"k\">if<\/span> <span class=\"n\">err<\/span> <span class=\"o\">!=<\/span> <span class=\"no\">nil<\/span><span class=\"p\">{<\/span>\n        <span class=\"n\">log<\/span><span class=\"o\">.<\/span><span class=\"n\">Printf<\/span><span class=\"p\">(<\/span><span class=\"s\">\"Error: %v<\/span><span class=\"se\">\\n<\/span><span class=\"s\">\"<\/span><span class=\"p\">,<\/span><span class=\"n\">err<\/span><span class=\"p\">)<\/span>\n    <span class=\"p\">}<\/span>\n\n    <span class=\"k\">for<\/span> <span class=\"n\">_<\/span><span class=\"p\">,<\/span> <span class=\"n\">record<\/span> <span class=\"o\">:=<\/span> <span class=\"k\">range<\/span> <span class=\"n\">dmarcRecords<\/span><span class=\"p\">{<\/span>\n        <span class=\"k\">if<\/span> <span class=\"n\">strings<\/span><span class=\"o\">.<\/span><span class=\"n\">HasPrefix<\/span><span class=\"p\">(<\/span><span class=\"n\">record<\/span> <span class=\"p\">,<\/span><span class=\"s\">\"v=DMARC1\"<\/span><span class=\"p\">){<\/span>\n            <span class=\"n\">hasDMARC<\/span> <span class=\"o\">=<\/span> <span class=\"no\">true<\/span>\n            <span class=\"n\">dmarcRecord<\/span> <span class=\"o\">=<\/span> <span class=\"n\">record<\/span> \n            <span class=\"k\">break<\/span>\n        <span class=\"p\">}<\/span>\n    <span class=\"p\">}<\/span>\n\n\n    <span class=\"n\">fmt<\/span><span class=\"o\">.<\/span><span class=\"n\">Printf<\/span><span class=\"p\">(<\/span><span class=\"s\">\"domain=%v<\/span><span class=\"se\">\\n<\/span><span class=\"s\">,hasMX=%v<\/span><span class=\"se\">\\n<\/span><span class=\"s\">,hasSPF=%v<\/span><span class=\"se\">\\n<\/span><span class=\"s\">,spfRecord=%v<\/span><span class=\"se\">\\n<\/span><span class=\"s\">,hasDMARC=%v<\/span><span class=\"se\">\\n<\/span><span class=\"s\">,dmarcRecord=%v<\/span><span class=\"se\">\\n<\/span><span class=\"s\">\"<\/span><span class=\"p\">,<\/span><span class=\"n\">domain<\/span><span class=\"p\">,<\/span><span class=\"n\">hasMX<\/span><span class=\"p\">,<\/span><span class=\"n\">hasSPF<\/span><span class=\"p\">,<\/span><span class=\"n\">spfRecord<\/span><span class=\"p\">,<\/span><span class=\"n\">hasDMARC<\/span><span class=\"p\">,<\/span><span class=\"n\">dmarcRecord<\/span><span class=\"p\">)<\/span>\n<span class=\"p\">}<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u0627\u0632 \u0622\u0646\u062c\u0627\u06cc\u06cc \u06a9\u0647\u060c \u0639\u0645\u0644\u06a9\u0631\u062f \u0645\u0627 \u06a9\u0627\u0631 \u0645\u06cc \u06a9\u0646\u062f.  \u0628\u06cc\u0627\u06cc\u06cc\u062f \u0634\u0631\u0648\u0639 \u0628\u0647 \u06a9\u0627\u0631 \u0631\u0648\u06cc \u0633\u0627\u062e\u062a API \u0647\u0627\u06cc REST \u062e\u0648\u062f \u06a9\u0646\u06cc\u0645.  \u062f\u0631 \u0627\u0628\u062a\u062f\u0627\u060c \u0645\u0627 2 \u0633\u0627\u062e\u062a\u0627\u0631 \u0631\u0627 \u062a\u0639\u0631\u06cc\u0641 \u062e\u0648\u0627\u0647\u06cc\u0645 \u06a9\u0631\u062f\u060c <code>DomainURL<\/code> \u0648 <code>DomainVar<\/code>.  \u06cc\u06a9\u06cc \u0628\u0631\u0627\u06cc \u0631\u0645\u0632\u06af\u0634\u0627\u06cc\u06cc \u0648\u0631\u0648\u062f\u06cc \u0648 \u062f\u06cc\u06af\u0631\u06cc \u0628\u0631\u0627\u06cc \u0631\u0645\u0632\u06af\u0630\u0627\u0631\u06cc \u062e\u0631\u0648\u062c\u06cc.<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight go\"><code><span class=\"k\">type<\/span> <span class=\"n\">DomainURL<\/span> <span class=\"k\">struct<\/span><span class=\"p\">{<\/span>\n    <span class=\"n\">DomainURL<\/span> <span class=\"kt\">string<\/span> <span class=\"s\">`string:\"domainurl\"`<\/span>\n<span class=\"p\">}<\/span>\n\n<span class=\"k\">type<\/span> <span class=\"n\">DomainVar<\/span> <span class=\"k\">struct<\/span><span class=\"p\">{<\/span>\n    <span class=\"n\">Domain<\/span> <span class=\"kt\">string<\/span> <span class=\"s\">`json:\"domain\"`<\/span>\n    <span class=\"n\">HasMX<\/span> <span class=\"kt\">bool<\/span> <span class=\"s\">`json:\"hasmx\"`<\/span>\n    <span class=\"n\">HasSPF<\/span> <span class=\"kt\">bool<\/span> <span class=\"s\">`json:\"haspf\"`<\/span>\n    <span class=\"n\">SpfRecord<\/span> <span class=\"kt\">string<\/span> <span class=\"s\">`json:\"spfrecord\"`<\/span>\n    <span class=\"n\">HasDMARC<\/span> <span class=\"kt\">bool<\/span> <span class=\"s\">`json:\"hasdmarc\"`<\/span>\n    <span class=\"n\">DmarcRecord<\/span> <span class=\"kt\">string<\/span> <span class=\"s\">`json:\"dmarcRecord\"`<\/span>\n<span class=\"p\">}<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u0627\u06af\u0631 \u0634\u0645\u0627 \u06cc\u06a9 \u062a\u0648\u0633\u0639\u0647 \u062f\u0647\u0646\u062f\u0647 \u062c\u0627\u0648\u0627 \u0627\u0633\u06a9\u0631\u06cc\u067e\u062a \u0647\u0633\u062a\u06cc\u062f \u0633\u0627\u062e\u062a\u0627\u0631 \u0645\u0634\u0627\u0628\u0647 \u06a9\u0644\u0627\u0633 ES6 \u0627\u0633\u062a.  \u062d\u0627\u0644 \u0627\u062c\u0627\u0632\u0647 \u062f\u0647\u06cc\u062f \u06cc\u06a9 \u0628\u0631\u0634 \u0631\u0627 \u062a\u0639\u0631\u06cc\u0641 \u06a9\u0646\u06cc\u0645 \u06a9\u0647 \u0634\u0628\u06cc\u0647 \u0628\u0631\u062f\u0627\u0631\u0647\u0627 \u062f\u0631 C++ \u0627\u0633\u062a.<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight go\"><code><span class=\"k\">var<\/span> <span class=\"n\">domainVars<\/span> <span class=\"p\">[]<\/span><span class=\"n\">DomainVar<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u06cc\u06a9 \u0628\u0631\u0634 \u0634\u0628\u06cc\u0647 \u0628\u0647 \u06cc\u06a9 \u0622\u0631\u0627\u06cc\u0647 \u0627\u0633\u062a\u060c \u062a\u0641\u0627\u0648\u062a \u0627\u06cc\u0646 \u0627\u0633\u062a \u06a9\u0647 \u0648\u0642\u062a\u06cc \u0645\u06cc \u062e\u0648\u0627\u0647\u06cc\u062f \u0627\u0632 \u0622\u0631\u0627\u06cc\u0647 \u0647\u0627 \u062f\u0631 Golang \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f \u0628\u0627\u06cc\u062f \u0637\u0648\u0644 \u0622\u0646 \u0631\u0627 \u0645\u0634\u062e\u0635 \u06a9\u0646\u06cc\u062f.  \u0628\u0647 \u0647\u0645\u06cc\u0646 \u062f\u0644\u06cc\u0644 \u0627\u0633\u062a \u06a9\u0647 \u0627\u0632 \u06cc\u06a9 \u0628\u0631\u0634 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc \u06a9\u0646\u06cc\u0645\u060c \u0647\u0645\u0686\u0646\u06cc\u0646 \u0628\u0647 \u0622\u0646 \u0645\u06cc \u06af\u0648\u06cc\u06cc\u0645 \u06a9\u0647 \u062d\u0627\u0648\u06cc \u067e\u0633\u062a \u062e\u0648\u0627\u0647\u062f \u0628\u0648\u062f.  \u062f\u0631 \u0627\u06cc\u0646\u062c\u0627 domainVars \u0628\u0631\u0634\u06cc \u0627\u0632 \u0646\u0648\u0639 DomainVar \u0627\u0633\u062a.  \u0627\u0636\u0627\u0641\u0647 \u06a9\u0631\u062f\u0646 \u0645\u0633\u06cc\u0631 \u0628\u0631\u0627\u06cc \u062f\u0631\u062e\u0648\u0627\u0633\u062a POST \u062f\u0631 \u062a\u0627\u0628\u0639 \u0627\u0635\u0644\u06cc. <\/p>\n<p>\u0627\u0628\u062a\u062f\u0627 \u06cc\u06a9 \u0631\u0648\u062a\u0631 \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u062c\u062f\u06cc\u062f \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u062f.  \u0631\u0648\u062a\u0631 \u0631\u0648\u062a\u0631 \u0627\u0635\u0644\u06cc \u0628\u0631\u0646\u0627\u0645\u0647 \u0648\u0628 \u0645\u0627 \u0627\u0633\u062a \u0648 \u0628\u0639\u062f\u0627\u064b \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u067e\u0627\u0631\u0627\u0645\u062a\u0631 \u0628\u0647 \u0633\u0631\u0648\u0631 \u0627\u0631\u0633\u0627\u0644 \u0645\u06cc \u0634\u0648\u062f.  \u062a\u0645\u0627\u0645 \u0627\u062a\u0635\u0627\u0644\u0627\u062a HTTP \u0631\u0627 \u062f\u0631\u06cc\u0627\u0641\u062a \u0645\u06cc \u06a9\u0646\u062f \u0648 \u0622\u0646 \u0631\u0627 \u0628\u0647 \u06a9\u0646\u062a\u0631\u0644 \u06a9\u0646\u0646\u062f\u0647 \u0647\u0627\u06cc \u062f\u0631\u062e\u0648\u0627\u0633\u062a\u06cc \u06a9\u0647 \u062f\u0631 \u0622\u0646 \u062b\u0628\u062a \u0645\u06cc \u06a9\u0646\u06cc\u0645 \u0627\u0631\u0633\u0627\u0644 \u0645\u06cc \u06a9\u0646\u062f.  \u0645\u0627 \u0631\u0648\u062a\u0631 \u0631\u0627 \u062f\u0631 \u062a\u0627\u0628\u0639 \u0627\u0635\u0644\u06cc \u0627\u06cc\u062c\u0627\u062f \u0645\u06cc \u06a9\u0646\u06cc\u0645.  \u067e\u0633 \u0627\u0632 \u062b\u0628\u062a \u0646\u0627\u0645 \u0631\u0648\u062a\u0631\u060c \u0627\u062c\u0627\u0632\u0647 \u062f\u0647\u06cc\u062f \u0646\u0642\u0627\u0637 \u067e\u0627\u06cc\u0627\u0646\u06cc \u0631\u0627 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 HandleFunction \u062a\u0639\u0631\u06cc\u0641 \u06a9\u0646\u06cc\u0645.  \u0645\u0627 HandleFunction \u0631\u0627 \u062a\u0648\u0633\u0637 r.HandleFunc(&#8230;) \u0645\u06cc \u0646\u0627\u0645\u06cc\u0645.<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight go\"><code><span class=\"k\">func<\/span> <span class=\"n\">main<\/span><span class=\"p\">(){<\/span>\n\n    <span class=\"n\">r<\/span> <span class=\"o\">:=<\/span> <span class=\"n\">mux<\/span><span class=\"o\">.<\/span><span class=\"n\">NewRouter<\/span><span class=\"p\">()<\/span>\n    <span class=\"n\">r<\/span><span class=\"o\">.<\/span><span class=\"n\">HandleFunc<\/span><span class=\"p\">(<\/span><span class=\"s\">\"\/form\"<\/span><span class=\"p\">,<\/span><span class=\"n\">formHandler<\/span><span class=\"p\">)<\/span><span class=\"o\">.<\/span><span class=\"n\">Methods<\/span><span class=\"p\">(<\/span><span class=\"s\">\"POST\"<\/span><span class=\"p\">)<\/span>\n\n        <span class=\"n\">fmt<\/span><span class=\"o\">.<\/span><span class=\"n\">Print<\/span><span class=\"p\">(<\/span><span class=\"s\">\"Starting server at port 8000<\/span><span class=\"se\">\\n<\/span><span class=\"s\">\"<\/span><span class=\"p\">)<\/span>\n        <span class=\"n\">log<\/span><span class=\"o\">.<\/span><span class=\"n\">Fatal<\/span><span class=\"p\">(<\/span><span class=\"n\">http<\/span><span class=\"o\">.<\/span><span class=\"n\">ListenAndServe<\/span><span class=\"p\">(<\/span><span class=\"s\">\":8000\"<\/span><span class=\"p\">,<\/span><span class=\"n\">r<\/span><span class=\"p\">))<\/span>\n<span class=\"p\">}<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u062f\u0631 HandleFunc \u0645\u0627 2 \u067e\u0627\u0631\u0627\u0645\u062a\u0631 \u0631\u0627 \u0627\u0631\u0627\u0626\u0647 \u0645\u06cc \u062f\u0647\u06cc\u0645\u060c \u0627\u0648\u0644 \u0645\u0633\u06cc\u0631\u06cc \u06a9\u0647 \u0645\u06cc \u062e\u0648\u0627\u0647\u06cc\u0645 \u062c\u0627\u062f\u0648 \u0631\u0627 \u062f\u0631 \u0622\u0646 \u0628\u0628\u06cc\u0646\u06cc\u0645 \u0648 \u062b\u0627\u0646\u06cc\u0627 \u0646\u0627\u0645 \u062a\u0627\u0628\u0639 \u06a9\u0646\u062a\u0631\u0644\u0631 \u062e\u0627\u0635\u06cc \u0631\u0627 \u0645\u06cc \u0646\u0648\u06cc\u0633\u06cc\u0645 \u06a9\u0647 \u062c\u0627\u062f\u0648 \u0631\u0627 \u0627\u0646\u062c\u0627\u0645 \u0645\u06cc \u062f\u0647\u062f.  GET \u0648 POST \u0645\u062a\u0646\u0627\u0638\u0631 \u0628\u0647 \u0645\u0639\u0646\u0627\u06cc \u0639\u0627\u062f\u06cc \u0627\u0633\u062a\u060c \u0628\u0631\u0627\u06cc \u0633\u0627\u062e\u062a\u0646 \u0639\u0645\u0644\u06cc\u0627\u062a CRUD \u0628\u0631\u0627\u06cc \u0628\u0631\u0646\u0627\u0645\u0647 \u06a9\u0627\u0641\u06cc\u0633\u062a PUT \u0648 DELETE \u0631\u0627 \u0628\u0627 \u062a\u0648\u062c\u0647 \u0628\u0647 \u0645\u0633\u06cc\u0631 \u0627\u0636\u0627\u0641\u0647 \u06a9\u0646\u06cc\u062f.<\/p>\n<p>\u067e\u0648\u0631\u062a \u0633\u0631\u0648\u0631 \u0631\u0627 \u0645\u06cc \u062a\u0648\u0627\u0646 \u0628\u0647 \u0647\u0631 \u0645\u0642\u062f\u0627\u0631 \u0645\u0648\u0631\u062f \u0646\u06cc\u0627\u0632 \u0645\u0646\u062a\u0642\u0644 \u06a9\u0631\u062f. \u0627\u0633\u06a9\u0631\u06cc\u067e\u062a \u0628\u0631\u0627\u06cc POST Request Handler \u06cc\u0627 \u0647\u0645\u0627\u0646 Handler \u06cc\u06a9 \u0645\u0631\u062d\u0644\u0647 \u062f\u0631 \u06cc\u06a9 \u0632\u0645\u0627\u0646.<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight go\"><code><span class=\"k\">func<\/span> <span class=\"n\">formHandler<\/span><span class=\"p\">(<\/span><span class=\"n\">w<\/span> <span class=\"n\">http<\/span><span class=\"o\">.<\/span><span class=\"n\">ResponseWriter<\/span><span class=\"p\">,<\/span> <span class=\"n\">r<\/span> <span class=\"o\">*<\/span><span class=\"n\">http<\/span><span class=\"o\">.<\/span><span class=\"n\">Request<\/span><span class=\"p\">){<\/span>\n   <span class=\"n\">w<\/span><span class=\"o\">.<\/span><span class=\"n\">Header<\/span><span class=\"p\">()<\/span><span class=\"o\">.<\/span><span class=\"n\">Set<\/span><span class=\"p\">(<\/span><span class=\"s\">\"Content-Type\"<\/span><span class=\"p\">,<\/span><span class=\"s\">\"application\/json\"<\/span><span class=\"p\">)<\/span>\n<span class=\"p\">}<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u0645\u0627 \u0647\u062f\u0631 \u0631\u0627 \u0628\u0631\u0627\u06cc \u06a9\u0646\u062a\u0631\u0644\u0631 \u062e\u0627\u0635 \u062f\u0631 \u0627\u06cc\u0646\u062c\u0627 \u062a\u0639\u0631\u06cc\u0641 \u0645\u06cc \u06a9\u0646\u06cc\u0645.  \u0645\u0627 \u0641\u0642\u0637 \u0647\u062f\u0631 &#8220;Content-Type&#8221; \u0631\u0627 \u0631\u0648\u06cc &#8220;application\/json&#8221; \u062a\u0646\u0638\u06cc\u0645 \u0645\u06cc \u06a9\u0646\u06cc\u0645.<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight go\"><code><span class=\"k\">func<\/span> <span class=\"n\">formHandler<\/span><span class=\"p\">(<\/span><span class=\"n\">w<\/span> <span class=\"n\">http<\/span><span class=\"o\">.<\/span><span class=\"n\">ResponseWriter<\/span><span class=\"p\">,<\/span> <span class=\"n\">r<\/span> <span class=\"o\">*<\/span><span class=\"n\">http<\/span><span class=\"o\">.<\/span><span class=\"n\">Request<\/span><span class=\"p\">){<\/span>\n   <span class=\"n\">w<\/span><span class=\"o\">.<\/span><span class=\"n\">Header<\/span><span class=\"p\">()<\/span><span class=\"o\">.<\/span><span class=\"n\">Set<\/span><span class=\"p\">(<\/span><span class=\"s\">\"Content-Type\"<\/span><span class=\"p\">,<\/span><span class=\"s\">\"application\/json\"<\/span><span class=\"p\">)<\/span>\n\n   <span class=\"k\">var<\/span> <span class=\"n\">domainUrl<\/span> <span class=\"n\">DomainURL<\/span>\n   <span class=\"n\">json<\/span><span class=\"o\">.<\/span><span class=\"n\">NewDecoder<\/span><span class=\"p\">(<\/span><span class=\"n\">r<\/span><span class=\"o\">.<\/span><span class=\"n\">Body<\/span><span class=\"p\">)<\/span><span class=\"o\">.<\/span><span class=\"n\">Decode<\/span><span class=\"p\">(<\/span><span class=\"o\">&amp;<\/span><span class=\"n\">domainUrl<\/span><span class=\"p\">)<\/span>\n<span class=\"p\">}<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u0627\u06a9\u0646\u0648\u0646 \u0645\u0642\u062f\u0627\u0631 \u062f\u0627\u0645\u0646\u0647 \u0631\u0627 \u062f\u0631 \u062a\u0627\u0628\u0639 isValidDomain \u0627\u0631\u0633\u0627\u0644 \u0645\u06cc \u06a9\u0646\u06cc\u0645.  \u0645\u0627 \u0647\u0645\u0647 \u0631\u0627 \u062f\u0631 a \u0630\u062e\u06cc\u0631\u0647 \u0645\u06cc \u06a9\u0646\u06cc\u0645 <code>domainVar<\/code>.  \u067e\u0633\u062a \u06a9\u0646\u06cc\u062f \u06a9\u0647 domainVar \u0631\u0627 \u0628\u0647 \u0622\u0646 \u0627\u0636\u0627\u0641\u0647 \u0645\u06cc \u06a9\u0646\u06cc\u0645 <code>domainVars<\/code> \u062a\u06a9\u0647.  \u0633\u067e\u0633 \u0627\u0632 \u0628\u0633\u062a\u0647 \u0631\u0645\u0632\u06af\u0630\u0627\u0631\u06cc \u0628\u0631\u0627\u06cc \u0631\u0645\u0632\u06af\u0630\u0627\u0631\u06cc \u062a\u0645\u0627\u0645 \u062f\u0627\u062f\u0647 \u0647\u0627\u06cc domainVars \u0648 \u0647\u0645\u0686\u0646\u06cc\u0646 \u0628\u0631\u06af\u0631\u062f\u0627\u0646\u062f\u0646 \u0622\u0646 \u062f\u0631 \u0647\u0645\u0627\u0646 \u062e\u0637 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc \u06a9\u0646\u06cc\u0645.  \u062f\u0631 \u0646\u0647\u0627\u06cc\u062a\u060c \u0627\u0631\u0633\u0627\u0644 \u062f\u0631\u062e\u0648\u0627\u0633\u062a POST\u060c \u0648\u0627\u06a9\u0634\u06cc \u062f\u0627\u062f\u0647 \u0647\u0627\u060c \u0630\u062e\u06cc\u0631\u0647 \u0633\u0627\u0632\u06cc \u062f\u0631 \u06cc\u06a9 \u0633\u0627\u062e\u062a\u0627\u0631\u060c \u0627\u0644\u062d\u0627\u0642 \u0628\u0647 \u0628\u0631\u0634 \u0648 \u0633\u067e\u0633 \u0628\u0631\u06af\u0631\u062f\u0627\u0646\u062f\u0646 \u0628\u0631\u0634.<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight go\"><code><span class=\"k\">func<\/span> <span class=\"n\">formHandler<\/span><span class=\"p\">(<\/span><span class=\"n\">w<\/span> <span class=\"n\">http<\/span><span class=\"o\">.<\/span><span class=\"n\">ResponseWriter<\/span><span class=\"p\">,<\/span> <span class=\"n\">r<\/span> <span class=\"o\">*<\/span><span class=\"n\">http<\/span><span class=\"o\">.<\/span><span class=\"n\">Request<\/span><span class=\"p\">){<\/span>\n    <span class=\"n\">w<\/span><span class=\"o\">.<\/span><span class=\"n\">Header<\/span><span class=\"p\">()<\/span><span class=\"o\">.<\/span><span class=\"n\">Set<\/span><span class=\"p\">(<\/span><span class=\"s\">\"Content-Type\"<\/span><span class=\"p\">,<\/span><span class=\"s\">\"application\/json\"<\/span><span class=\"p\">)<\/span>\n\n    <span class=\"k\">var<\/span> <span class=\"n\">domainUrl<\/span> <span class=\"n\">DomainURL<\/span>\n    <span class=\"n\">json<\/span><span class=\"o\">.<\/span><span class=\"n\">NewDecoder<\/span><span class=\"p\">(<\/span><span class=\"n\">r<\/span><span class=\"o\">.<\/span><span class=\"n\">Body<\/span><span class=\"p\">)<\/span><span class=\"o\">.<\/span><span class=\"n\">Decode<\/span><span class=\"p\">(<\/span><span class=\"o\">&amp;<\/span><span class=\"n\">domainUrl<\/span><span class=\"p\">)<\/span>\n\n    <span class=\"n\">domainVar<\/span>  <span class=\"o\">:=<\/span> <span class=\"n\">isValidDomain<\/span><span class=\"p\">(<\/span><span class=\"n\">domainUrl<\/span><span class=\"o\">.<\/span><span class=\"n\">DomainURL<\/span><span class=\"p\">)<\/span>\n    <span class=\"n\">domainVars<\/span> <span class=\"o\">=<\/span> <span class=\"nb\">append<\/span><span class=\"p\">(<\/span><span class=\"n\">domainVars<\/span><span class=\"p\">,<\/span> <span class=\"n\">domainVar<\/span><span class=\"p\">)<\/span>\n\n    <span class=\"n\">json<\/span><span class=\"o\">.<\/span><span class=\"n\">NewEncoder<\/span><span class=\"p\">(<\/span><span class=\"n\">w<\/span><span class=\"p\">)<\/span><span class=\"o\">.<\/span><span class=\"n\">Encode<\/span><span class=\"p\">(<\/span><span class=\"n\">domainVars<\/span><span class=\"p\">)<\/span>\n<span class=\"p\">}<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u0627\u0632 \u0622\u0646\u062c\u0627\u06cc\u06cc \u06a9\u0647 \u0645\u0633\u06cc\u0631 \u0645\u0627 \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u0634\u062f\u0647 \u0627\u0633\u062a\u060c \u0627\u062c\u0627\u0632\u0647 \u062f\u0647\u06cc\u062f \u062a\u0627\u0628\u0639 isValidDomain \u062e\u0648\u062f \u0631\u0627 \u0637\u0648\u0631\u06cc \u062a\u063a\u06cc\u06cc\u0631 \u062f\u0647\u06cc\u0645 \u06a9\u0647 \u0628\u062a\u0648\u0627\u0646\u06cc\u0645 \u0645\u0642\u0627\u062f\u06cc\u0631 \u0645\u0648\u0631\u062f \u0646\u06cc\u0627\u0632 \u0628\u0631\u0627\u06cc \u0633\u0627\u062e\u062a\u0627\u0631 DomainVar \u0631\u0627 \u0628\u062f\u0633\u062a \u0622\u0648\u0631\u06cc\u0645.<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight go\"><code><span class=\"k\">func<\/span> <span class=\"n\">isValidDomain<\/span><span class=\"p\">(<\/span><span class=\"n\">domain<\/span> <span class=\"kt\">string<\/span><span class=\"p\">)<\/span> <span class=\"n\">DomainVar<\/span><span class=\"p\">{<\/span>\n    <span class=\"k\">var<\/span> <span class=\"n\">hasMX<\/span><span class=\"p\">,<\/span> <span class=\"n\">hasSPF<\/span><span class=\"p\">,<\/span> <span class=\"n\">hasDMARC<\/span> <span class=\"kt\">bool<\/span> \n    <span class=\"k\">var<\/span> <span class=\"n\">spfRecord<\/span> <span class=\"kt\">string<\/span>\n    <span class=\"k\">var<\/span> <span class=\"n\">dmarcRecord<\/span>  <span class=\"kt\">string<\/span> \n\n    <span class=\"n\">mxRecords<\/span><span class=\"p\">,<\/span><span class=\"n\">err<\/span> <span class=\"o\">:=<\/span> <span class=\"n\">net<\/span><span class=\"o\">.<\/span><span class=\"n\">LookupMX<\/span><span class=\"p\">(<\/span><span class=\"n\">domain<\/span><span class=\"p\">)<\/span>\n\n    <span class=\"k\">if<\/span> <span class=\"n\">err<\/span> <span class=\"o\">!=<\/span> <span class=\"no\">nil<\/span><span class=\"p\">{<\/span>\n        <span class=\"n\">log<\/span><span class=\"o\">.<\/span><span class=\"n\">Printf<\/span><span class=\"p\">(<\/span><span class=\"s\">\"Error: %v<\/span><span class=\"se\">\\n<\/span><span class=\"s\">\"<\/span><span class=\"p\">,<\/span><span class=\"n\">err<\/span><span class=\"p\">)<\/span>\n    <span class=\"p\">}<\/span>\n\n    <span class=\"k\">if<\/span> <span class=\"nb\">len<\/span><span class=\"p\">(<\/span><span class=\"n\">mxRecords<\/span><span class=\"p\">)<\/span><span class=\"o\">&gt;<\/span><span class=\"m\">0<\/span><span class=\"p\">{<\/span>\n        <span class=\"n\">hasMX<\/span> <span class=\"o\">=<\/span> <span class=\"no\">true<\/span> \n    <span class=\"p\">}<\/span>\n\n    <span class=\"n\">txtRecords<\/span><span class=\"p\">,<\/span> <span class=\"n\">err<\/span> <span class=\"o\">:=<\/span> <span class=\"n\">net<\/span><span class=\"o\">.<\/span><span class=\"n\">LookupTXT<\/span><span class=\"p\">(<\/span><span class=\"n\">domain<\/span><span class=\"p\">)<\/span>\n\n    <span class=\"k\">if<\/span> <span class=\"n\">err<\/span> <span class=\"o\">!=<\/span> <span class=\"no\">nil<\/span><span class=\"p\">{<\/span>\n        <span class=\"n\">log<\/span><span class=\"o\">.<\/span><span class=\"n\">Printf<\/span><span class=\"p\">(<\/span><span class=\"s\">\"Error: %v<\/span><span class=\"se\">\\n<\/span><span class=\"s\">\"<\/span><span class=\"p\">,<\/span><span class=\"n\">err<\/span><span class=\"p\">)<\/span>\n    <span class=\"p\">}<\/span>\n\n    <span class=\"k\">for<\/span> <span class=\"n\">_<\/span><span class=\"p\">,<\/span> <span class=\"n\">record<\/span> <span class=\"o\">:=<\/span> <span class=\"k\">range<\/span> <span class=\"n\">txtRecords<\/span><span class=\"p\">{<\/span>\n        <span class=\"k\">if<\/span> <span class=\"n\">strings<\/span><span class=\"o\">.<\/span><span class=\"n\">HasPrefix<\/span><span class=\"p\">(<\/span><span class=\"n\">record<\/span><span class=\"p\">,<\/span><span class=\"s\">\"v=spf1\"<\/span><span class=\"p\">){<\/span>\n            <span class=\"n\">hasSPF<\/span> <span class=\"o\">=<\/span> <span class=\"no\">true<\/span> \n            <span class=\"n\">spfRecord<\/span> <span class=\"o\">=<\/span> <span class=\"n\">record<\/span>\n            <span class=\"k\">break<\/span>\n        <span class=\"p\">}<\/span>\n    <span class=\"p\">}<\/span>\n\n    <span class=\"n\">dmarcRecords<\/span><span class=\"p\">,<\/span> <span class=\"n\">err<\/span> <span class=\"o\">:=<\/span> <span class=\"n\">net<\/span><span class=\"o\">.<\/span><span class=\"n\">LookupTXT<\/span><span class=\"p\">(<\/span><span class=\"s\">\"_dmarc.\"<\/span> <span class=\"o\">+<\/span> <span class=\"n\">domain<\/span><span class=\"p\">)<\/span>\n\n    <span class=\"k\">if<\/span> <span class=\"n\">err<\/span> <span class=\"o\">!=<\/span> <span class=\"no\">nil<\/span><span class=\"p\">{<\/span>\n        <span class=\"n\">log<\/span><span class=\"o\">.<\/span><span class=\"n\">Printf<\/span><span class=\"p\">(<\/span><span class=\"s\">\"Error: %v<\/span><span class=\"se\">\\n<\/span><span class=\"s\">\"<\/span><span class=\"p\">,<\/span><span class=\"n\">err<\/span><span class=\"p\">)<\/span>\n    <span class=\"p\">}<\/span>\n\n    <span class=\"k\">for<\/span> <span class=\"n\">_<\/span><span class=\"p\">,<\/span> <span class=\"n\">record<\/span> <span class=\"o\">:=<\/span> <span class=\"k\">range<\/span> <span class=\"n\">dmarcRecords<\/span><span class=\"p\">{<\/span>\n        <span class=\"k\">if<\/span> <span class=\"n\">strings<\/span><span class=\"o\">.<\/span><span class=\"n\">HasPrefix<\/span><span class=\"p\">(<\/span><span class=\"n\">record<\/span> <span class=\"p\">,<\/span><span class=\"s\">\"v=DMARC1\"<\/span><span class=\"p\">){<\/span>\n            <span class=\"n\">hasDMARC<\/span> <span class=\"o\">=<\/span> <span class=\"no\">true<\/span>\n            <span class=\"n\">dmarcRecord<\/span> <span class=\"o\">=<\/span> <span class=\"n\">record<\/span> \n            <span class=\"k\">break<\/span>\n        <span class=\"p\">}<\/span>\n    <span class=\"p\">}<\/span>\n\n    <span class=\"n\">fmt<\/span><span class=\"o\">.<\/span><span class=\"n\">Printf<\/span><span class=\"p\">(<\/span><span class=\"s\">\"domain=%v<\/span><span class=\"se\">\\n<\/span><span class=\"s\">,hasMX=%v<\/span><span class=\"se\">\\n<\/span><span class=\"s\">,hasSPF=%v<\/span><span class=\"se\">\\n<\/span><span class=\"s\">,spfRecord=%v<\/span><span class=\"se\">\\n<\/span><span class=\"s\">,hasDMARC=%v<\/span><span class=\"se\">\\n<\/span><span class=\"s\">,dmarcRecord=%v<\/span><span class=\"se\">\\n<\/span><span class=\"s\">\"<\/span><span class=\"p\">,<\/span><span class=\"n\">domain<\/span><span class=\"p\">,<\/span><span class=\"n\">hasMX<\/span><span class=\"p\">,<\/span><span class=\"n\">hasSPF<\/span><span class=\"p\">,<\/span><span class=\"n\">spfRecord<\/span><span class=\"p\">,<\/span><span class=\"n\">hasDMARC<\/span><span class=\"p\">,<\/span><span class=\"n\">dmarcRecord<\/span><span class=\"p\">)<\/span>\n\n    <span class=\"k\">var<\/span> <span class=\"n\">domainVar<\/span> <span class=\"n\">DomainVar<\/span>\n    <span class=\"n\">domainVar<\/span><span class=\"o\">.<\/span><span class=\"n\">Domain<\/span> <span class=\"o\">=<\/span> <span class=\"n\">domain<\/span>\n    <span class=\"n\">domainVar<\/span><span class=\"o\">.<\/span><span class=\"n\">HasMX<\/span> <span class=\"o\">=<\/span> <span class=\"n\">hasMX<\/span>\n    <span class=\"n\">domainVar<\/span><span class=\"o\">.<\/span><span class=\"n\">HasSPF<\/span> <span class=\"o\">=<\/span> <span class=\"n\">hasSPF<\/span>\n    <span class=\"n\">domainVar<\/span><span class=\"o\">.<\/span><span class=\"n\">SpfRecord<\/span> <span class=\"o\">=<\/span> <span class=\"n\">spfRecord<\/span>\n    <span class=\"n\">domainVar<\/span><span class=\"o\">.<\/span><span class=\"n\">HasDMARC<\/span> <span class=\"o\">=<\/span> <span class=\"n\">hasDMARC<\/span>\n    <span class=\"n\">domainVar<\/span><span class=\"o\">.<\/span><span class=\"n\">DmarcRecord<\/span> <span class=\"o\">=<\/span> <span class=\"n\">dmarcRecord<\/span>\n\n    <span class=\"k\">return<\/span> <span class=\"n\">domainVar<\/span> \n<span class=\"p\">}<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u062a\u0627\u0628\u0639 \u0627\u0635\u0644\u0627\u062d \u0634\u062f\u0647 \u062f\u0627\u0631\u0627\u06cc \u06cc\u06a9 \u0646\u0648\u0639 \u0628\u0627\u0632\u06af\u0634\u062a\u06cc \u0627\u0633\u062a <code>DomainVar<\/code> \u06a9\u0647 \u062f\u0631 \u0646\u0647\u0627\u06cc\u062a \u0634\u06cc\u0621 \u0627\u0632 \u0647\u0645\u0627\u0646 \u0646\u0648\u0639 \u0631\u0627 \u0628\u0631\u0645\u06cc \u06af\u0631\u062f\u0627\u0646\u062f.  \u0645\u0627 \u06cc\u06a9 \u0646\u0645\u0648\u0646\u0647 \u0627\u0632 \u0646\u0648\u0639 DomainVar \u0627\u06cc\u062c\u0627\u062f \u0645\u06cc \u06a9\u0646\u06cc\u0645 \u0648 \u0633\u067e\u0633 \u0634\u0631\u0648\u0639 \u0628\u0647 \u062a\u062e\u0635\u06cc\u0635 \u0645\u0642\u0627\u062f\u06cc\u0631 \u0628\u0631\u0627\u06cc \u0647\u0631 \u06a9\u0644\u06cc\u062f \u0645\u06cc \u06a9\u0646\u06cc\u0645.  \u062f\u0631 \u0646\u0647\u0627\u06cc\u062a \u0634\u06cc \u0631\u0627 \u0628\u0631\u06af\u0631\u062f\u0627\u0646\u06cc\u062f.<\/p>\n<p>*<em>\u06a9\u062f Backend \u06a9\u0627\u0645\u0644 \u062a\u0627 \u06a9\u0646\u0648\u0646 \u0627\u06cc\u0646 \u0627\u0633\u062a: *<\/em><\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight go\"><code><span class=\"k\">package<\/span> <span class=\"n\">main<\/span>\n\n<span class=\"k\">import<\/span> <span class=\"p\">(<\/span>\n    <span class=\"s\">\"encoding\/json\"<\/span>\n    <span class=\"s\">\"fmt\"<\/span>\n    <span class=\"s\">\"log\"<\/span>\n    <span class=\"s\">\"net\"<\/span>\n    <span class=\"s\">\"net\/http\"<\/span>\n    <span class=\"s\">\"strings\"<\/span>\n\n    <span class=\"s\">\"github.com\/gorilla\/mux\"<\/span>\n<span class=\"p\">)<\/span>\n\n<span class=\"k\">type<\/span> <span class=\"n\">DomainURL<\/span> <span class=\"k\">struct<\/span><span class=\"p\">{<\/span>\n    <span class=\"n\">DomainURL<\/span> <span class=\"kt\">string<\/span> <span class=\"s\">`string:\"domainurl\"`<\/span>\n<span class=\"p\">}<\/span>\n\n<span class=\"k\">type<\/span> <span class=\"n\">DomainVar<\/span> <span class=\"k\">struct<\/span><span class=\"p\">{<\/span>\n    <span class=\"n\">Domain<\/span> <span class=\"kt\">string<\/span> <span class=\"s\">`json:\"domain\"`<\/span>\n    <span class=\"n\">HasMX<\/span> <span class=\"kt\">bool<\/span> <span class=\"s\">`json:\"hasmx\"`<\/span>\n    <span class=\"n\">HasSPF<\/span> <span class=\"kt\">bool<\/span> <span class=\"s\">`json:\"haspf\"`<\/span>\n    <span class=\"n\">SpfRecord<\/span> <span class=\"kt\">string<\/span> <span class=\"s\">`json:\"spfrecord\"`<\/span>\n    <span class=\"n\">HasDMARC<\/span> <span class=\"kt\">bool<\/span> <span class=\"s\">`json:\"hasdmarc\"`<\/span>\n    <span class=\"n\">DmarcRecord<\/span> <span class=\"kt\">string<\/span> <span class=\"s\">`json:\"dmarcRecord\"`<\/span>\n<span class=\"p\">}<\/span>\n\n<span class=\"k\">var<\/span> <span class=\"n\">domainVars<\/span> <span class=\"p\">[]<\/span><span class=\"n\">DomainVar<\/span>\n\n\n<span class=\"k\">func<\/span> <span class=\"n\">formHandler<\/span><span class=\"p\">(<\/span><span class=\"n\">w<\/span> <span class=\"n\">http<\/span><span class=\"o\">.<\/span><span class=\"n\">ResponseWriter<\/span><span class=\"p\">,<\/span> <span class=\"n\">r<\/span> <span class=\"o\">*<\/span><span class=\"n\">http<\/span><span class=\"o\">.<\/span><span class=\"n\">Request<\/span><span class=\"p\">){<\/span>\n    <span class=\"n\">w<\/span><span class=\"o\">.<\/span><span class=\"n\">Header<\/span><span class=\"p\">()<\/span><span class=\"o\">.<\/span><span class=\"n\">Set<\/span><span class=\"p\">(<\/span><span class=\"s\">\"Content-Type\"<\/span><span class=\"p\">,<\/span><span class=\"s\">\"application\/json\"<\/span><span class=\"p\">)<\/span>\n\n    <span class=\"k\">var<\/span> <span class=\"n\">domainUrl<\/span> <span class=\"n\">DomainURL<\/span>\n    <span class=\"n\">json<\/span><span class=\"o\">.<\/span><span class=\"n\">NewDecoder<\/span><span class=\"p\">(<\/span><span class=\"n\">r<\/span><span class=\"o\">.<\/span><span class=\"n\">Body<\/span><span class=\"p\">)<\/span><span class=\"o\">.<\/span><span class=\"n\">Decode<\/span><span class=\"p\">(<\/span><span class=\"o\">&amp;<\/span><span class=\"n\">domainUrl<\/span><span class=\"p\">)<\/span>\n\n    <span class=\"n\">domainVar<\/span>  <span class=\"o\">:=<\/span> <span class=\"n\">isValidDomain<\/span><span class=\"p\">(<\/span><span class=\"n\">domainUrl<\/span><span class=\"o\">.<\/span><span class=\"n\">DomainURL<\/span><span class=\"p\">)<\/span>\n    <span class=\"n\">domainVars<\/span> <span class=\"o\">=<\/span> <span class=\"nb\">append<\/span><span class=\"p\">(<\/span><span class=\"n\">domainVars<\/span><span class=\"p\">,<\/span> <span class=\"n\">domainVar<\/span><span class=\"p\">)<\/span>\n\n    <span class=\"n\">json<\/span><span class=\"o\">.<\/span><span class=\"n\">NewEncoder<\/span><span class=\"p\">(<\/span><span class=\"n\">w<\/span><span class=\"p\">)<\/span><span class=\"o\">.<\/span><span class=\"n\">Encode<\/span><span class=\"p\">(<\/span><span class=\"n\">domainVars<\/span><span class=\"p\">)<\/span>\n<span class=\"p\">}<\/span>\n\n<span class=\"k\">func<\/span> <span class=\"n\">isValidDomain<\/span><span class=\"p\">(<\/span><span class=\"n\">domain<\/span> <span class=\"kt\">string<\/span><span class=\"p\">)<\/span> <span class=\"n\">DomainVar<\/span><span class=\"p\">{<\/span>\n    <span class=\"k\">var<\/span> <span class=\"n\">hasMX<\/span><span class=\"p\">,<\/span> <span class=\"n\">hasSPF<\/span><span class=\"p\">,<\/span> <span class=\"n\">hasDMARC<\/span> <span class=\"kt\">bool<\/span> \n    <span class=\"k\">var<\/span> <span class=\"n\">spfRecord<\/span> <span class=\"kt\">string<\/span>\n    <span class=\"k\">var<\/span> <span class=\"n\">dmarcRecord<\/span>  <span class=\"kt\">string<\/span> \n\n    <span class=\"n\">mxRecords<\/span><span class=\"p\">,<\/span><span class=\"n\">err<\/span> <span class=\"o\">:=<\/span> <span class=\"n\">net<\/span><span class=\"o\">.<\/span><span class=\"n\">LookupMX<\/span><span class=\"p\">(<\/span><span class=\"n\">domain<\/span><span class=\"p\">)<\/span>\n\n    <span class=\"k\">if<\/span> <span class=\"n\">err<\/span> <span class=\"o\">!=<\/span> <span class=\"no\">nil<\/span><span class=\"p\">{<\/span>\n        <span class=\"n\">log<\/span><span class=\"o\">.<\/span><span class=\"n\">Printf<\/span><span class=\"p\">(<\/span><span class=\"s\">\"Error: %v<\/span><span class=\"se\">\\n<\/span><span class=\"s\">\"<\/span><span class=\"p\">,<\/span><span class=\"n\">err<\/span><span class=\"p\">)<\/span>\n    <span class=\"p\">}<\/span>\n\n    <span class=\"k\">if<\/span> <span class=\"nb\">len<\/span><span class=\"p\">(<\/span><span class=\"n\">mxRecords<\/span><span class=\"p\">)<\/span><span class=\"o\">&gt;<\/span><span class=\"m\">0<\/span><span class=\"p\">{<\/span>\n        <span class=\"n\">hasMX<\/span> <span class=\"o\">=<\/span> <span class=\"no\">true<\/span> \n    <span class=\"p\">}<\/span>\n\n    <span class=\"n\">txtRecords<\/span><span class=\"p\">,<\/span> <span class=\"n\">err<\/span> <span class=\"o\">:=<\/span> <span class=\"n\">net<\/span><span class=\"o\">.<\/span><span class=\"n\">LookupTXT<\/span><span class=\"p\">(<\/span><span class=\"n\">domain<\/span><span class=\"p\">)<\/span>\n\n    <span class=\"k\">if<\/span> <span class=\"n\">err<\/span> <span class=\"o\">!=<\/span> <span class=\"no\">nil<\/span><span class=\"p\">{<\/span>\n        <span class=\"n\">log<\/span><span class=\"o\">.<\/span><span class=\"n\">Printf<\/span><span class=\"p\">(<\/span><span class=\"s\">\"Error: %v<\/span><span class=\"se\">\\n<\/span><span class=\"s\">\"<\/span><span class=\"p\">,<\/span><span class=\"n\">err<\/span><span class=\"p\">)<\/span>\n    <span class=\"p\">}<\/span>\n\n    <span class=\"k\">for<\/span> <span class=\"n\">_<\/span><span class=\"p\">,<\/span> <span class=\"n\">record<\/span> <span class=\"o\">:=<\/span> <span class=\"k\">range<\/span> <span class=\"n\">txtRecords<\/span><span class=\"p\">{<\/span>\n        <span class=\"k\">if<\/span> <span class=\"n\">strings<\/span><span class=\"o\">.<\/span><span class=\"n\">HasPrefix<\/span><span class=\"p\">(<\/span><span class=\"n\">record<\/span><span class=\"p\">,<\/span><span class=\"s\">\"v=spf1\"<\/span><span class=\"p\">){<\/span>\n            <span class=\"n\">hasSPF<\/span> <span class=\"o\">=<\/span> <span class=\"no\">true<\/span> \n            <span class=\"n\">spfRecord<\/span> <span class=\"o\">=<\/span> <span class=\"n\">record<\/span>\n            <span class=\"k\">break<\/span>\n        <span class=\"p\">}<\/span>\n    <span class=\"p\">}<\/span>\n\n    <span class=\"n\">dmarcRecords<\/span><span class=\"p\">,<\/span> <span class=\"n\">err<\/span> <span class=\"o\">:=<\/span> <span class=\"n\">net<\/span><span class=\"o\">.<\/span><span class=\"n\">LookupTXT<\/span><span class=\"p\">(<\/span><span class=\"s\">\"_dmarc.\"<\/span> <span class=\"o\">+<\/span> <span class=\"n\">domain<\/span><span class=\"p\">)<\/span>\n\n    <span class=\"k\">if<\/span> <span class=\"n\">err<\/span> <span class=\"o\">!=<\/span> <span class=\"no\">nil<\/span><span class=\"p\">{<\/span>\n        <span class=\"n\">log<\/span><span class=\"o\">.<\/span><span class=\"n\">Printf<\/span><span class=\"p\">(<\/span><span class=\"s\">\"Error: %v<\/span><span class=\"se\">\\n<\/span><span class=\"s\">\"<\/span><span class=\"p\">,<\/span><span class=\"n\">err<\/span><span class=\"p\">)<\/span>\n    <span class=\"p\">}<\/span>\n\n    <span class=\"k\">for<\/span> <span class=\"n\">_<\/span><span class=\"p\">,<\/span> <span class=\"n\">record<\/span> <span class=\"o\">:=<\/span> <span class=\"k\">range<\/span> <span class=\"n\">dmarcRecords<\/span><span class=\"p\">{<\/span>\n        <span class=\"k\">if<\/span> <span class=\"n\">strings<\/span><span class=\"o\">.<\/span><span class=\"n\">HasPrefix<\/span><span class=\"p\">(<\/span><span class=\"n\">record<\/span> <span class=\"p\">,<\/span><span class=\"s\">\"v=DMARC1\"<\/span><span class=\"p\">){<\/span>\n            <span class=\"n\">hasDMARC<\/span> <span class=\"o\">=<\/span> <span class=\"no\">true<\/span>\n            <span class=\"n\">dmarcRecord<\/span> <span class=\"o\">=<\/span> <span class=\"n\">record<\/span> \n            <span class=\"k\">break<\/span>\n        <span class=\"p\">}<\/span>\n    <span class=\"p\">}<\/span>\n\n    <span class=\"n\">fmt<\/span><span class=\"o\">.<\/span><span class=\"n\">Printf<\/span><span class=\"p\">(<\/span><span class=\"s\">\"domain=%v<\/span><span class=\"se\">\\n<\/span><span class=\"s\">,hasMX=%v<\/span><span class=\"se\">\\n<\/span><span class=\"s\">,hasSPF=%v<\/span><span class=\"se\">\\n<\/span><span class=\"s\">,spfRecord=%v<\/span><span class=\"se\">\\n<\/span><span class=\"s\">,hasDMARC=%v<\/span><span class=\"se\">\\n<\/span><span class=\"s\">,dmarcRecord=%v<\/span><span class=\"se\">\\n<\/span><span class=\"s\">\"<\/span><span class=\"p\">,<\/span><span class=\"n\">domain<\/span><span class=\"p\">,<\/span><span class=\"n\">hasMX<\/span><span class=\"p\">,<\/span><span class=\"n\">hasSPF<\/span><span class=\"p\">,<\/span><span class=\"n\">spfRecord<\/span><span class=\"p\">,<\/span><span class=\"n\">hasDMARC<\/span><span class=\"p\">,<\/span><span class=\"n\">dmarcRecord<\/span><span class=\"p\">)<\/span>\n\n    <span class=\"k\">var<\/span> <span class=\"n\">domainVar<\/span> <span class=\"n\">DomainVar<\/span>\n    <span class=\"n\">domainVar<\/span><span class=\"o\">.<\/span><span class=\"n\">Domain<\/span> <span class=\"o\">=<\/span> <span class=\"n\">domain<\/span>\n    <span class=\"n\">domainVar<\/span><span class=\"o\">.<\/span><span class=\"n\">HasMX<\/span> <span class=\"o\">=<\/span> <span class=\"n\">hasMX<\/span>\n    <span class=\"n\">domainVar<\/span><span class=\"o\">.<\/span><span class=\"n\">HasSPF<\/span> <span class=\"o\">=<\/span> <span class=\"n\">hasSPF<\/span>\n    <span class=\"n\">domainVar<\/span><span class=\"o\">.<\/span><span class=\"n\">SpfRecord<\/span> <span class=\"o\">=<\/span> <span class=\"n\">spfRecord<\/span>\n    <span class=\"n\">domainVar<\/span><span class=\"o\">.<\/span><span class=\"n\">HasDMARC<\/span> <span class=\"o\">=<\/span> <span class=\"n\">hasDMARC<\/span>\n    <span class=\"n\">domainVar<\/span><span class=\"o\">.<\/span><span class=\"n\">DmarcRecord<\/span> <span class=\"o\">=<\/span> <span class=\"n\">dmarcRecord<\/span>\n\n    <span class=\"k\">return<\/span> <span class=\"n\">domainVar<\/span> \n<span class=\"p\">}<\/span>\n\n\n<span class=\"k\">func<\/span> <span class=\"n\">main<\/span><span class=\"p\">(){<\/span>\n    <span class=\"n\">r<\/span> <span class=\"o\">:=<\/span> <span class=\"n\">mux<\/span><span class=\"o\">.<\/span><span class=\"n\">NewRouter<\/span><span class=\"p\">()<\/span>\n\n    <span class=\"n\">r<\/span><span class=\"o\">.<\/span><span class=\"n\">HandleFunc<\/span><span class=\"p\">(<\/span><span class=\"s\">\"\/form\"<\/span><span class=\"p\">,<\/span><span class=\"n\">formHandler<\/span><span class=\"p\">)<\/span><span class=\"o\">.<\/span><span class=\"n\">Methods<\/span><span class=\"p\">(<\/span><span class=\"s\">\"POST\"<\/span><span class=\"p\">)<\/span>\n\n\n    <span class=\"n\">fmt<\/span><span class=\"o\">.<\/span><span class=\"n\">Print<\/span><span class=\"p\">(<\/span><span class=\"s\">\"Starting server at port 8000<\/span><span class=\"se\">\\n<\/span><span class=\"s\">\"<\/span><span class=\"p\">)<\/span>\n    <span class=\"n\">log<\/span><span class=\"o\">.<\/span><span class=\"n\">Fatal<\/span><span class=\"p\">(<\/span><span class=\"n\">http<\/span><span class=\"o\">.<\/span><span class=\"n\">ListenAndServe<\/span><span class=\"p\">(<\/span><span class=\"s\">\":8000\"<\/span><span class=\"p\">,<\/span><span class=\"n\">r<\/span><span class=\"p\">))<\/span>\n<span class=\"p\">}<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<h2><span class=\"ez-toc-section\" id=\"%D8%B3%D8%A7%D8%AE%D8%AA_Frontend_%F0%9F%8E%A8\"><\/span>\n<p>  \u0633\u0627\u062e\u062a Frontend \ud83c\udfa8<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u0645\u0627 \u062f\u0631 \u0648\u0627\u0642\u0639 \u0631\u0648\u06cc \u0632\u06cc\u0628\u0627\u0633\u0627\u0632\u06cc \u0628\u0631\u0646\u0627\u0645\u0647 \u062a\u0645\u0631\u06a9\u0632 \u0646\u062e\u0648\u0627\u0647\u06cc\u0645 \u06a9\u0631\u062f\u060c \u0628\u0644\u06a9\u0647 \u062a\u0645\u0631\u06a9\u0632\u0645\u0627\u0646 \u0628\u0631 \u0627\u0646\u062c\u0627\u0645 \u06a9\u0627\u0631\u0647\u0627 \u062e\u0648\u0627\u0647\u062f \u0628\u0648\u062f.  \u0628\u0631\u0627\u06cc \u0642\u0633\u0645\u062a \u062c\u0644\u0648\u06cc\u06cc\u060c \u0645\u0627 \u0628\u0647 \u06cc\u06a9 \u0628\u0633\u062a\u0647 \u0646\u06cc\u0627\u0632 \u062f\u0627\u0631\u06cc\u0645 <code>go-fiber<\/code>.  \u0627\u06af\u0631\u0686\u0647\u060c \u0645\u06cc\u200c\u062a\u0648\u0627\u0646 frontend \u0631\u0627 \u0628\u062f\u0648\u0646 \u0646\u0635\u0628 \u0647\u06cc\u0686 \u0628\u0633\u062a\u0647 \u0627\u0636\u0627\u0641\u06cc \u062a\u0648\u0633\u0639\u0647 \u062f\u0627\u062f\u060c \u062f\u0644\u06cc\u0644 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 go-fiber \u062f\u0631\u06a9 \u0646\u062d\u0648\u0647 \u0646\u0635\u0628 \u0648 \u06a9\u0627\u0631 \u0628\u0627 \u0628\u0633\u062a\u0647\u200c\u0647\u0627\u06cc \u062e\u0627\u0631\u062c\u06cc \u0627\u0633\u062a.<\/p>\n<p><\/p>\n<p>\u0628\u06cc\u0627\u06cc\u06cc\u062f \u0628\u0627 \u0627\u06cc\u062c\u0627\u062f \u062f\u0627\u06cc\u0631\u06a9\u062a\u0648\u0631\u06cc \u0648 \u062a\u063a\u06cc\u06cc\u0631 \u062f\u0627\u06cc\u0631\u06a9\u062a\u0648\u0631\u06cc \u06a9\u0627\u0631\u06cc \u062e\u0648\u062f \u0628\u0647 \u0622\u0646 \u0634\u0631\u0648\u0639 \u06a9\u0646\u06cc\u0645.<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight go\"><code><span class=\"n\">mkdir<\/span> <span class=\"n\">verifier<\/span><span class=\"o\">-<\/span><span class=\"n\">frontend<\/span> <span class=\"o\">&amp;&amp;<\/span> <span class=\"n\">cd<\/span> <span class=\"n\">verifier<\/span><span class=\"o\">-<\/span><span class=\"n\">frontend<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u0631\u0627\u0647\u200c\u0627\u0646\u062f\u0627\u0632\u06cc \u0641\u0627\u06cc\u0644 main.go \u0628\u0631\u0627\u06cc frontend<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight go\"><code><span class=\"n\">touch<\/span> <span class=\"n\">main<\/span><span class=\"o\">.<\/span><span class=\"k\">go<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u0628\u0627 \u0627\u062c\u0631\u0627\u06cc \u062f\u0633\u062a\u0648\u0631\u060c \u06cc\u06a9 \u0641\u0627\u06cc\u0644 \u062e\u0627\u0644\u06cc \u062f\u0631 \u062f\u0627\u06cc\u0631\u06a9\u062a\u0648\u0631\u06cc \u06a9\u0627\u0631\u06cc \u0645\u0627 \u062f\u0631 \u0627\u06cc\u0646\u062c\u0627 \u0627\u06cc\u062c\u0627\u062f \u0645\u06cc \u06a9\u0646\u062f \u06a9\u0647 verfier-frontend \u0627\u0633\u062a.<\/p>\n<p>\u0628\u0627\u06cc\u062f \u0628\u0631\u0627\u06cc \u0641\u0627\u06cc\u0644 Go \u06cc\u06a9 \u067e\u06a9\u06cc\u062c \u062a\u0639\u0631\u06cc\u0641 \u06a9\u0646\u06cc\u0645.  \u0627\u0632 \u0622\u0646\u062c\u0627\u06cc\u06cc \u06a9\u0647 \u0627\u06cc\u0646 \u0641\u0627\u06cc\u0644 \u0627\u0635\u0644\u06cc \u0645\u0627 \u062e\u0648\u0627\u0647\u062f \u0628\u0648\u062f\u060c \u0628\u0633\u062a\u0647 main \u0631\u0627 \u0627\u0636\u0627\u0641\u0647 \u0645\u06cc \u06a9\u0646\u06cc\u0645.<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight go\"><code><span class=\"k\">package<\/span> <span class=\"n\">main<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u062e\u0637 \u0628\u0627\u0644\u0627 \u0627\u0648\u0644\u06cc\u0646 \u062e\u0637 \u0628\u0631\u0646\u0627\u0645\u0647 \u0627\u0633\u062a.<\/p>\n<p>\u062d\u0627\u0644\u0627 \u0628\u06cc\u0627\u06cc\u06cc\u062f \u062a\u0645\u0627\u0645 \u0628\u0633\u062a\u0647 \u0647\u0627\u06cc \u0644\u0627\u0632\u0645 \u0628\u0631\u0627\u06cc \u0633\u0627\u062e\u062a \u0627\u067e\u0644\u06cc\u06a9\u06cc\u0634\u0646 \u062e\u0648\u062f \u0631\u0627 \u0648\u0627\u0631\u062f \u06a9\u0646\u06cc\u0645 \ud83d\udecd\ufe0f<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight go\"><code><span class=\"k\">import<\/span> <span class=\"p\">(<\/span>\n    <span class=\"s\">\"log\"<\/span>\n\n    <span class=\"s\">\"github.com\/gofiber\/fiber\/v2\"<\/span>\n<span class=\"p\">)<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u0627\u06af\u0631 \u0645\u0646 \u062c\u0627\u06cc \u0634\u0645\u0627 \u0628\u0648\u062f\u0645 \u0648 \u0647\u0645\u0647 \u0648\u0627\u0631\u062f\u0627\u062a \u0631\u0627 \u0645\u06cc \u062e\u0648\u0627\u0646\u062f\u0645\u060c \u062e\u06cc\u0644\u06cc \u06af\u06cc\u062c \u0645\u06cc \u0634\u062f\u0645.  \u0627\u0645\u0627\u060c \u0628\u0647 \u0645\u0646 \u0627\u0639\u062a\u0645\u0627\u062f \u06a9\u0646\u06cc\u062f \u0648\u0642\u062a\u06cc \u0648\u0628\u0644\u0627\u06af \u0631\u0627 \u062e\u0648\u0627\u0646\u062f\u06cc\u062f\u060c \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u0645 \u0634\u0631\u0637 \u0628\u0628\u0646\u062f\u0645 \u06a9\u0647 \u0627\u06cc\u062f\u0647 \u0631\u0648\u0634\u0646\u06cc \u0628\u0631\u0627\u06cc \u0627\u06cc\u0646\u06a9\u0647 \u0686\u0631\u0627 \u0628\u0633\u062a\u0647\u200c\u0647\u0627\u06cc \u0632\u06cc\u0631 \u0631\u0627 \u06af\u0646\u062c\u0627\u0646\u062f\u0647\u200c\u0627\u06cc\u0645\u060c \u062e\u0648\u0627\u0647\u06cc\u062f \u062f\u0627\u0634\u062a.<\/p>\n<p>\u0627\u06cc\u062c\u0627\u062f \u0641\u0627\u06cc\u0644 go.mod \u06a9\u0647 \u062a\u0645\u0627\u0645 \u0628\u0633\u062a\u0647 \u0647\u0627\u06cc \u0645\u0648\u0631\u062f \u0646\u06cc\u0627\u0632 \u0631\u0627 \u0630\u062e\u06cc\u0631\u0647 \u0645\u06cc \u06a9\u0646\u062f\u060c \u0634\u0628\u06cc\u0647 \u0628\u0647 package.json \u0627\u0633\u062a.<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight go\"><code><span class=\"k\">go<\/span> <span class=\"n\">mod<\/span> <span class=\"n\">init<\/span> <span class=\"n\">github<\/span><span class=\"o\">.<\/span><span class=\"n\">com<\/span><span class=\"o\">\/<\/span><span class=\"n\">Aniket762<\/span><span class=\"o\">\/<\/span><span class=\"n\">namaste<\/span><span class=\"o\">-<\/span><span class=\"k\">go<\/span><span class=\"o\">\/<\/span><span class=\"n\">verifier<\/span><span class=\"o\">-<\/span><span class=\"n\">front<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u0628\u0631\u0627\u06cc \u0627\u0637\u0645\u06cc\u0646\u0627\u0646 \u0627\u0632 \u0627\u06cc\u0646\u06a9\u0647 \u0641\u0627\u06cc\u0644 go.mod \u0628\u0627 \u06a9\u062f \u0645\u0646\u0628\u0639 \u0645\u0648\u062c\u0648\u062f \u062f\u0631 \u0645\u0627\u0698\u0648\u0644 \u0645\u0637\u0627\u0628\u0642\u062a \u062f\u0627\u0631\u062f\u060c \u0627\u062c\u0631\u0627 \u0645\u06cc \u06a9\u0646\u06cc\u0645<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight go\"><code><span class=\"k\">go<\/span> <span class=\"n\">mod<\/span> <span class=\"n\">tidy<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u062a\u0645\u0627\u0645 \u0628\u0633\u062a\u0647 \u0647\u0627\u06cc \u0648\u0627\u0631\u062f \u0634\u062f\u0647 \u0628\u0647 \u062c\u0632 \u06cc\u06a9 \u0645\u0648\u0631\u062f\u060c \u0642\u0628\u0644\u0627\u064b \u0628\u0627 \u0641\u0627\u06cc\u0644 \u0628\u0627\u06cc\u0646\u0631\u06cc \u06a9\u0647 \u0647\u0646\u06af\u0627\u0645 \u0646\u0635\u0628 Go \u0627\u062c\u0631\u0627 \u06a9\u0631\u062f\u0647 \u0627\u06cc\u062f\u060c \u0648\u062c\u0648\u062f \u062f\u0627\u0631\u062f.  \u0628\u0646\u0627\u0628\u0631\u0627\u06cc\u0646\u060c \u0627\u062c\u0627\u0632\u0647 \u062f\u0647\u06cc\u062f Gorilla Mux \u0631\u0627 \u0646\u0635\u0628 \u06a9\u0646\u06cc\u0645.<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight go\"><code><span class=\"k\">go<\/span> <span class=\"n\">get<\/span> <span class=\"n\">github<\/span><span class=\"o\">.<\/span><span class=\"n\">com<\/span><span class=\"o\">\/<\/span><span class=\"n\">gofiber<\/span><span class=\"o\">\/<\/span><span class=\"n\">fiber<\/span><span class=\"o\">\/<\/span><span class=\"n\">v2<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u0627\u06af\u0631 \u06cc\u06a9 \u062a\u0648\u0633\u0639\u0647 \u062f\u0647\u0646\u062f\u0647 \u062c\u0627\u0648\u0627 \u0627\u0633\u06a9\u0631\u06cc\u067e\u062a \u0647\u0633\u062a\u06cc\u062f\u060c \u062f\u0633\u062a\u0648\u0631 \u0632\u06cc\u0631 \u062a\u0642\u0631\u06cc\u0628\u0627\u064b \u0634\u0628\u06cc\u0647 npm install \u0627\u0633\u062a <\/p>\n<p>\u062f\u0631 \u062d\u0627\u0644 \u062d\u0627\u0636\u0631\u060c \u0647\u0645\u0647 \u0645\u0627 \u0622\u0645\u0627\u062f\u0647 \u0627\u06cc\u0645 \u06a9\u0647 \u0634\u0631\u0648\u0639 \u0628\u0647 \u0633\u0627\u062e\u062a \u0638\u0627\u0647\u0631 \u062e\u0648\u062f \u06a9\u0646\u06cc\u0645.  \u0628\u06cc\u0627\u06cc\u06cc\u062f \u06a9\u062f \u0631\u0627 \u0627\u0632 \u0627\u0633\u0646\u0627\u062f \u0631\u0633\u0645\u06cc Go Fiber \u062f\u0631\u06cc\u0627\u0641\u062a \u06a9\u0646\u06cc\u0645\u060c \u0627\u062c\u0631\u0627 \u06a9\u0646\u06cc\u0645 \u0648 \u0622\u0646 \u0631\u0627 \u062f\u0631\u06a9 \u06a9\u0646\u06cc\u0645.<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight go\"><code><span class=\"k\">package<\/span> <span class=\"n\">main<\/span>\n\n<span class=\"k\">import<\/span> <span class=\"p\">(<\/span>\n    <span class=\"s\">\"log\"<\/span>\n\n    <span class=\"s\">\"github.com\/gofiber\/fiber\/v2\"<\/span>\n<span class=\"p\">)<\/span>\n\n<span class=\"k\">func<\/span> <span class=\"n\">main<\/span><span class=\"p\">()<\/span> <span class=\"p\">{<\/span>\n    <span class=\"n\">app<\/span> <span class=\"o\">:=<\/span> <span class=\"n\">fiber<\/span><span class=\"o\">.<\/span><span class=\"n\">New<\/span><span class=\"p\">()<\/span>\n\n    <span class=\"n\">app<\/span><span class=\"o\">.<\/span><span class=\"n\">Get<\/span><span class=\"p\">(<\/span><span class=\"s\">\"https:\/\/dev.to\/\"<\/span><span class=\"p\">,<\/span> <span class=\"k\">func<\/span> <span class=\"p\">(<\/span><span class=\"n\">c<\/span> <span class=\"o\">*<\/span><span class=\"n\">fiber<\/span><span class=\"o\">.<\/span><span class=\"n\">Ctx<\/span><span class=\"p\">)<\/span> <span class=\"kt\">error<\/span> <span class=\"p\">{<\/span>\n        <span class=\"k\">return<\/span> <span class=\"n\">c<\/span><span class=\"o\">.<\/span><span class=\"n\">SendString<\/span><span class=\"p\">(<\/span><span class=\"s\">\"Hello From Verifier's Frontend \ud83d\udc4b\"<\/span><span class=\"p\">)<\/span>\n    <span class=\"p\">})<\/span>\n\n    <span class=\"n\">log<\/span><span class=\"o\">.<\/span><span class=\"n\">Fatal<\/span><span class=\"p\">(<\/span><span class=\"n\">app<\/span><span class=\"o\">.<\/span><span class=\"n\">Listen<\/span><span class=\"p\">(<\/span><span class=\"s\">\":3000\"<\/span><span class=\"p\">))<\/span>\n<span class=\"p\">}<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u067e\u0633 \u0627\u0632 \u0648\u0627\u0631\u062f \u06a9\u0631\u062f\u0646 \u0628\u0633\u062a\u0647 \u0647\u0627\u060c \u062a\u0627\u0628\u0639 \u0627\u0635\u0644\u06cc \u0631\u0627 \u0645\u06cc \u0646\u0648\u06cc\u0633\u06cc\u0645.  \u062a\u0627\u0628\u0639 \u0627\u0635\u0644\u06cc \u0627\u0648\u0644\u06cc\u0646 \u062a\u0627\u0628\u0639\u06cc \u0627\u0633\u062a \u06a9\u0647 \u0628\u0627 \u06a9\u0627\u0645\u067e\u0627\u06cc\u0644 \u0648 \u0627\u062c\u0631\u0627\u06cc \u0628\u0631\u0646\u0627\u0645\u0647 \u0634\u0631\u0648\u0639 \u0645\u06cc \u0634\u0648\u062f.  \u0645\u0627 \u06cc\u06a9 \u0646\u0645\u0648\u0646\u0647\u060c \u0628\u0631\u0646\u0627\u0645\u0647 \u0627\u0632 \u0646\u0648\u0639 \u0641\u06cc\u0628\u0631 \u0627\u06cc\u062c\u0627\u062f \u0645\u06cc \u06a9\u0646\u06cc\u0645.  \u0645\u0627 \u0645\u062e\u062a\u0635\u0631 c \u0631\u0627 \u0628\u0631\u0627\u06cc \u0645\u062a\u0646 \u0645\u06cc \u0646\u0648\u06cc\u0633\u06cc\u0645. <\/p>\n<blockquote>\n<p>\u062f\u0631\u062e\u0648\u0627\u0633\u062a \u0648 \u067e\u0627\u0633\u062e HTTP \u062f\u0631 \u0632\u0645\u06cc\u0646\u0647 \u0646\u06af\u0647\u062f\u0627\u0631\u06cc \u0645\u06cc \u0634\u0648\u062f \u06a9\u0647 \u062a\u0648\u0633\u0637 \u0633\u0627\u062e\u062a\u0627\u0631 Ctx \u0646\u0634\u0627\u0646 \u062f\u0627\u062f\u0647 \u0645\u06cc \u0634\u0648\u062f.  \u0645\u062a\u062f\u0647\u0627\u06cc\u06cc \u0628\u0631\u0627\u06cc \u0628\u062f\u0646\u0647 \u062f\u0631\u062e\u0648\u0627\u0633\u062a\u060c \u0647\u062f\u0631\u0647\u0627\u06cc HTTP\u060c \u0622\u0631\u06af\u0648\u0645\u0627\u0646 \u0647\u0627 \u0648 \u0631\u0634\u062a\u0647 \u067e\u0631\u0633 \u0648 \u062c\u0648 \u0627\u0631\u0627\u0626\u0647 \u0645\u06cc \u06a9\u0646\u062f.<\/p>\n<\/blockquote>\n<p>\u0628\u06cc\u0627\u06cc\u06cc\u062f \u0633\u0631\u0648\u0631 \u0631\u0627 \u062f\u0631 \u067e\u0648\u0631\u062a 3000 \u0627\u062c\u0631\u0627 \u06a9\u0646\u06cc\u0645. \u0634\u0645\u0627 \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u0628\u0646\u0627 \u0628\u0647 \u0631\u0627\u062d\u062a\u06cc \u067e\u0648\u0631\u062a \u0631\u0627 \u062a\u063a\u06cc\u06cc\u0631 \u062f\u0647\u06cc\u062f.  \u062d\u0627\u0644\u0627 \u0627\u062c\u0627\u0632\u0647 \u062f\u0647\u06cc\u062f \u0633\u0631\u0648\u0631 \u0631\u0627 \u0627\u062c\u0631\u0627 \u06a9\u0646\u06cc\u0645 \u0648 \u0628\u0631\u0631\u0633\u06cc \u06a9\u0646\u06cc\u0645 \u06a9\u0647 \u0622\u06cc\u0627 \u0647\u0645\u0647 \u0686\u06cc\u0632 \u0647\u0645\u0627\u0647\u0646\u06af \u0627\u0633\u062a \u06cc\u0627 \u062e\u06cc\u0631.  \u0628\u0647 \u062a\u0631\u0645\u06cc\u0646\u0627\u0644 \u062e\u0648\u062f \u0628\u0631\u0648\u06cc\u062f \u0648 \u0627\u062c\u0631\u0627 \u06a9\u0646\u06cc\u062f <code>go run main.go<\/code><\/p>\n<p><img decoding=\"async\" src=\"https:\/\/nabfollower.com\/blog\/wp-content\/uploads\/2023\/05\/1684171191_149_\u0633\u0627\u062e\u062a-\u062a\u0623\u06cc\u06cc\u062f-\u06a9\u0646\u0646\u062f\u0647-\u0627\u06cc\u0645\u06cc\u0644-\u0628\u0627-Go.png\" alt=\"\u0628\u0631\u0648 \u0641\u06cc\u0628\u0631 \u067e\u0633\u062a \u062a\u0631\u0645\u06cc\u0646\u0627\u0644\" loading=\"lazy\" width=\"800\" height=\"261\" title=\"\"><\/p>\n<p>\u0634\u0645\u0627 \u0628\u0627\u06cc\u062f \u0627\u06cc\u0646 \u0631\u0627 \u062f\u0631 \u062a\u0631\u0645\u06cc\u0646\u0627\u0644 \u062e\u0648\u062f \u062f\u0631\u06cc\u0627\u0641\u062a \u06a9\u0646\u06cc\u062f \u06a9\u0647 \u0646\u0634\u0627\u0646 \u0645\u06cc \u062f\u0647\u062f \u067e\u0648\u0631\u062a\u06cc \u06a9\u0647 \u0628\u0627 \u0622\u0646 \u062f\u0631 \u062d\u0627\u0644 \u0627\u062c\u0631\u0627 \u0647\u0633\u062a\u06cc\u0645\u060c \u062a\u0639\u062f\u0627\u062f \u06a9\u0646\u062a\u0631\u0644 \u06a9\u0646\u0646\u062f\u0647 \u0647\u0627\u060c \u0634\u0646\u0627\u0633\u0647 \u0647\u0627\u06cc \u067e\u0631\u062f\u0627\u0632\u0634 \u0648 \u062a\u0639\u062f\u0627\u062f \u0641\u0631\u0622\u06cc\u0646\u062f\u0647\u0627\u06cc\u06cc \u06a9\u0647 \u062f\u0631 \u062d\u0627\u0644 \u0627\u062c\u0631\u0627 \u0647\u0633\u062a\u06cc\u0645.  \u062f\u0627\u062f\u0647\u200c\u0647\u0627\u06cc \u0632\u06cc\u0631 \u0632\u0645\u0627\u0646\u06cc \u06a9\u0647 \u0628\u0647 \u0633\u0645\u062a \u0633\u0627\u062e\u062a \u0628\u0631\u0646\u0627\u0645\u0647\u200c\u0647\u0627\u06cc \u067e\u06cc\u0686\u06cc\u062f\u0647\u200c\u062a\u0631 \u062d\u0631\u06a9\u062a \u0645\u06cc\u200c\u06a9\u0646\u06cc\u062f\u060c \u06a9\u0627\u0631\u0628\u0631\u062f \u0648\u0627\u0642\u0639\u06cc \u062f\u0627\u0631\u0646\u062f.  \u0647\u062f\u0627\u06cc\u062a \u0628\u0647 <code>localhost:3000<\/code> \u06cc\u0627 \u0647\u0631 \u067e\u0648\u0631\u062a\u06cc \u06a9\u0647 \u0646\u0648\u0634\u062a\u0647 \u0627\u06cc\u062f. <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/nabfollower.com\/blog\/wp-content\/uploads\/2023\/05\/1684171191_366_\u0633\u0627\u062e\u062a-\u062a\u0623\u06cc\u06cc\u062f-\u06a9\u0646\u0646\u062f\u0647-\u0627\u06cc\u0645\u06cc\u0644-\u0628\u0627-Go.png\" alt=\"\u0628\u0647 \u0631\u0627\u0628\u0637 \u06a9\u0627\u0631\u0628\u0631\u06cc \u0641\u06cc\u0628\u0631 \u0628\u0631\u0648\u06cc\u062f\" loading=\"lazy\" width=\"800\" height=\"466\" title=\"\"><\/p>\n<h2><span class=\"ez-toc-section\" id=\"%D8%AF%DB%8C%DA%AF%D8%B1_%F0%9F%92%9A\"><\/span>\n<p>  \u062f\u06cc\u06af\u0631 \ud83d\udc9a<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u0628\u0631\u0646\u0627\u0645\u0647 \u0627\u06cc \u06a9\u0647 \u0645\u0627 \u062a\u0648\u0633\u0639\u0647 \u062f\u0627\u062f\u0647 \u0627\u06cc\u0645 \u06cc\u06a9 \u0646\u0645\u0648\u0646\u0647 \u0627\u0648\u0644\u06cc\u0647 \u0627\u0633\u062a \u0648 \u0627\u0635\u0644\u0627\u064b \u0622\u0645\u0627\u062f\u0647 \u062a\u0648\u0644\u06cc\u062f \u0646\u06cc\u0633\u062a.  \u062a\u0646\u0647\u0627 \u0647\u062f\u0641 \u0648\u0628\u0644\u0627\u06af \u0627\u06cc\u0646 \u0628\u0648\u062f \u06a9\u0647 \u0628\u0647 \u0634\u0645\u0627 \u0646\u062d\u0648\u0647 \u0633\u0627\u062e\u062a\u0646 \u06cc\u06a9 \u0628\u0631\u0646\u0627\u0645\u0647 \u06a9\u0627\u0645\u0644 \u067e\u0634\u062a\u0647 \u0628\u0627 \u0628\u0633\u062a\u0647 \u0647\u0627\u06cc \u0628\u0648\u0645\u06cc \u06af\u0648 \u0631\u0627 \u0628\u0647 \u0634\u0645\u0627 \u0627\u0631\u0627\u0626\u0647 \u062f\u0647\u062f.  \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u0628\u06cc\u0634\u062a\u0631 \u062a\u062d\u0642\u06cc\u0642 \u06a9\u0646\u06cc\u062f \u0648 \u06cc\u06a9 \u0628\u0631\u0646\u0627\u0645\u0647 \u06a9\u0627\u0631\u0628\u0631\u062f\u06cc \u0622\u0645\u0627\u062f\u0647 \u062a\u0648\u0644\u06cc\u062f \u0628\u0633\u0627\u0632\u06cc\u062f.<\/p>\n<p>\u0627\u06a9\u0646\u0648\u0646\u060c \u062f\u0631\u0633\u062a \u0645\u0627\u0646\u0646\u062f \u0647\u0631 \u0622\u0645\u0648\u0632\u0634 \u062f\u06cc\u06af\u0631\u06cc\u060c \u0627\u062c\u0627\u0632\u0647 \u062f\u0647\u06cc\u062f \u0622\u0645\u0648\u0632\u0634 \u0631\u0627 \u0628\u0627 \u06cc\u06a9 \u06a9\u0627\u0631 \u0628\u0647 \u067e\u0627\u06cc\u0627\u0646 \u0628\u0631\u0633\u0627\u0646\u06cc\u0645.  \u0645\u0627 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 API \u0647\u0627\u06cc REST \u062a\u0648\u0633\u0639\u0647 \u062f\u0627\u062f\u0647 \u0627\u06cc\u0645 <code>gorilla\/mux<\/code> \u0648 \u0627\u0633\u062a\u0627\u0631\u062a\u0631 \u062c\u0644\u0648\u06cc\u06cc \u0628\u0627 <code>go-fiber<\/code>.  \u0633\u0639\u06cc \u06a9\u0646\u06cc\u062f \u0645\u0633\u06cc\u0631 POST \u0631\u0627 \u0628\u0631\u0627\u06cc \u0641\u0631\u0627\u0646\u062a\u200c\u0627\u0646\u062f \u0628\u0633\u0627\u0632\u06cc\u062f.  \u062f\u0631 \u0635\u0648\u0631\u062a\u06cc \u06a9\u0647 \u0642\u0627\u062f\u0631 \u0628\u0647 \u0633\u0627\u062e\u062a\u0646 \u0646\u0628\u0627\u0634\u06cc\u062f\u060c \u0628\u0647 \u0632\u0648\u062f\u06cc \u0645\u0642\u0627\u0644\u0647 \u0627\u06cc \u062f\u0631 \u0645\u0648\u0631\u062f \u0633\u0627\u062e\u062a \u0641\u0631\u0627\u0646\u062a \u0627\u0646\u062f \u0628\u0627 Go-lang \u0627\u0631\u0633\u0627\u0644 \u062e\u0648\u0627\u0647\u0645 \u06a9\u0631\u062f.  \u0628\u0647\u062a\u0631\u06cc\u0646 \u0647\u0627 \u0628\u0631\u0627\u06cc \u0633\u0627\u062e\u062a\u0646 \u06cc\u06a9 \u0646\u0645\u0627\u06cc \u06a9\u0627\u0645\u0644.  \u0627\u06cc\u0646\u06a9\u060c \u0648\u0642\u062a\u06cc \u0645\u0646 \u0646\u062d\u0648\u0647 \u0633\u0627\u062e\u062a \u0641\u0631\u0627\u0646\u062a \u0627\u0646\u062f \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 go-fiber \u0631\u0627 \u0645\u0646\u062a\u0634\u0631 \u0645\u06cc \u06a9\u0646\u0645 \u0627\u0632 \u062f\u0633\u062a \u0646\u062f\u0647\u06cc\u062f \u0645\u0646 \u0631\u0627 \u062f\u0631 \u0634\u0628\u06a9\u0647 \u0647\u0627\u06cc \u0627\u062c\u062a\u0645\u0627\u0639\u06cc \u0645\u0646 \u062f\u0646\u0628\u0627\u0644 \u06a9\u0646\u06cc\u062f ^-^<\/p>\n<p>\u0627\u06af\u0631 \u0628\u0631\u0646\u0627\u0645\u0647 \u0631\u0627 \u062a\u0648\u0633\u0639\u0647 \u062f\u0627\u062f\u0647 \u0627\u06cc\u062f \u06cc\u0627 \u0686\u06cc\u0632\u06cc \u0628\u0631\u0627\u06cc \u0628\u062d\u062b \u062f\u0631 \u0632\u06cc\u0631 \u0646\u0648\u0631 \u062e\u0648\u0631\u0634\u06cc\u062f \u062f\u0627\u0631\u06cc\u062f\u060c \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u0628\u0627 \u0645\u0646 \u062f\u0631 \u0644\u06cc\u0646\u06a9\u062f\u06cc\u0646 \u062a\u0645\u0627\u0633 \u0628\u06af\u06cc\u0631\u06cc\u062f \u06cc\u0627 <a href=\"https:\/\/twitter.com\/itzaniket762\" rel=\"nofollow noopener\" target=\"_blank\">\u062a\u0648\u06cc\u06cc\u062a\u0631<\/a> \ud83d\udc96<\/p>\n<blockquote>\n<p>\u0627\u06af\u0631 \u0633\u0627\u0632\u0645\u0627\u0646\u06cc \u0631\u0627 \u0627\u062f\u0627\u0631\u0647 \u0645\u06cc \u06a9\u0646\u06cc\u062f \u0648 \u0645\u06cc \u062e\u0648\u0627\u0647\u06cc\u062f \u06a9\u0647 \u0645\u0646 \u0641\u06cc\u0644\u0645 \u0647\u0627\u06cc \u0622\u0645\u0648\u0632\u0634\u06cc \u0628\u0646\u0648\u06cc\u0633\u0645 \u06cc\u0627 \u0628\u0633\u0627\u0632\u0645\u060c \u0644\u0637\u0641\u0627\u064b \u0628\u0627 \u0645\u0646 \u0627\u0631\u062a\u0628\u0627\u0637 \u0628\u0631\u0642\u0631\u0627\u0631 \u06a9\u0646\u06cc\u062f<\/p>\n<\/blockquote><\/div>\n<p><script async src=\"\/\/platform.twitter.com\/widgets.js\" charset=\"utf-8\"><\/script><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u0627\u0648\u0644\u06cc\u0646 \u0645\u0631\u062d\u0644\u0647 \u0627\u0632 \u0627\u0631\u0633\u0627\u0644 \u0633\u0631\u062f \u0628\u0627 \u062f\u0631\u06cc\u0627\u0641\u062a \u0622\u062f\u0631\u0633 \u0627\u06cc\u0645\u06cc\u0644 \u0627\u0633\u062a\u062e\u062f\u0627\u0645 \u06a9\u0646\u0646\u062f\u0647 \u0641\u0646\u06cc \u0634\u0631\u0648\u0639 \u0645\u06cc \u0634\u0648\u062f. \u0627\u063a\u0644\u0628 \u0627\u0632 \u0637\u0631\u06cc\u0642 \u0627\u06cc\u0646\u062a\u0631\u0646\u062a \u06af\u0641\u062a\u0647 \u0645\u06cc \u0634\u0648\u062f \u06a9\u0647 \u0628\u0647 \u0637\u0648\u0631 \u062a\u0635\u0627\u062f\u0641\u06cc \u0627\u06cc\u0645\u06cc\u0644 \u0628\u0627 \u062a\u0631\u06a9\u06cc\u0628 \u0646\u0627\u0645 \u0648 \u0646\u0627\u0645 \u062e\u0627\u0646\u0648\u0627\u062f\u06af\u06cc \u0627\u0633\u062a\u062e\u062f\u0627\u0645 \u06a9\u0646\u0646\u062f\u0647 \u062a\u0634\u06a9\u06cc\u0644 \u062f\u0647\u06cc\u062f. \u0628\u06af\u0648\u06cc\u06cc\u062f\u060c \u0627\u06af\u0631 \u0645\u06cc \u062e\u0648\u0627\u0647\u06cc\u062f \u0628\u0647 \u0645\u0646 \u0627\u06cc\u0645\u06cc\u0644 \u0628\u0632\u0646\u06cc\u062f\u060c \u062a\u0631\u06a9\u06cc\u0628 \u0647\u0627\u06cc \u0645\u0645\u06a9\u0646 \u0645\u06cc \u062a\u0648\u0627\u0646\u062f \u0628\u0627\u0634\u062f aniket.pal@companymail.com\u060c pal.aniket@companymail.com\u060c paniket@companymail.com\u060c aniketpal@comapanymail.com &hellip;<\/p>\n","protected":false},"author":2,"featured_media":23183,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"fifu_image_url":"","fifu_image_alt":"","footnotes":""},"categories":[339],"tags":[],"class_list":["post-23182","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-dev"],"_links":{"self":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/posts\/23182","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/comments?post=23182"}],"version-history":[{"count":0,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/posts\/23182\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/media\/23183"}],"wp:attachment":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/media?parent=23182"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/categories?post=23182"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/tags?post=23182"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}