{"id":98105,"date":"2025-02-19T03:12:58","date_gmt":"2025-02-18T23:42:58","guid":{"rendered":"https:\/\/nabfollower.com\/blog\/laravel-api-tutorial-build-document-and-secure-a-rest-api-4j83\/"},"modified":"2025-02-19T03:12:58","modified_gmt":"2025-02-18T23:42:58","slug":"laravel-api-tutorial-build-document-and-secure-a-rest-api-4j83","status":"publish","type":"post","link":"https:\/\/nabfollower.com\/blog\/laravel-api-tutorial-build-document-and-secure-a-rest-api-4j83\/","title":{"rendered":"\u0622\u0645\u0648\u0632\u0634 API Laravel: \u0633\u0627\u062e\u062a \u060c \u0645\u0633\u062a\u0646\u062f \u0633\u0627\u0632\u06cc \u0648 \u0627\u06cc\u0645\u0646 \u06a9\u0631\u062f\u0646 \u06cc\u06a9 API REST"},"content":{"rendered":"<div data-article-id=\"2286657\" id=\"article-body\">\n<blockquote>\n<p>\u0627\u06cc\u0646 \u0645\u0642\u0627\u0644\u0647 \u062a\u0648\u0633\u0637> \u0627\u0633\u062a\u06cc\u0648 \u0645\u06a9 \u062f\u06af\u0627\u0644 \u060c \u0633\u0627\u0632\u0646\u062f\u0647 \u062f\u06cc\u0631\u06cc\u0646\u0647> PHP\/Laravel \u0648 \u062f\u0648\u0633\u062a Zuplo \u0646\u0648\u0634\u062a\u0647 \u0634\u062f\u0647 \u0627\u0633\u062a. \u062a\u0645\u0627\u0645 \u0646\u0638\u0631\u0627\u062a \u0628\u06cc\u0627\u0646 \u0634\u062f\u0647 \u062e\u0648\u062f \u0627\u0648\u0633\u062a.<\/p>\n<\/blockquote>\n<p>\u0644\u0627\u0631\u0627\u0648\u0644 \u0648 \u0632\u0648\u067e\u0644\u0648 \u0645\u0633\u0627\u0628\u0642\u0647 \u0627\u06cc \u0627\u0633\u062a \u06a9\u0647 \u062f\u0631 \u0628\u0647\u0634\u062a \u200b\u200b\u0633\u0627\u062e\u062a\u0647 \u0634\u062f\u0647 \u0627\u0633\u062a \u0648 \u0647\u0646\u0648\u0632 \u0647\u06cc\u0686 \u06a9\u0633 \u0627\u0632 \u0622\u0646 \u0646\u0645\u06cc \u062f\u0627\u0646\u062f. \u0645\u0646 \u0641\u06a9\u0631 \u06a9\u0631\u062f\u0645 \u0627\u06a9\u0646\u0648\u0646 \u0632\u0645\u0627\u0646 \u062e\u0648\u0628\u06cc \u0628\u0631\u0627\u06cc \u0637\u06cc \u06a9\u0631\u062f\u0646 \u0686\u06af\u0648\u0646\u06af\u06cc \u0628\u0627\u0644\u0627 \u0628\u0631\u062f\u0646 \u0628\u0627\u0632\u06cc API \u062e\u0648\u062f \u0628\u0627 \u0644\u0627\u0631\u0627\u0648\u0644 \u0648 \u0632\u0648\u067e\u0644\u0648 \u0628\u0627 \u0647\u0645 \u062e\u0648\u0627\u0647\u062f \u0628\u0648\u062f.<\/p>\n<p>Zuplo \u062e\u0648\u062f \u0645\u062c\u0645\u0648\u0639\u0647 \u0627\u06cc \u0627\u0632 \u0627\u0628\u0632\u0627\u0631\u0647\u0627\u06cc \u063a\u0646\u06cc \u0631\u0627 \u0627\u0631\u0627\u0626\u0647 \u0645\u06cc \u062f\u0647\u062f \u06a9\u0647 \u0628\u0647 \u0634\u0645\u0627 \u062f\u0631 \u0633\u0627\u062e\u062a \u06cc\u06a9 API \u0634\u06af\u0641\u062a \u0627\u0646\u06af\u06cc\u0632 \u06a9\u0645\u06a9 \u0645\u06cc \u06a9\u0646\u062f \u060c \u0648 Laravel \u060c Laravel \u0627\u0633\u062a! \u0627\u06cc\u0646 \u06cc\u06a9 \u0686\u0627\u0631\u0686\u0648\u0628 PHP \u062a\u0645\u0627\u0645 \u067e\u0634\u062a\u0647 \u0627\u0633\u062a \u06a9\u0647 \u0628\u0647 \u0634\u0645\u0627 \u0627\u0645\u06a9\u0627\u0646 \u0645\u06cc \u062f\u0647\u062f \u0628\u0647 \u0633\u0631\u0639\u062a \u062f\u0631 \u0645\u0648\u0631\u062f \u0627\u06cc\u062f\u0647 \u0647\u0627 \u062a\u06a9\u0631\u0627\u0631 \u06a9\u0646\u06cc\u062f \u0648 \u0628\u0631\u062e\u06cc \u0627\u0632 \u0645\u0648\u0627\u0631\u062f \u062e\u0648\u0628 \u0631\u0627 \u0628\u0633\u0627\u0632\u06cc\u062f. \u0628\u0627 \u0647\u0645 \u060c \u0634\u0645\u0627 \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u06cc\u06a9 API \u0628\u0633\u0627\u0632\u06cc\u062f \u06a9\u0647 \u0646\u0647 \u062a\u0646\u0647\u0627 \u0634\u0627\u062f\u06cc \u0628\u0631\u0627\u06cc \u06a9\u0627\u0631 \u0628\u0627 \u0622\u0646 \u0627\u0633\u062a \u060c \u0628\u0644\u06a9\u0647 \u062f\u0631 \u062d\u0627\u0644 \u062a\u0648\u0627\u0646\u0645\u0646\u062f\u0633\u0627\u0632\u06cc \u0627\u0633\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\/laravel-api-tutorial-build-document-and-secure-a-rest-api-4j83\/#%D8%B3%D8%A7%D8%AE%D8%AA_%D9%85%D8%AF%D9%84_%D8%AF%D8%A7%D8%AF%D9%87_%D8%AE%D9%88%D8%AF\" >\u0633\u0627\u062e\u062a \u0645\u062f\u0644 \u062f\u0627\u062f\u0647 \u062e\u0648\u062f<\/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\/laravel-api-tutorial-build-document-and-secure-a-rest-api-4j83\/#%D8%A7%DB%8C%D8%AC%D8%A7%D8%AF_%D9%86%D9%82%D8%A7%D8%B7_%D9%BE%D8%A7%DB%8C%D8%A7%D9%86%DB%8C_API\" >\u0627\u06cc\u062c\u0627\u062f \u0646\u0642\u0627\u0637 \u067e\u0627\u06cc\u0627\u0646\u06cc API<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/nabfollower.com\/blog\/laravel-api-tutorial-build-document-and-secure-a-rest-api-4j83\/#%D8%A7%D8%B9%D8%AA%D8%A8%D8%A7%D8%B1_%D8%B3%D9%86%D8%AC%DB%8C_%D8%AF%D8%B1%D8%AE%D9%88%D8%A7%D8%B3%D8%AA_%D9%84%D8%A7%D8%B1%D8%A7%D9%88%D9%84\" >\u0627\u0639\u062a\u0628\u0627\u0631 \u0633\u0646\u062c\u06cc \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u0644\u0627\u0631\u0627\u0648\u0644<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/nabfollower.com\/blog\/laravel-api-tutorial-build-document-and-secure-a-rest-api-4j83\/#%D8%A7%DB%8C%D8%AC%D8%A7%D8%AF_%DB%8C%DA%A9_%DA%A9%D8%A7%D8%B1_%D8%B5%D9%81\" >\u0627\u06cc\u062c\u0627\u062f \u06cc\u06a9 \u06a9\u0627\u0631 \u0635\u0641<\/a><\/li><\/ul><\/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\/laravel-api-tutorial-build-document-and-secure-a-rest-api-4j83\/#%D8%A7%DB%8C%D8%AC%D8%A7%D8%AF_%D9%85%D8%B4%D8%AE%D8%B5%D8%A7%D8%AA_OpenAPI_%D8%A8%D8%A7_%D8%AA%D9%82%D9%84%D8%A7\" >\u0627\u06cc\u062c\u0627\u062f \u0645\u0634\u062e\u0635\u0627\u062a OpenAPI \u0628\u0627 \u062a\u0642\u0644\u0627<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/nabfollower.com\/blog\/laravel-api-tutorial-build-document-and-secure-a-rest-api-4j83\/#%D8%AA%D9%86%D8%B8%DB%8C%D9%85_%D8%AF%D8%B1%D9%88%D8%A7%D8%B2%D9%87_zuplo_%D8%AE%D9%88%D8%AF\" >\u062a\u0646\u0638\u06cc\u0645 \u062f\u0631\u0648\u0627\u0632\u0647 zuplo \u062e\u0648\u062f<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/nabfollower.com\/blog\/laravel-api-tutorial-build-document-and-secure-a-rest-api-4j83\/#%D8%A7%D9%81%D8%B2%D9%88%D8%AF%D9%86_%D8%A7%D8%B9%D8%AA%D8%A8%D8%A7%D8%B1_%D8%B3%D9%86%D8%AC%DB%8C_%D8%AF%D8%B1%D8%AE%D9%88%D8%A7%D8%B3%D8%AA_API\" >\u0627\u0641\u0632\u0648\u062f\u0646 \u0627\u0639\u062a\u0628\u0627\u0631 \u0633\u0646\u062c\u06cc \u062f\u0631\u062e\u0648\u0627\u0633\u062a API<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/nabfollower.com\/blog\/laravel-api-tutorial-build-document-and-secure-a-rest-api-4j83\/#%D8%A7%D9%81%D8%B2%D9%88%D8%AF%D9%86_%D8%A7%D8%AD%D8%B1%D8%A7%D8%B2_%D9%87%D9%88%DB%8C%D8%AA_%DA%A9%D9%84%DB%8C%D8%AF_API\" >\u0627\u0641\u0632\u0648\u062f\u0646 \u0627\u062d\u0631\u0627\u0632 \u0647\u0648\u06cc\u062a \u06a9\u0644\u06cc\u062f API<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-9\" href=\"https:\/\/nabfollower.com\/blog\/laravel-api-tutorial-build-document-and-secure-a-rest-api-4j83\/#%D8%A7%D8%B6%D8%A7%D9%81%D9%87_%DA%A9%D8%B1%D8%AF%D9%86_%D9%85%D8%AD%D8%AF%D9%88%D8%AF%DB%8C%D8%AA_%D9%86%D8%B1%D8%AE\" >\u0627\u0636\u0627\u0641\u0647 \u06a9\u0631\u062f\u0646 \u0645\u062d\u062f\u0648\u062f\u06cc\u062a \u0646\u0631\u062e<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-10\" href=\"https:\/\/nabfollower.com\/blog\/laravel-api-tutorial-build-document-and-secure-a-rest-api-4j83\/#%D8%A7%D8%B3%D8%AA%D9%81%D8%A7%D8%AF%D9%87_%D8%A7%D8%B2_API_Laravel\" >\u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 API Laravel<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-11\" href=\"https:\/\/nabfollower.com\/blog\/laravel-api-tutorial-build-document-and-secure-a-rest-api-4j83\/#%D9%BE%DB%8C%DA%86%DB%8C%D8%AF%D9%86\" >\u067e\u06cc\u0686\u06cc\u062f\u0646<\/a><\/li><\/ul><\/nav><\/div>\n<h2><span class=\"ez-toc-section\" id=\"%D8%B3%D8%A7%D8%AE%D8%AA_%D9%85%D8%AF%D9%84_%D8%AF%D8%A7%D8%AF%D9%87_%D8%AE%D9%88%D8%AF\"><\/span>\n<p>  \u0633\u0627\u062e\u062a \u0645\u062f\u0644 \u062f\u0627\u062f\u0647 \u062e\u0648\u062f<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p><\/p>\n<p>\u0645\u0646 \u0646\u0645\u06cc \u062e\u0648\u0627\u0633\u062a\u0645 API &#8220;\u06cc\u06a9 Todo \u2122 \u2122 \ufe0f \ufe0f&#8221; \u0631\u0627 \u0628\u0646\u0648\u06cc\u0633\u0645 \u06a9\u0647 \u0634\u0645\u0627 \u0646\u0645\u06cc \u062e\u0648\u0627\u0647\u06cc\u062f \u0627\u0632 \u0622\u0646 \u0686\u06cc\u0632\u06cc \u0628\u0631\u062e\u0648\u0631\u062f\u0627\u0631 \u0634\u0648\u06cc\u062f. \u062f\u0631\u0639\u0648\u0636 \u060c \u0645\u0646 \u062a\u0635\u0645\u06cc\u0645 \u06af\u0631\u0641\u062a\u0645 \u06a9\u0647 \u0686\u062a\u06af\u067e \u0631\u0627 \u062c\u062f\u0627 \u06a9\u0646\u0645 \u0648 \u06cc\u06a9 \u062c\u0644\u0633\u0647 \u0637\u0648\u0641\u0627\u0646 \u0645\u063a\u0632\u06cc \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u0645. \u062f\u0631 \u0645\u06cc\u0627\u0646 \u0622\u0646 \u0627\u06cc\u062f\u0647 \u0647\u0627\u06cc \u0645\u0639\u0645\u0648\u0644 AI \u062f\u06cc\u0648\u0627\u0646\u0647 \u0648\u0627\u0631 \u060c \u06cc\u06a9 \u06af\u0648\u0647\u0631 \u060c Locallore API \u0628\u0648\u062f. \u0628\u0646\u0627\u0628\u0631\u0627\u06cc\u0646 \u060c \u0628\u0627 \u0627\u06cc\u062f\u0647 \u0627\u06cc \u062f\u0631 \u062c\u06cc\u0628 \u0645\u0646 \u0648 \u06cc\u06a9 \u0642\u0647\u0648\u0647 \u0628\u0631\u0627\u06cc \u0627\u062f\u0627\u0645\u0647 \u06a9\u0627\u0631 \u0645\u0646 &#8211; \u0628\u06cc\u0627\u06cc\u06cc\u062f API \u0631\u0627 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 Laravel \u0648 Zuplo \u0628\u0633\u0627\u0632\u06cc\u0645 \u06a9\u0647 \u0628\u0647 \u06a9\u0627\u0631\u0628\u0631 \u0627\u062c\u0627\u0632\u0647 \u0645\u06cc \u062f\u0647\u062f \u062f\u0627\u0633\u062a\u0627\u0646 \u0647\u0627\u06cc \u06a9\u0648\u062a\u0627\u0647 \u0627\u0631\u0633\u0627\u0644 \u0634\u062f\u0647 \u0628\u0647 \u0645\u0646\u0627\u0637\u0642 \u0645\u062d\u0644\u06cc \u0627\u0631\u0633\u0627\u0644 \u0634\u0648\u062f. \u0628\u0633\u06cc\u0627\u0631 \u062c\u0627\u0644\u0628 \u062f\u0631\u0633\u062a \u0627\u0633\u062a\u061f \u0628\u06cc\u0627\u06cc\u06cc\u062f \u0634\u0631\u0648\u0639 \u06a9\u0646\u06cc\u0645<\/p>\n<p>\u062a\u0645\u0627\u0645 \u067e\u0631\u0648\u0698\u0647 \u0647\u0627\u06cc \u062e\u0648\u0628 \u0644\u0627\u0631\u0627\u0648\u0644 \u0628\u0627 \u0634\u0631\u0648\u0639 \u0645\u06cc \u0634\u0648\u0646\u062f <code>laravel new<\/code>\u060c \u0627\u0645\u0627 \u0627\u062e\u06cc\u0631\u0627\u064b \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 Laravel Herd Pro \u062a\u063a\u06cc\u06cc\u0631 \u06a9\u0631\u062f\u0647 \u0627\u0645 \u060c \u0627\u06a9\u0646\u0648\u0646 \u06cc\u06a9 UI \u0641\u0627\u0646\u062a\u0632\u06cc \u062f\u0627\u0631\u0645 \u06a9\u0647 \u0645\u06cc \u062a\u0648\u0627\u0646\u0645 \u0627\u06cc\u0646 \u06a9\u0627\u0631 \u0631\u0627 \u0627\u0646\u062c\u0627\u0645 \u062f\u0647\u0645. \u0645\u0646 \u0647\u0646\u0648\u0632 \u0647\u0645 \u062f\u0633\u062a\u0648\u0631\u0627\u062a \u0631\u0627 \u0628\u0631\u0627\u06cc \u0634\u0645\u0627 \u0645\u06cc \u0646\u0648\u06cc\u0633\u0645 \u060c \u0641\u0642\u0637 \u062f\u0631 \u0635\u0648\u0631\u062a\u06cc \u06a9\u0647 \u0645\u06cc \u062e\u0648\u0627\u0647\u06cc\u062f \u062f\u0646\u0628\u0627\u0644 \u06a9\u0646\u06cc\u062f.<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight shell\"><code>laravel new local-lore\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>\u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0631\u0627 \u0648\u0627\u0631\u062f \u06a9\u0646\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 \u0642\u0635\u062f \u0646\u062f\u0627\u0631\u06cc\u0645 \u0627\u0632 \u0647\u0631 \u06a9\u06cc\u062a \u0627\u0633\u062a\u0627\u0631\u062a \u0628\u0631\u0627\u06cc \u0627\u06cc\u0646 \u067e\u0631\u0648\u0698\u0647 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u0645 \u060c \u0632\u06cc\u0631\u0627 \u0642\u0637\u0639\u0627\u064b \u0628\u0647 UI \u06cc\u0627 JavaScript \u0627\u062d\u062a\u06cc\u0627\u062c \u0646\u062f\u0627\u0631\u06cc\u0645 &#8211; \u0648 \u0645\u06cc \u062e\u0648\u0627\u0647\u06cc\u0645 \u0628\u0631\u0627\u06cc \u062a\u0648\u0644\u06cc\u062f \u06a9\u0644\u06cc\u062f\u0647\u0627\u06cc API \u062e\u0648\u062f \u0628\u0631\u0627\u06cc \u0627\u062d\u0631\u0627\u0632 \u0647\u0648\u06cc\u062a \u060c \u0627\u0632 Zuplo \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u0645! \u067e\u0633 \u0627\u0632 \u0627\u06cc\u062c\u0627\u062f \u0627\u06cc\u0646 \u067e\u0631\u0648\u0698\u0647 \u060c \u0628\u06cc\u0627\u06cc\u06cc\u062f \u0622\u0646 \u0631\u0627 \u062f\u0631 \u0648\u06cc\u0631\u0627\u06cc\u0634\u06af\u0631 \u06a9\u062f \u0645\u0648\u0631\u062f \u0639\u0644\u0627\u0642\u0647 \u062e\u0648\u062f \u06cc\u0627 IDE \u0628\u0627\u0632 \u06a9\u0646\u06cc\u0645.<\/p>\n<p>\u0645\u0627 \u0642\u0635\u062f \u062f\u0627\u0631\u06cc\u0645 \u0627\u0632 \u0645\u062f\u0644 \u06a9\u0627\u0631\u0628\u0631 \u0648 \u0645\u0647\u0627\u062c\u0631\u062a \u0645\u0648\u062c\u0648\u062f \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u0645 &#8211; \u0641\u0642\u0637 \u0686\u0646\u062f \u062a\u063a\u06cc\u06cc\u0631 \u062c\u0632\u0626\u06cc \u0628\u0631\u0627\u06cc \u062a\u063a\u06cc\u06cc\u0631 \u0627\u0632 \u06cc\u06a9 \u0634\u0646\u0627\u0633\u0647 \u0627\u0641\u0632\u0627\u06cc\u0634 \u062f\u0647\u0646\u062f\u0647 \u0628\u0647 ULID \u06cc\u0627 UUID \u0627\u06cc\u062c\u0627\u062f \u0645\u06cc \u06a9\u0646\u06cc\u0645.<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight php\"><code><span class=\"nc\">Schema<\/span><span class=\"o\">::<\/span><span class=\"nf\">create<\/span><span class=\"p\">(<\/span><span class=\"s1\">'users'<\/span><span class=\"p\">,<\/span> <span class=\"k\">static<\/span> <span class=\"k\">function<\/span> <span class=\"p\">(<\/span><span class=\"kt\">Blueprint<\/span> <span class=\"nv\">$table<\/span><span class=\"p\">):<\/span> <span class=\"kt\">void<\/span> <span class=\"p\">{<\/span>\n    <span class=\"nv\">$table<\/span><span class=\"o\">-&gt;<\/span><span class=\"nf\">ulid<\/span><span class=\"p\">(<\/span><span class=\"s1\">'id'<\/span><span class=\"p\">)<\/span><span class=\"o\">-&gt;<\/span><span class=\"nf\">primary<\/span><span class=\"p\">();<\/span>\n\n    <span class=\"nv\">$table<\/span><span class=\"o\">-&gt;<\/span><span class=\"nf\">string<\/span><span class=\"p\">(<\/span><span class=\"s1\">'name'<\/span><span class=\"p\">);<\/span>\n    <span class=\"nv\">$table<\/span><span class=\"o\">-&gt;<\/span><span class=\"nf\">string<\/span><span class=\"p\">(<\/span><span class=\"s1\">'email'<\/span><span class=\"p\">)<\/span><span class=\"o\">-&gt;<\/span><span class=\"nf\">unique<\/span><span class=\"p\">();<\/span>\n    <span class=\"nv\">$table<\/span><span class=\"o\">-&gt;<\/span><span class=\"nf\">string<\/span><span class=\"p\">(<\/span><span class=\"s1\">'password'<\/span><span class=\"p\">);<\/span>\n    <span class=\"nv\">$table<\/span><span class=\"o\">-&gt;<\/span><span class=\"nf\">rememberToken<\/span><span class=\"p\">();<\/span>\n\n    <span class=\"nv\">$table<\/span><span class=\"o\">-&gt;<\/span><span class=\"nf\">timestamp<\/span><span class=\"p\">(<\/span><span class=\"s1\">'email_verified_at'<\/span><span class=\"p\">)<\/span><span class=\"o\">-&gt;<\/span><span class=\"nf\">nullable<\/span><span class=\"p\">();<\/span>\n    <span class=\"nv\">$table<\/span><span class=\"o\">-&gt;<\/span><span class=\"nf\">timestamps<\/span><span class=\"p\">();<\/span>\n    <span class=\"nv\">$table<\/span><span class=\"o\">-&gt;<\/span><span class=\"nf\">softDeletes<\/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>\u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0631\u0627 \u0648\u0627\u0631\u062f \u06a9\u0646\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>\u0647\u0645\u0627\u0646\u0637\u0648\u0631 \u06a9\u0647 \u0645\u0634\u0627\u0647\u062f\u0647 \u0645\u06cc \u06a9\u0646\u06cc\u062f \u060c \u0645\u0647\u0627\u062c\u0631\u062a \u06a9\u0627\u0631\u0628\u0631 \u062c\u062f\u0627 \u0627\u0632 \u06a9\u06cc\u0641\u06cc\u062a \u062c\u0632\u0626\u06cc \u062a\u0646\u0638\u06cc\u0645\u0627\u062a \u0632\u0646\u062f\u06af\u06cc \u0646\u0633\u0628\u062a\u0627\u064b \u0627\u0633\u062a\u0627\u0646\u062f\u0627\u0631\u062f \u0628\u0627\u0642\u06cc \u0645\u06cc \u0645\u0627\u0646\u062f. \u0628\u0646\u0627\u0628\u0631\u0627\u06cc\u0646 \u060c \u0628\u06cc\u0627\u06cc\u06cc\u062f \u062d\u0631\u06a9\u062a \u06a9\u0646\u06cc\u0645.<\/p>\n<p>\u0646\u06a9\u062a\u0647 \u0627\u0635\u0644\u06cc \u0627\u06cc\u0646 \u0627\u0633\u062a \u06a9\u0647 \u0628\u0647 \u06a9\u0627\u0631\u0628\u0631\u0627\u0646 \u0627\u0645\u06a9\u0627\u0646 \u0627\u0631\u0633\u0627\u0644 \u062f\u0627\u0633\u062a\u0627\u0646 \u0647\u0627\u06cc \u06a9\u0648\u062a\u0627\u0647 \u062f\u0631\u0628\u0627\u0631\u0647 \u06cc\u06a9 \u0645\u0646\u0637\u0642\u0647 \u0645\u062d\u0644\u06cc \u0645\u0627\u0646\u0646\u062f \u0627\u0633\u0637\u0648\u0631\u0647 \u0647\u0627\u06cc \u0645\u062d\u0644\u06cc \u0648 \u0645\u0648\u0627\u0631\u062f\u06cc \u0627\u0632 \u0627\u06cc\u0646 \u062f\u0633\u062a \u0631\u0627 \u0645\u06cc \u062f\u0647\u062f. \u0628\u0646\u0627\u0628\u0631\u0627\u06cc\u0646 \u062f\u0631 \u0645\u0631\u062d\u0644\u0647 \u0628\u0639\u062f \u060c \u0645\u0627 \u0645\u06cc \u062e\u0648\u0627\u0647\u06cc\u0645 \u0628\u0647 \u0627\u06cc\u062c\u0627\u062f \u0645\u062f\u0644 \u062f\u0627\u0633\u062a\u0627\u0646 \u0648 \u0645\u0647\u0627\u062c\u0631\u062a \u0628\u067e\u0631\u062f\u0627\u0632\u06cc\u0645. \u0628\u0647 \u0645\u0646\u0638\u0648\u0631 \u0627\u06cc\u0646 \u0645\u0642\u0627\u0644\u0647 \u060c \u0645\u0646 \u0642\u0635\u062f \u0646\u062f\u0627\u0631\u0645 \u0628\u06cc\u0634 \u0627\u0632 \u062d\u062f \u062f\u0631 \u0627\u06cc\u0646 \u0645\u0648\u0631\u062f \u0628\u0647 \u062c\u0632\u0626\u06cc\u0627\u062a \u0628\u067e\u0631\u062f\u0627\u0632\u0645 \u060c \u0627\u0645\u0627 \u06a9\u062f \u0628\u0631\u0627\u06cc \u0647\u0631 \u0642\u0633\u0645\u062a \u06a9\u0647 \u0645\u0646 \u062f\u0631 \u0627\u06cc\u0646\u062c\u0627 \u0634\u0627\u0645\u0644 \u0646\u0645\u06cc \u0634\u0648\u0645 \u060c \u0631\u0648\u06cc GitHub \u0642\u0631\u0627\u0631 \u062e\u0648\u0627\u0647\u062f \u06af\u0631\u0641\u062a.<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight shell\"><code>php artisan make:model Story <span class=\"nt\">-mf<\/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>\u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0631\u0627 \u0648\u0627\u0631\u062f \u06a9\u0646\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\u06cc\u0646 \u0628\u0627\u0639\u062b \u0645\u06cc \u0634\u0648\u062f \u0645\u062f\u0644 \u062f\u0627\u0633\u062a\u0627\u0646 \u060c \u0645\u0647\u0627\u062c\u0631\u062a \u0648 \u06a9\u0627\u0631\u062e\u0627\u0646\u0647 \u0628\u0631\u0627\u06cc \u0645\u0627 \u0627\u06cc\u062c\u0627\u062f \u0634\u0648\u062f. \u0627\u06cc\u0646 \u0645\u0641\u06cc\u062f \u0627\u0633\u062a \u0632\u06cc\u0631\u0627 \u0647\u0645\u0647 \u0686\u06cc\u0632 \u0631\u0627 \u0628\u0631\u0627\u06cc \u0645\u062f\u06cc\u0631\u06cc\u062a \u062f\u0627\u0633\u062a\u0627\u0646 \u0647\u0627\u06cc \u062e\u0648\u062f \u0628\u0647 \u0645\u0627 \u0645\u06cc \u062f\u0647\u062f \u0648 \u0631\u0627\u0647\u06cc \u0628\u0631\u0627\u06cc \u0627\u06cc\u062c\u0627\u062f \u062f\u0627\u0633\u062a\u0627\u0646 \u0628\u0631\u0627\u06cc \u0645\u062c\u0645\u0648\u0639\u0647 \u062a\u0633\u062a \u062e\u0648\u062f \u062f\u0627\u0631\u06cc\u0645. \u0645\u062f\u0644 \u062f\u0627\u0633\u062a\u0627\u0646 \u0645\u0627 \u0646\u0633\u0628\u062a\u0627\u064b \u0633\u0627\u062f\u0647 \u0627\u0633\u062a \u060c \u0645\u0627 \u062f\u0631 \u062a\u0644\u0627\u0634 \u0646\u06cc\u0633\u062a\u06cc\u0645 \u062a\u0627 \u0647\u0631 \u0686\u06cc\u0632\u06cc \u0631\u0627 \u062f\u0631 \u0627\u06cc\u0646\u062c\u0627 \u0628\u0633\u0627\u0632\u06cc\u0645:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight php\"><code><span class=\"nc\">Schema<\/span><span class=\"o\">::<\/span><span class=\"nf\">create<\/span><span class=\"p\">(<\/span><span class=\"s1\">'story'<\/span><span class=\"p\">,<\/span> <span class=\"k\">static<\/span> <span class=\"k\">function<\/span> <span class=\"p\">(<\/span><span class=\"kt\">Blueprint<\/span> <span class=\"nv\">$table<\/span><span class=\"p\">):<\/span> <span class=\"kt\">void<\/span> <span class=\"p\">{<\/span>\n    <span class=\"nv\">$table<\/span><span class=\"o\">-&gt;<\/span><span class=\"nf\">ulid<\/span><span class=\"p\">(<\/span><span class=\"s1\">'id'<\/span><span class=\"p\">)<\/span><span class=\"o\">-&gt;<\/span><span class=\"nf\">primary<\/span><span class=\"p\">();<\/span>\n\n    <span class=\"nv\">$table<\/span><span class=\"o\">-&gt;<\/span><span class=\"nf\">string<\/span><span class=\"p\">(<\/span><span class=\"s1\">'title'<\/span><span class=\"p\">);<\/span>\n    <span class=\"nv\">$table<\/span><span class=\"o\">-&gt;<\/span><span class=\"nf\">string<\/span><span class=\"p\">(<\/span><span class=\"s1\">'status'<\/span><span class=\"p\">)<\/span><span class=\"o\">-&gt;<\/span><span class=\"k\">default<\/span><span class=\"p\">(<\/span><span class=\"nc\">Status<\/span><span class=\"o\">::<\/span><span class=\"nc\">Draft<\/span><span class=\"o\">-&gt;<\/span><span class=\"n\">value<\/span><span class=\"p\">);<\/span>\n\n    <span class=\"nv\">$table<\/span><span class=\"o\">-&gt;<\/span><span class=\"nf\">text<\/span><span class=\"p\">(<\/span><span class=\"s1\">'content'<\/span><span class=\"p\">);<\/span>\n\n    <span class=\"nv\">$table<\/span><span class=\"o\">-&gt;<\/span><span class=\"nf\">decimal<\/span><span class=\"p\">(<\/span><span class=\"s1\">'latitude'<\/span><span class=\"p\">,<\/span> <span class=\"mi\">10<\/span><span class=\"p\">,<\/span> <span class=\"mi\">7<\/span><span class=\"p\">);<\/span>\n    <span class=\"nv\">$table<\/span><span class=\"o\">-&gt;<\/span><span class=\"nf\">decimal<\/span><span class=\"p\">(<\/span><span class=\"s1\">'longitude'<\/span><span class=\"p\">,<\/span> <span class=\"mi\">10<\/span><span class=\"p\">,<\/span> <span class=\"mi\">7<\/span><span class=\"p\">);<\/span>\n\n    <span class=\"nv\">$table<\/span>\n        <span class=\"o\">-&gt;<\/span><span class=\"nf\">foreignUlid<\/span><span class=\"p\">(<\/span><span class=\"s1\">'user_id'<\/span><span class=\"p\">)<\/span>\n        <span class=\"o\">-&gt;<\/span><span class=\"nf\">index<\/span><span class=\"p\">()<\/span>\n        <span class=\"o\">-&gt;<\/span><span class=\"nf\">constrained<\/span><span class=\"p\">(<\/span><span class=\"s1\">'users'<\/span><span class=\"p\">)<\/span>\n        <span class=\"o\">-&gt;<\/span><span class=\"nf\">cascadeOnDelete<\/span><span class=\"p\">();<\/span>\n\n    <span class=\"nv\">$table<\/span><span class=\"o\">-&gt;<\/span><span class=\"nf\">timestamp<\/span><span class=\"p\">(<\/span><span class=\"s1\">'published_at'<\/span><span class=\"p\">)<\/span><span class=\"o\">-&gt;<\/span><span class=\"nf\">nullable<\/span><span class=\"p\">();<\/span>\n    <span class=\"nv\">$table<\/span><span class=\"o\">-&gt;<\/span><span class=\"nf\">timestamps<\/span><span class=\"p\">();<\/span>\n\n    <span class=\"nv\">$table<\/span><span class=\"o\">-&gt;<\/span><span class=\"nf\">index<\/span><span class=\"p\">([<\/span><span class=\"s1\">'latitude'<\/span><span class=\"p\">,<\/span> <span class=\"s1\">'longitude'<\/span><span class=\"p\">]);<\/span>\n    <span class=\"nv\">$table<\/span><span class=\"o\">-&gt;<\/span><span class=\"nf\">index<\/span><span class=\"p\">(<\/span><span class=\"s1\">'status'<\/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>\u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0631\u0627 \u0648\u0627\u0631\u062f \u06a9\u0646\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 \u0633\u062a\u0648\u0646 \u0647\u0627\u06cc \u0639\u0627\u062f\u06cc \u0631\u0627 \u06a9\u0647 \u0634\u0645\u0627 \u0631\u0648\u06cc \u0622\u0646 \u062a\u0623\u062b\u06cc\u0631 \u0645\u06cc \u06af\u0630\u0627\u0631\u06cc\u062f \u060c \u06cc\u06a9 \u0639\u0646\u0648\u0627\u0646 \u0648 \u0645\u062d\u062a\u0648\u0627 \u0648 \u0647\u0645\u0686\u0646\u06cc\u0646 \u0634\u0646\u0627\u0633\u0647 \u06a9\u0627\u0631\u0628\u0631 \u062f\u0627\u0631\u06cc\u0645. \u0633\u067e\u0633 \u0645\u0627 \u06cc\u06a9 \u0648\u0636\u0639\u06cc\u062a \u062f\u0627\u0631\u06cc\u0645 \u060c \u06a9\u0647 \u06cc\u06a9 php enum \u0627\u0633\u062a &#8211; \u06cc\u0627 \u067e\u06cc\u0634 \u0646\u0648\u06cc\u0633 \u06cc\u0627 \u0645\u0646\u062a\u0634\u0631 \u0634\u062f\u0647. \u0645\u0627 \u0647\u0645\u0686\u0646\u06cc\u0646 \u0645\u06cc \u062e\u0648\u0627\u0647\u06cc\u0645 \u06cc\u06a9 \u0639\u0631\u0636 \u062c\u063a\u0631\u0627\u0641\u06cc\u0627\u06cc\u06cc \u0648 \u0637\u0648\u0644 \u062c\u063a\u0631\u0627\u0641\u06cc\u0627\u06cc\u06cc \u0627\u0636\u0627\u0641\u0647 \u06a9\u0646\u06cc\u0645 \u060c \u062a\u0627 \u0628\u062a\u0648\u0627\u0646\u06cc\u0645 \u062a\u0627 \u062d\u062f \u0627\u0645\u06a9\u0627\u0646 \u0645\u062d\u0644\u06cc \u06cc\u0627 \u0628\u06cc\u0634 \u0627\u0632 \u062d\u062f \u0645\u062d\u0644\u06cc \u0628\u0627\u0634\u06cc\u0645. \u0633\u067e\u0633 Timestamp \u0645\u0646\u062a\u0634\u0631 \u0634\u062f\u0647 \u0631\u0627 \u0627\u0636\u0627\u0641\u0647 \u0645\u06cc \u06a9\u0646\u06cc\u0645 \u060c \u0628\u0647 \u0637\u0648\u0631\u06cc \u06a9\u0647 \u0648\u0642\u062a\u06cc \u062f\u0627\u0633\u062a\u0627\u0646 \u0628\u0647 \u0631\u0648\u0632 \u0645\u06cc \u0634\u0648\u062f \u062a\u0627 \u0645\u0646\u062a\u0634\u0631 \u0634\u0648\u062f &#8211; \u062a\u0627\u0631\u06cc\u062e \u0631\u0627 \u0639\u0644\u0627\u0645\u062a \u06af\u0630\u0627\u0631\u06cc \u0645\u06cc \u06a9\u0646\u06cc\u0645.<\/p>\n<p>\u062f\u0631 \u0627\u06cc\u0646 \u0645\u0631\u062d\u0644\u0647 \u060c \u0645\u0627 \u0645\u0648\u0627\u0631\u062f \u0627\u0635\u0644\u06cc \u0631\u0627 \u06a9\u0647 \u0628\u0627\u06cc\u062f \u0628\u0627 \u06a9\u0627\u0631 \u0648\u0627\u0642\u0639\u06cc API \u0634\u0631\u0648\u0639 \u06a9\u0646\u06cc\u0645 \u060c \u062f\u0627\u0631\u06cc\u0645. \u0642\u0633\u0645\u062a \u0633\u0631\u06af\u0631\u0645 \u06a9\u0646\u0646\u062f\u0647! \u0645\u0639\u0645\u0648\u0644\u0627\u064b \u0645\u0646 \u0628\u0627 \u062a\u0623\u06cc\u06cc\u062f \u0627\u0639\u062a\u0628\u0627\u0631 \u0634\u0631\u0648\u0639 \u0645\u06cc \u06a9\u0646\u0645 \u060c \u0627\u0645\u0627 \u0628\u0647 \u0622\u0646 \u0645\u06cc \u0631\u0633\u0645 &#8211; \u0647\u0645\u0627\u0646\u0637\u0648\u0631 \u06a9\u0647 \u062f\u0631 \u0622\u0646 \u062c\u0627\u06cc\u06cc \u0627\u0633\u062a \u06a9\u0647 \u0645\u06cc \u062e\u0648\u0627\u0647\u06cc\u0645 \u06a9\u062f \u0633\u0641\u0627\u0631\u0634\u06cc \u0631\u0627 \u0628\u0631\u0627\u06cc Zuplo \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u0645 \u062a\u0627 \u0645\u0637\u0645\u0626\u0646 \u0634\u0648\u06cc\u0645 \u06a9\u0647 \u0628\u0647 \u062f\u0631\u0633\u062a\u06cc \u06a9\u0627\u0631 \u0645\u06cc \u06a9\u0646\u062f.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"%D8%A7%DB%8C%D8%AC%D8%A7%D8%AF_%D9%86%D9%82%D8%A7%D8%B7_%D9%BE%D8%A7%DB%8C%D8%A7%D9%86%DB%8C_API\"><\/span>\n<p>  \u0627\u06cc\u062c\u0627\u062f \u0646\u0642\u0627\u0637 \u067e\u0627\u06cc\u0627\u0646\u06cc API<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u0645\u0646 \u062a\u0645\u0627\u06cc\u0644 \u062f\u0627\u0631\u0645 \u06a9\u0647 \u0645\u0633\u06cc\u0631\u0647\u0627\u06cc\u0645 \u0631\u0627 \u062f\u0631 \u067e\u0648\u0634\u0647 \u0647\u0627\u06cc \u0627\u0635\u0644\u06cc \u0633\u0627\u0632\u0645\u0627\u0646\u062f\u0647\u06cc \u06a9\u0646\u0645 <code>routes<\/code> \u062f\u0627\u06cc\u0631\u06a9\u062a\u0648\u0631\u06cc \u060c \u0647\u0645\u0627\u0646\u0637\u0648\u0631 \u06a9\u0647 \u0628\u0647 \u0645\u0646 \u0627\u0645\u06a9\u0627\u0646 \u0645\u06cc \u062f\u0647\u062f \u0647\u0646\u06af\u0627\u0645 \u0627\u0633\u06a9\u0646 \u067e\u0631\u0648\u0646\u062f\u0647 \u0647\u0627 \u060c \u0628\u0627\u0631 \u0634\u0646\u0627\u062e\u062a\u06cc \u0631\u0627 \u06a9\u0627\u0647\u0634 \u062f\u0647\u0645. \u0628\u0646\u0627\u0628\u0631\u0627\u06cc\u0646 \u067e\u0631\u0648\u0646\u062f\u0647 \u0632\u06cc\u0631 \u0631\u0627 \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u062f:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight shell\"><code><span class=\"nb\">touch <\/span>routes\/api\/routes.php routes\/console\/routes.php\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>\u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0631\u0627 \u0648\u0627\u0631\u062f \u06a9\u0646\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 \u0642\u0635\u062f \u062f\u0627\u0631\u06cc\u0645 \u0631\u0648\u06cc <code>routes\/api\/routes.php<\/code> \u067e\u0631\u0648\u0646\u062f\u0647 \u060c \u0632\u06cc\u0631\u0627 \u0645\u0627 \u062f\u0631 \u062d\u0627\u0644 \u062d\u0627\u0636\u0631 \u0646\u06af\u0631\u0627\u0646 \u0628\u0631\u0646\u0627\u0645\u0647 \u0631\u06cc\u0632\u06cc \u0641\u0631\u0645\u0627\u0646 \u06a9\u0646\u0633\u0648\u0644 \u0646\u06cc\u0633\u062a\u06cc\u0645. \u0627\u06cc\u0646 \u067e\u0631\u0648\u0646\u062f\u0647 \u0646\u0642\u0637\u0647 \u0648\u0631\u0648\u062f \u0628\u0647 API \u0645\u0627 \u0627\u0633\u062a \u060c \u06a9\u0647 \u062f\u0631 \u0622\u0646 \u0647\u0645\u0647 \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u0647\u0627 \u062a\u0639\u0631\u06cc\u0641 \u0645\u06cc \u0634\u0648\u0646\u062f. \u0628\u06cc\u0627\u06cc\u06cc\u062f \u0646\u06af\u0627\u0647\u06cc \u0628\u06cc\u0646\u062f\u0627\u0632\u06cc\u0645.<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight php\"><code><span class=\"c1\">\/\/ routes\/api\/routes.php<\/span>\n<span class=\"kn\">use<\/span> <span class=\"nc\">Illuminate\\Support\\Facades\\Route<\/span><span class=\"p\">;<\/span>\n\n<span class=\"nc\">Route<\/span><span class=\"o\">::<\/span><span class=\"nf\">prefix<\/span><span class=\"p\">(<\/span><span class=\"s1\">'stories'<\/span><span class=\"p\">)<\/span><span class=\"o\">-&gt;<\/span><span class=\"k\">as<\/span><span class=\"p\">(<\/span><span class=\"s1\">'stories:'<\/span><span class=\"p\">)<\/span><span class=\"o\">-&gt;<\/span><span class=\"nf\">group<\/span><span class=\"p\">(<\/span><span class=\"k\">static<\/span> <span class=\"k\">function<\/span> <span class=\"p\">():<\/span> <span class=\"kt\">void<\/span> <span class=\"p\">{<\/span>\n    <span class=\"nc\">Route<\/span><span class=\"o\">::<\/span><span class=\"nf\">post<\/span><span class=\"p\">(<\/span><span class=\"s1\">\"https:\/\/dev.to\/\"<\/span><span class=\"p\">,)<\/span><span class=\"o\">-&gt;<\/span><span class=\"nf\">name<\/span><span class=\"p\">(<\/span><span class=\"s1\">'create'<\/span><span class=\"p\">);<\/span>\n    <span class=\"nc\">Route<\/span><span class=\"o\">::<\/span><span class=\"nf\">get<\/span><span class=\"p\">(<\/span><span class=\"s1\">'{story}'<\/span><span class=\"p\">,)<\/span><span class=\"o\">-&gt;<\/span><span class=\"nf\">name<\/span><span class=\"p\">(<\/span><span class=\"s1\">'read'<\/span><span class=\"p\">);<\/span>\n    <span class=\"nc\">Route<\/span><span class=\"o\">::<\/span><span class=\"nf\">patch<\/span><span class=\"p\">(<\/span><span class=\"s1\">'{story}'<\/span><span class=\"p\">,)<\/span><span class=\"o\">-&gt;<\/span><span class=\"nf\">name<\/span><span class=\"p\">(<\/span><span class=\"s1\">'update'<\/span><span class=\"p\">);<\/span>\n    <span class=\"nc\">Route<\/span><span class=\"o\">::<\/span><span class=\"nb\">delete<\/span><span class=\"p\">(<\/span><span class=\"s1\">'{story}'<\/span><span class=\"p\">,)<\/span><span class=\"o\">-&gt;<\/span><span class=\"nf\">name<\/span><span class=\"p\">(<\/span><span class=\"s1\">'delete'<\/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>\u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0631\u0627 \u0648\u0627\u0631\u062f \u06a9\u0646\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 \u0628\u0627 \u067e\u06cc\u0634\u0648\u0646\u062f \u0634\u0631\u0648\u0639 \u0645\u06cc \u06a9\u0646\u06cc\u0645 <code>stories<\/code> \u0648 \u0646\u0627\u0645 \u06af\u0631\u0648\u0647\u06cc \u0627\u0632 <code>stories:*<\/code> \u0628\u0647 \u0637\u0648\u0631\u06cc \u06a9\u0647 \u062f\u0631 \u0635\u0648\u0631\u062a \u0646\u06cc\u0627\u0632 \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u0645 \u0628\u0639\u062f\u0627\u064b \u0628\u0647 \u062f\u0627\u0633\u062a\u0627\u0646\u0647\u0627 \u0645\u0631\u0627\u062c\u0639\u0647 \u06a9\u0646\u06cc\u0645 \u0648 \u0628\u0647 \u0622\u0646\u0647\u0627 \u067e\u06cc\u0648\u0646\u062f \u062f\u0647\u06cc\u0645. \u0645\u062a\u0648\u062c\u0647 \u062e\u0648\u0627\u0647\u06cc\u062f \u0634\u062f \u06a9\u0647 \u0645\u0646 \u0647\u0646\u0648\u0632 \u0647\u06cc\u0686 \u0627\u0642\u062f\u0627\u0645\u06cc \u0631\u0627 \u062f\u0631 \u0645\u0633\u06cc\u0631\u0647\u0627 \u062f\u0631\u062c \u0646\u06a9\u0631\u062f\u0647 \u0627\u0645 &#8211; \u0627\u06cc\u0646 \u0686\u06cc\u0632\u06cc \u0627\u0633\u062a \u06a9\u0647 \u0628\u0647 \u0632\u0648\u062f\u06cc \u0627\u0636\u0627\u0641\u0647 \u0645\u06cc \u06a9\u0646\u0645. \u0627\u0645\u0627 \u0627\u0648\u0644 \u060c \u0645\u0646 \u0645\u06cc \u062e\u0648\u0627\u0633\u062a\u0645 \u06cc\u06a9 \u062b\u0627\u0646\u06cc\u0647 \u0628\u0631\u0627\u06cc \u0635\u062d\u0628\u062a \u062f\u0631 \u0645\u0648\u0631\u062f \u0637\u0631\u062d \u0635\u062d\u0628\u062a \u06a9\u0646\u0645.<\/p>\n<p>\u0647\u062f\u0641 \u0627\u0632 \u0627\u06cc\u0646 API \u0627\u06cc\u0646 \u0627\u0633\u062a \u06a9\u0647 \u0628\u0647 \u06a9\u0627\u0631\u0628\u0631\u0627\u0646 \u0627\u0645\u06a9\u0627\u0646 \u0627\u0631\u0633\u0627\u0644 \u060c \u0628\u0647 \u0631\u0648\u0632\u0631\u0633\u0627\u0646\u06cc \u060c \u062e\u0648\u0627\u0646\u062f\u0646 \u0648 \u062c\u0633\u062a\u062c\u0648\u06cc \u062f\u0627\u0633\u062a\u0627\u0646 \u0647\u0627 \u0631\u0627 \u0627\u0631\u0627\u0626\u0647 \u062f\u0647\u062f. \u0645\u0627 \u0628\u0631\u0627\u06cc \u0627\u06cc\u0646 \u06a9\u0627\u0631 \u0646\u06cc\u0627\u0632\u06cc \u0628\u0647 \u06cc\u06a9 \u0639\u0645\u0644 \u0634\u0627\u062e\u0635 \u0646\u062f\u0627\u0631\u06cc\u0645. \u0628\u0646\u0627\u0628\u0631\u0627\u06cc\u0646 \u0645\u0627 API \u0631\u0627 \u0628\u0647 \u0637\u0648\u0631 \u0647\u062f\u0641\u0645\u0646\u062f \u06a9\u0648\u062a\u0627\u0647 \u0648 \u062f\u0631 \u0627\u06cc\u0646\u062c\u0627 \u0646\u06af\u0647 \u0645\u06cc \u062f\u0627\u0631\u06cc\u0645. \u06a9\u0627\u0631\u06cc \u06a9\u0647 \u0645\u0646 \u0645\u0639\u0645\u0648\u0644\u0627\u064b \u062f\u0631 \u06cc\u06a9 API \u0628\u0632\u0631\u06af\u062a\u0631 \u0627\u0646\u062c\u0627\u0645 \u0645\u06cc \u062f\u0647\u0645 \u060c \u062a\u063a\u06cc\u06cc\u0631 \u0622\u0646 \u0628\u0631\u0627\u06cc \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u067e\u0631\u0648\u0646\u062f\u0647 \u0632\u06cc\u0631 \u0627\u0633\u062a:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight php\"><code><span class=\"c1\">\/\/ routes\/api\/routes.php<\/span>\n<span class=\"kn\">use<\/span> <span class=\"nc\">Illuminate\\Support\\Facades\\Route<\/span><span class=\"p\">;<\/span>\n\n<span class=\"nc\">Route<\/span><span class=\"o\">::<\/span><span class=\"nf\">prefix<\/span><span class=\"p\">(<\/span><span class=\"s1\">'stories'<\/span><span class=\"p\">)<\/span><span class=\"o\">-&gt;<\/span><span class=\"k\">as<\/span><span class=\"p\">(<\/span><span class=\"s1\">'stories:'<\/span><span class=\"p\">)<\/span><span class=\"o\">-&gt;<\/span><span class=\"nf\">group<\/span><span class=\"p\">(<\/span><span class=\"nf\">base_path<\/span><span class=\"p\">(<\/span>\n    <span class=\"n\">path<\/span><span class=\"o\">:<\/span> <span class=\"s1\">'routes\/api\/stories.php'<\/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>\u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0631\u0627 \u0648\u0627\u0631\u062f \u06a9\u0646\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\u0646\u0627\u0628\u0631\u0627\u06cc\u0646 \u060c \u0648\u0642\u062a\u06cc \u067e\u0631\u0648\u0646\u062f\u0647 \u0627\u0635\u0644\u06cc \u0645\u0633\u06cc\u0631\u0647\u0627\u06cc API \u062e\u0648\u062f \u0631\u0627 \u0645\u06cc \u062e\u0648\u0627\u0646\u0645 \u060c \u0645\u06cc \u062a\u0648\u0627\u0646\u0645 \u0645\u0646\u0627\u0628\u0639 \u0648 \u0646\u062d\u0648\u0647 \u06af\u0631\u0648\u0647 \u0628\u0646\u062f\u06cc \u0622\u0646\u0647\u0627 \u0648 \u0647\u0631 \u0646\u0648\u0639 \u0648\u0627\u0633\u0637\u0647 \u0627\u06cc \u0631\u0627 \u0628\u0628\u06cc\u0646\u0645 \u06a9\u0647 \u0645\u0645\u06a9\u0646 \u0627\u0633\u062a \u0628\u062e\u0648\u0627\u0647\u0645 \u0628\u0639\u062f\u0627\u064b \u0628\u0647 \u0622\u0646 \u0627\u0636\u0627\u0641\u0647 \u06a9\u0646\u0645. \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u0645\u0642\u06cc\u0627\u0633 API \u0634\u0645\u0627 \u060c \u0627\u06cc\u0646 \u0646\u0648\u0639 \u0686\u06cc\u0632\u0647\u0627 \u0645\u0647\u0645 \u0645\u06cc \u0634\u0648\u0646\u062f \u060c \u0628\u0646\u0627\u0628\u0631\u0627\u06cc\u0646 \u0645\u0641\u06cc\u062f \u0627\u0633\u062a \u06a9\u0647 \u0627\u0632 \u0627\u0628\u062a\u062f\u0627 \u0628\u0647 \u0627\u06cc\u0646 \u0639\u0627\u062f\u062a \u0628\u067e\u0631\u062f\u0627\u0632\u06cc\u062f \u06a9\u0647 \u0641\u0642\u0637 API \u062e\u0648\u062f \u0631\u0627 \u0645\u0627\u0646\u0646\u062f \u0627\u06cc\u0646 \u062a\u0646\u0638\u06cc\u0645 \u06a9\u0646\u06cc\u062f.<\/p>\n<p>\u0628\u0627 \u0627\u06cc\u0646 \u062d\u0627\u0644 \u060c \u0627\u06cc\u0646 API \u0628\u0633\u06cc\u0627\u0631 \u06a9\u0648\u0686\u06a9 \u0627\u0633\u062a \u060c \u0628\u0646\u0627\u0628\u0631\u0627\u06cc\u0646 \u0645\u0627 \u0628\u0647 \u062a\u0645\u0627\u0645 \u0645\u0633\u06cc\u0631\u0647\u0627\u06cc \u062e\u0648\u062f \u06a9\u0647 \u062f\u0631 \u0642\u0633\u0645\u062a \u0627\u0635\u0644\u06cc \u062a\u0639\u0631\u06cc\u0641 \u0645\u06cc \u0634\u0648\u0646\u062f \u060c \u062e\u0648\u0627\u0647\u06cc\u0645 \u0686\u0633\u0628\u06cc\u062f <code>routes\/api\/routes.php<\/code> \u067e\u0631\u0648\u0646\u062f\u0647 \u0627\u06cc \u06a9\u0647 \u0642\u0628\u0644\u0627\u064b \u0628\u0647 \u0622\u0646 \u0646\u06af\u0627\u0647 \u06a9\u0631\u062f\u06cc\u0645 \u0645\u0646 \u0628\u0647 \u062c\u0627\u06cc \u0648\u0627\u0631\u062f \u06a9\u0631\u062f\u0646 \u0647\u0631 \u06a9\u0644\u0627\u0633 \u0627\u06a9\u0634\u0646 \u0645\u0633\u06cc\u0631 \u0641\u0631\u062f\u06cc \u060c \u062a\u0645\u0627\u06cc\u0644 \u062f\u0627\u0631\u0645 \u0641\u0636\u0627\u06cc \u0646\u0627\u0645 \u0631\u0627 \u0628\u0631\u0627\u06cc \u0645\u0646\u0628\u0639 \u062f\u0631 \u0628\u0627\u0644\u0627 \u0648\u0627\u0631\u062f \u06a9\u0646\u0645. \u0628\u06cc\u0627\u06cc\u06cc\u062f \u0646\u06af\u0627\u0647\u06cc \u0628\u06cc\u0646\u062f\u0627\u0632\u06cc\u0645:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight php\"><code><span class=\"kn\">use<\/span> <span class=\"nc\">App\\Http\\Controllers\\Stories<\/span><span class=\"p\">;<\/span>\n<span class=\"kn\">use<\/span> <span class=\"nc\">Illuminate\\Support\\Facades\\Route<\/span><span class=\"p\">;<\/span>\n\n<span class=\"nc\">Route<\/span><span class=\"o\">::<\/span><span class=\"nf\">prefix<\/span><span class=\"p\">(<\/span><span class=\"s1\">'stories'<\/span><span class=\"p\">)<\/span><span class=\"o\">-&gt;<\/span><span class=\"k\">as<\/span><span class=\"p\">(<\/span><span class=\"s1\">'stories:'<\/span><span class=\"p\">)<\/span><span class=\"o\">-&gt;<\/span><span class=\"nf\">group<\/span><span class=\"p\">(<\/span><span class=\"k\">static<\/span> <span class=\"k\">function<\/span> <span class=\"p\">():<\/span> <span class=\"kt\">void<\/span> <span class=\"p\">{<\/span>\n    <span class=\"nc\">Route<\/span><span class=\"o\">::<\/span><span class=\"nf\">post<\/span><span class=\"p\">(<\/span><span class=\"s1\">\"https:\/\/dev.to\/\"<\/span><span class=\"p\">,<\/span> <span class=\"nc\">Stories\\CreateController<\/span><span class=\"o\">::<\/span><span class=\"n\">class<\/span><span class=\"p\">)<\/span><span class=\"o\">-&gt;<\/span><span class=\"nf\">name<\/span><span class=\"p\">(<\/span><span class=\"s1\">'create'<\/span><span class=\"p\">);<\/span>\n    <span class=\"nc\">Route<\/span><span class=\"o\">::<\/span><span class=\"nf\">get<\/span><span class=\"p\">(<\/span><span class=\"s1\">'{story}'<\/span><span class=\"p\">,<\/span> <span class=\"nc\">Stories\\ReadController<\/span><span class=\"o\">::<\/span><span class=\"n\">class<\/span><span class=\"p\">)<\/span><span class=\"o\">-&gt;<\/span><span class=\"nf\">name<\/span><span class=\"p\">(<\/span><span class=\"s1\">'read'<\/span><span class=\"p\">);<\/span>\n    <span class=\"nc\">Route<\/span><span class=\"o\">::<\/span><span class=\"nf\">patch<\/span><span class=\"p\">(<\/span><span class=\"s1\">'{story}'<\/span><span class=\"p\">,<\/span> <span class=\"nc\">Stories\\UpdateController<\/span><span class=\"o\">::<\/span><span class=\"n\">class<\/span><span class=\"p\">)<\/span><span class=\"o\">-&gt;<\/span><span class=\"nf\">name<\/span><span class=\"p\">(<\/span><span class=\"s1\">'update'<\/span><span class=\"p\">);<\/span>\n    <span class=\"nc\">Route<\/span><span class=\"o\">::<\/span><span class=\"nb\">delete<\/span><span class=\"p\">(<\/span><span class=\"s1\">'{story}'<\/span><span class=\"p\">,<\/span> <span class=\"nc\">Stories\\DeleteController<\/span><span class=\"o\">::<\/span><span class=\"n\">class<\/span><span class=\"p\">)<\/span><span class=\"o\">-&gt;<\/span><span class=\"nf\">name<\/span><span class=\"p\">(<\/span><span class=\"s1\">'delete'<\/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>\u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0631\u0627 \u0648\u0627\u0631\u062f \u06a9\u0646\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\u06a9\u0646\u0648\u0646 \u0645\u0633\u06cc\u0631\u0647\u0627\u06cc \u062e\u0648\u062f \u0631\u0627 \u0628\u0647 \u06a9\u0646\u062a\u0631\u0644 \u06a9\u0646\u0646\u062f\u0647 \u0647\u0627 \u067e\u06cc\u0648\u0646\u062f \u062f\u0627\u062f\u0647 \u0627\u06cc\u0645 \u0648 \u0627\u06cc\u0646 \u0647\u0645\u0647 \u062a\u0648\u0633\u0637 \u0686\u0627\u0631\u0686\u0648\u0628 \u0628\u0631\u0627\u06cc \u0645\u0627 \u0628\u0627\u0631\u06af\u0630\u0627\u0631\u06cc \u0645\u06cc \u0634\u0648\u062f. \u0628\u06cc\u0627\u06cc\u06cc\u062f \u0628\u0647 \u06a9\u0646\u062a\u0631\u0644 \u06a9\u0646\u0646\u062f\u0647 \u0627\u0648\u0644\u06cc\u0647 \u060c \u06a9\u0646\u062a\u0631\u0644\u0631 Create \u0646\u06af\u0627\u0647 \u06a9\u0646\u06cc\u0645. \u0645\u0648\u0631\u062f\u06cc \u06a9\u0647 \u0628\u0647 \u06a9\u0627\u0631\u0628\u0631\u0627\u0646 \u0627\u0645\u06a9\u0627\u0646 \u0645\u06cc \u062f\u0647\u062f \u062f\u0631 \u0648\u0627\u0642\u0639 \u062f\u0627\u0633\u062a\u0627\u0646 \u0647\u0627 \u0631\u0627 \u0628\u0633\u0627\u0632\u0646\u062f. \u0628\u0631\u0627\u06cc \u0627\u0646\u062c\u0627\u0645 \u0627\u06cc\u0646 \u06a9\u0627\u0631 \u060c \u0645\u0627 \u0645\u06cc \u062e\u0648\u0627\u0647\u06cc\u0645 \u0648\u0631\u0648\u062f\u06cc \u06a9\u0627\u0631\u0628\u0631\u0627\u0646 \u0631\u0627 \u062a\u0623\u06cc\u06cc\u062f \u06a9\u0646\u06cc\u0645. \u0628\u0646\u0627\u0628\u0631\u0627\u06cc\u0646 \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u0645 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u062e\u0637 \u0641\u0631\u0645\u0627\u0646 artisan \u06cc\u06a9 \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u0641\u0631\u0645 \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u0645:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight shell\"><code>php artisan make:request Stories\/CreateRequest\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>\u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0631\u0627 \u0648\u0627\u0631\u062f \u06a9\u0646\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<h3><span class=\"ez-toc-section\" id=\"%D8%A7%D8%B9%D8%AA%D8%A8%D8%A7%D8%B1_%D8%B3%D9%86%D8%AC%DB%8C_%D8%AF%D8%B1%D8%AE%D9%88%D8%A7%D8%B3%D8%AA_%D9%84%D8%A7%D8%B1%D8%A7%D9%88%D9%84\"><\/span>\n<p>  \u0627\u0639\u062a\u0628\u0627\u0631 \u0633\u0646\u062c\u06cc \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u0644\u0627\u0631\u0627\u0648\u0644<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>\u062f\u0631\u062e\u0648\u0627\u0633\u062a \u0641\u0631\u0645 \u0645\u0627 \u0645\u0633\u0626\u0648\u0644\u06cc\u062a \u0627\u0639\u062a\u0628\u0627\u0631 \u0633\u0646\u062c\u06cc \u0628\u0627\u0631 \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u062f\u0631\u06cc\u0627\u0641\u062a\u06cc \u0631\u0627 \u0628\u0631 \u0639\u0647\u062f\u0647 \u062f\u0627\u0631\u062f \u0648 \u0627\u0637\u0645\u06cc\u0646\u0627\u0646 \u062d\u0627\u0635\u0644 \u0645\u06cc \u06a9\u0646\u062f \u06a9\u0647 \u0628\u0627 \u0645\u062c\u0645\u0648\u0639\u0647 \u062e\u0627\u0635\u06cc \u0627\u0632 \u0642\u0648\u0627\u0646\u06cc\u0646 \u0645\u0637\u0627\u0628\u0642\u062a \u062f\u0627\u0631\u062f. \u062f\u0644\u06cc\u0644 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u0641\u0631\u0645 \u0628\u0631\u0627\u06cc \u0627\u06cc\u0646 \u0627\u0645\u0631 \u060c \u0628\u0647 \u0627\u06cc\u0646 \u062f\u0644\u06cc\u0644 \u0627\u0633\u062a \u06a9\u0647 \u0627\u0632 \u0622\u0646\u06a9\u0647 \u0627\u0632 \u0638\u0631\u0641 DI \u0628\u0631\u0637\u0631\u0641 \u0634\u0648\u062f &#8211; \u0642\u0628\u0644 \u0627\u0632 \u0641\u0631\u0627\u062e\u0648\u0627\u0646\u06cc \u0639\u0645\u0644 \u06a9\u0646\u062a\u0631\u0644\u0631 \u060c \u0628\u0627\u0631 \u0631\u0627 \u062a\u0623\u06cc\u06cc\u062f \u0645\u06cc \u06a9\u0646\u062f.<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight php\"><code><span class=\"c1\">\/\/ app\/Http\/Requests\/Stories\/CreateRequest.php<\/span>\n<span class=\"k\">final<\/span> <span class=\"kd\">class<\/span> <span class=\"nc\">CreateRequest<\/span> <span class=\"kd\">extends<\/span> <span class=\"nc\">FormRequest<\/span>\n<span class=\"p\">{<\/span>\n    <span class=\"k\">public<\/span> <span class=\"k\">function<\/span> <span class=\"n\">rules<\/span><span class=\"p\">():<\/span> <span class=\"kt\">array<\/span>\n    <span class=\"p\">{<\/span>\n        <span class=\"k\">return<\/span> <span class=\"p\">[<\/span>\n            <span class=\"s1\">'title'<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"p\">[<\/span><span class=\"s1\">'required'<\/span><span class=\"p\">,<\/span> <span class=\"s1\">'string'<\/span><span class=\"p\">,<\/span> <span class=\"s1\">'min:2'<\/span><span class=\"p\">,<\/span> <span class=\"s1\">'max:255'<\/span><span class=\"p\">],<\/span>\n            <span class=\"s1\">'content'<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"p\">[<\/span><span class=\"s1\">'nullable'<\/span><span class=\"p\">,<\/span> <span class=\"s1\">'string'<\/span><span class=\"p\">],<\/span>\n            <span class=\"s1\">'latitude'<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"p\">[<\/span><span class=\"s1\">'required'<\/span><span class=\"p\">,<\/span> <span class=\"s1\">'numeric'<\/span><span class=\"p\">,<\/span> <span class=\"s1\">'min:-90'<\/span><span class=\"p\">,<\/span> <span class=\"s1\">'max:90'<\/span><span class=\"p\">],<\/span>\n            <span class=\"s1\">'longitude'<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"p\">[<\/span><span class=\"s1\">'required'<\/span><span class=\"p\">,<\/span> <span class=\"s1\">'numeric'<\/span><span class=\"p\">,<\/span> <span class=\"s1\">'min:-180'<\/span><span class=\"p\">,<\/span> <span class=\"s1\">'max:180'<\/span><span class=\"p\">],<\/span>\n        <span class=\"p\">];<\/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>\u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0631\u0627 \u0648\u0627\u0631\u062f \u06a9\u0646\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>\u0642\u0648\u0627\u0646\u06cc\u0646 \u0627\u0639\u062a\u0628\u0627\u0631 \u0633\u0646\u062c\u06cc \u0644\u0627\u0631\u0627\u0648\u0644 \u0648\u0627\u0642\u0639\u0627\u064b \u0645\u0641\u06cc\u062f \u0647\u0633\u062a\u0646\u062f \u0648 \u0628\u062e\u0634\u06cc \u0627\u0632 \u062f\u0644\u06cc\u0644 \u0633\u0627\u062e\u062a \u0644\u0627\u0631\u0627\u0648\u0644 \u0628\u0627 \u0622\u0646 \u0628\u0633\u06cc\u0627\u0631 \u0622\u0633\u0627\u0646 \u0627\u0633\u062a. \u06a9\u0627\u0631\u06cc \u06a9\u0647 \u0645\u0646 \u062a\u0645\u0627\u06cc\u0644 \u0628\u0647 \u0627\u0646\u062c\u0627\u0645 \u0622\u0646 \u062f\u0627\u0631\u0645 \u060c \u0627\u06cc\u062c\u0627\u062f \u06cc\u06a9 \u0628\u0627\u0631 \u0628\u0627\u0631\u06af\u06cc\u0631\u06cc DTO \u0627\u0633\u062a. \u0627\u06cc\u0646 \u06cc\u06a9 \u062a\u0644\u0627\u0634 \u0628\u06cc\u0634 \u0627\u0632 \u062d\u062f \u0645\u0647\u0646\u062f\u0633\u06cc \u0627\u0633\u062a \u060c \u0627\u0645\u0627 \u0627\u06cc\u0646 \u0628\u062f\u0627\u0646 \u0645\u0639\u0646\u06cc \u0627\u0633\u062a \u06a9\u0647 \u0647\u0646\u06af\u0627\u0645 \u0628\u0631\u062e\u0648\u0631\u062f \u0628\u0627 \u062f\u0627\u062f\u0647 \u0647\u0627\u06cc \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u060c \u0645\u0646 \u0628\u0647 \u062c\u0627\u06cc \u06cc\u06a9 \u0622\u0631\u0627\u06cc\u0647 PHP \u0627\u0646\u0639\u0637\u0627\u0641 \u067e\u0630\u06cc\u0631 \u060c \u0628\u0627 \u06cc\u06a9 \u0634\u06cc \u0645\u062a\u0646\u06cc \u0648 \u062a\u0627\u06cc\u067e \u0634\u062f\u0647 \u0628\u0631\u062e\u0648\u0631\u062f \u0645\u06cc \u06a9\u0646\u0645.<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight php\"><code><span class=\"c1\">\/\/ app\/Http\/Payloads\/Stories\/CreatePayload.php<\/span>\n<span class=\"k\">final<\/span> <span class=\"k\">readonly<\/span> <span class=\"kd\">class<\/span> <span class=\"nc\">CreatePayload<\/span>\n<span class=\"p\">{<\/span>\n    <span class=\"k\">public<\/span> <span class=\"k\">function<\/span> <span class=\"n\">__construct<\/span><span class=\"p\">(<\/span>\n        <span class=\"k\">public<\/span> <span class=\"kt\">string<\/span> <span class=\"nv\">$title<\/span><span class=\"p\">,<\/span>\n        <span class=\"k\">public<\/span> <span class=\"kt\">null<\/span><span class=\"o\">|<\/span><span class=\"n\">string<\/span> <span class=\"nv\">$content<\/span><span class=\"p\">,<\/span>\n        <span class=\"k\">public<\/span> <span class=\"kt\">float<\/span> <span class=\"nv\">$latitude<\/span><span class=\"p\">,<\/span>\n        <span class=\"k\">public<\/span> <span class=\"kt\">float<\/span> <span class=\"nv\">$longitude<\/span><span class=\"p\">,<\/span>\n    <span class=\"p\">)<\/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>\u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0631\u0627 \u0648\u0627\u0631\u062f \u06a9\u0646\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\u06cc\u0646 \u06cc\u06a9 \u0634\u06cc\u0621 \u0633\u0627\u062e\u062a\u0627\u0631\u06cc \u0628\u0647 \u0645\u0627 \u0645\u06cc \u062f\u0647\u062f \u06a9\u0647 \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u0645 \u0627\u0632 \u0628\u0631\u0646\u0627\u0645\u0647 \u062e\u0648\u062f \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u0645 \u06a9\u0647 \u0646\u0647 \u062a\u0646\u0647\u0627 \u0632\u0645\u06cc\u0646\u0647 \u0622\u0646 \u0631\u0627 \u062d\u0641\u0638 \u0645\u06cc \u06a9\u0646\u062f \u0628\u0644\u06a9\u0647 \u0646\u0648\u0639 \u0627\u06cc\u0645\u0646\u06cc \u0645\u0648\u0631\u062f \u0646\u06cc\u0627\u0632 \u062e\u0648\u062f \u0631\u0627 \u0646\u06cc\u0632 \u062f\u0631 \u0628\u0631\u0646\u0627\u0645\u0647 \u062e\u0648\u062f \u062d\u0641\u0638 \u0645\u06cc \u06a9\u0646\u062f. \u0628\u06cc\u0627\u06cc\u06cc\u062f \u0631\u0648\u0634\u06cc \u0631\u0627 \u0628\u0647 \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u0641\u0631\u0645 \u062e\u0648\u062f \u0627\u0636\u0627\u0641\u0647 \u06a9\u0646\u06cc\u0645 \u060c \u06a9\u0647 \u0627\u06cc\u0646 \u0627\u0645\u0631 \u0631\u0627 \u0628\u0631\u0627\u06cc \u0645\u0627 \u0627\u06cc\u062c\u0627\u062f \u0645\u06cc \u06a9\u0646\u062f.<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight php\"><code><span class=\"c1\">\/\/ app\/Http\/Requests\/Stories\/CreateRequest.php<\/span>\n<span class=\"k\">final<\/span> <span class=\"kd\">class<\/span> <span class=\"nc\">CreateRequest<\/span> <span class=\"kd\">extends<\/span> <span class=\"nc\">FormRequest<\/span>\n<span class=\"p\">{<\/span>\n    <span class=\"k\">public<\/span> <span class=\"k\">function<\/span> <span class=\"n\">rules<\/span><span class=\"p\">():<\/span> <span class=\"kt\">array<\/span>\n    <span class=\"p\">{<\/span>\n        <span class=\"k\">return<\/span> <span class=\"p\">[<\/span>\n            <span class=\"s1\">'title'<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"p\">[<\/span><span class=\"s1\">'required'<\/span><span class=\"p\">,<\/span> <span class=\"s1\">'string'<\/span><span class=\"p\">,<\/span> <span class=\"s1\">'min:2'<\/span><span class=\"p\">,<\/span> <span class=\"s1\">'max:255'<\/span><span class=\"p\">],<\/span>\n            <span class=\"s1\">'content'<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"p\">[<\/span><span class=\"s1\">'nullable'<\/span><span class=\"p\">,<\/span> <span class=\"s1\">'string'<\/span><span class=\"p\">],<\/span>\n            <span class=\"s1\">'latitude'<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"p\">[<\/span><span class=\"s1\">'required'<\/span><span class=\"p\">,<\/span> <span class=\"s1\">'numeric'<\/span><span class=\"p\">,<\/span> <span class=\"s1\">'min:-90'<\/span><span class=\"p\">,<\/span> <span class=\"s1\">'max:90'<\/span><span class=\"p\">],<\/span>\n            <span class=\"s1\">'longitude'<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"p\">[<\/span><span class=\"s1\">'required'<\/span><span class=\"p\">,<\/span> <span class=\"s1\">'numeric'<\/span><span class=\"p\">,<\/span> <span class=\"s1\">'min:-180'<\/span><span class=\"p\">,<\/span> <span class=\"s1\">'max:180'<\/span><span class=\"p\">],<\/span>\n        <span class=\"p\">];<\/span>\n    <span class=\"p\">}<\/span>\n\n    <span class=\"k\">public<\/span> <span class=\"k\">function<\/span> <span class=\"n\">payload<\/span><span class=\"p\">():<\/span> <span class=\"kt\">CreatePayload<\/span>\n    <span class=\"p\">{<\/span>\n        <span class=\"k\">return<\/span> <span class=\"k\">new<\/span> <span class=\"nc\">CreatePayload<\/span><span class=\"p\">(<\/span>\n            <span class=\"n\">title<\/span><span class=\"o\">:<\/span> <span class=\"nv\">$this<\/span><span class=\"o\">-&gt;<\/span><span class=\"nf\">string<\/span><span class=\"p\">(<\/span><span class=\"s1\">'title'<\/span><span class=\"p\">)<\/span><span class=\"o\">-&gt;<\/span><span class=\"nf\">toString<\/span><span class=\"p\">(),<\/span>\n            <span class=\"n\">content<\/span><span class=\"o\">:<\/span> <span class=\"nv\">$this<\/span><span class=\"o\">-&gt;<\/span><span class=\"nf\">has<\/span><span class=\"p\">(<\/span><span class=\"s1\">'content'<\/span><span class=\"p\">)<\/span>\n                <span class=\"o\">?<\/span> <span class=\"nv\">$this<\/span><span class=\"o\">-&gt;<\/span><span class=\"nf\">string<\/span><span class=\"p\">(<\/span><span class=\"s1\">'content'<\/span><span class=\"p\">)<\/span><span class=\"o\">-&gt;<\/span><span class=\"nf\">toString<\/span><span class=\"p\">()<\/span>\n                <span class=\"o\">:<\/span> <span class=\"kc\">null<\/span><span class=\"p\">,<\/span>\n            <span class=\"n\">latitude<\/span><span class=\"o\">:<\/span> <span class=\"nv\">$this<\/span><span class=\"o\">-&gt;<\/span><span class=\"nf\">float<\/span><span class=\"p\">(<\/span><span class=\"s1\">'latitude'<\/span><span class=\"p\">,<\/span> <span class=\"kc\">null<\/span><span class=\"p\">),<\/span>\n            <span class=\"n\">longitude<\/span><span class=\"o\">:<\/span> <span class=\"nv\">$this<\/span><span class=\"o\">-&gt;<\/span><span class=\"nf\">float<\/span><span class=\"p\">(<\/span><span class=\"s1\">'longitude'<\/span><span class=\"p\">,<\/span> <span class=\"kc\">null<\/span><span class=\"p\">),<\/span>\n        <span class=\"p\">);<\/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>\u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0631\u0627 \u0648\u0627\u0631\u062f \u06a9\u0646\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>\u0647\u0646\u06af\u0627\u0645\u06cc \u06a9\u0647 \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u0641\u0631\u0645 \u0645\u0627 \u0627\u0632 \u0638\u0631\u0641 \u062d\u0644 \u0634\u062f \u0648 \u0628\u0647 \u06a9\u0646\u062a\u0631\u0644\u0631 \u062a\u0632\u0631\u06cc\u0642 \u0634\u062f &#8211; \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u0645 \u0628\u0627 \u0622\u0646\u0647\u0627 \u062a\u0645\u0627\u0633 \u0628\u06af\u06cc\u0631\u06cc\u0645 <code>$request-&gt;payload()<\/code> \u0631\u0648\u0634 \u0627\u06cc\u062c\u0627\u062f \u06cc\u06a9 \u0646\u0645\u0648\u0646\u0647 \u062c\u062f\u06cc\u062f \u0627\u0632 <code>CreatePayload<\/code>\u0628\u0634\u0631<\/p>\n<h3><span class=\"ez-toc-section\" id=\"%D8%A7%DB%8C%D8%AC%D8%A7%D8%AF_%DB%8C%DA%A9_%DA%A9%D8%A7%D8%B1_%D8%B5%D9%81\"><\/span>\n<p>  \u0627\u06cc\u062c\u0627\u062f \u06cc\u06a9 \u06a9\u0627\u0631 \u0635\u0641<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>\u0642\u0628\u0644 \u0627\u0632 \u0627\u062f\u0627\u0645\u0647 \u06a9\u0627\u0631 \u060c \u0628\u06cc\u0627\u06cc\u06cc\u062f \u0628\u0647 \u0637\u0648\u0631 \u06a9\u0644\u06cc \u062f\u0631 \u0645\u0648\u0631\u062f API \u0647\u0627 \u0635\u062d\u0628\u062a \u06a9\u0646\u06cc\u0645. \u0647\u0646\u06af\u0627\u0645 \u06a9\u0627\u0631 \u0628\u0627 API \u060c \u0627\u0646\u062a\u0638\u0627\u0631 \u062f\u0627\u0631\u06cc\u0645 \u06a9\u0647 \u0627\u06cc\u0646 \u0627\u0645\u0631 \u0633\u0627\u0632\u06af\u0627\u0631 \u0648 \u0633\u0631\u06cc\u0639 \u0628\u0627\u0634\u062f. \u0647\u0646\u06af\u0627\u0645 \u0627\u06cc\u062c\u0627\u062f \u06cc\u06a9 \u0645\u0646\u0628\u0639 \u062c\u062f\u06cc\u062f \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u06cc\u06a9 \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u067e\u0633\u062a \u060c \u0645\u0627 \u0647\u0645\u06cc\u0634\u0647 \u0646\u06cc\u0627\u0632\u06cc \u0628\u0647 \u0628\u0627\u0632\u06af\u0634\u062a \u0645\u0646\u0627\u0628\u0639 \u0646\u062f\u0627\u0631\u06cc\u0645. \u0628\u0633\u06cc\u0627\u0631\u06cc \u0627\u0632 \u0632\u0645\u0627\u0646 \u0647\u0627 \u060c \u0645\u0634\u062a\u0631\u06cc \u06a9\u0647 \u0628\u0627 API \u0627\u062f\u063a\u0627\u0645 \u0645\u06cc \u0634\u0648\u062f \u060c \u06cc\u06a9 \u0631\u06a9\u0648\u0631\u062f \u0645\u062d\u0644\u06cc \u0631\u0627 \u0628\u0647 \u062f\u0648\u0644\u062a \u0645\u062d\u0644\u06cc \u062e\u0648\u062f \u0633\u0648\u0642 \u0645\u06cc \u062f\u0647\u062f \u06a9\u0647 \u0648\u0627\u0642\u0639\u0627\u064b \u0646\u06cc\u0627\u0632\u06cc \u0628\u0647 \u0686\u06cc\u0632\u06cc \u0627\u0632 API \u0646\u062f\u0627\u0631\u062f. \u0628\u0646\u0627\u0628\u0631\u0627\u06cc\u0646 \u0645\u0627 \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u0645 \u0627\u06cc\u062c\u0627\u062f \u0645\u0646\u0628\u0639 \u0631\u0627 \u0628\u0647 \u06cc\u06a9 \u06a9\u0627\u0631 \u067e\u0633 \u0632\u0645\u06cc\u0646\u0647 \u0633\u0648\u0642 \u062f\u0647\u06cc\u0645 \u0648 \u0628\u0647 API \u0645\u0627 \u0627\u062c\u0627\u0632\u0647 \u0645\u06cc \u062f\u0647\u06cc\u0645 \u06a9\u0647 \u062f\u0631 \u067e\u0627\u0633\u062e \u0633\u0631\u06cc\u0639\u062a\u0631 \u0628\u0627\u0634\u062f.<\/p>\n<p>\u0628\u06cc\u0627\u06cc\u06cc\u062f \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u06a9\u0646\u0633\u0648\u0644 \u0635\u0646\u0639\u062a\u06af\u0631 \u062e\u0648\u062f \u06cc\u06a9 \u06a9\u0627\u0631 \u0635\u0641 \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u0645 \u06a9\u0647 \u0628\u062a\u0648\u0627\u0646\u06cc\u0645 \u0627\u0632 \u06a9\u0646\u062a\u0631\u0644\u0631 \u062e\u0648\u062f \u0627\u0639\u0632\u0627\u0645 \u0634\u0648\u06cc\u0645.<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight shell\"><code>php artisan make:job CreateNewStory\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>\u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0631\u0627 \u0648\u0627\u0631\u062f \u06a9\u0646\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>\u0647\u062f\u0641 \u0627\u0632 \u0627\u06cc\u0646 \u06a9\u0627\u0631 \u060c \u06af\u0631\u0641\u062a\u0646 \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u0628\u0627\u0631 \u0648 \u0634\u0646\u0627\u0633\u0647 \u06a9\u0627\u0631\u0628\u0631 \u0648 \u0630\u062e\u06cc\u0631\u0647 \u06cc\u06a9 \u062f\u0627\u0633\u062a\u0627\u0646 \u062c\u062f\u06cc\u062f \u062f\u0631 \u067e\u0627\u06cc\u06af\u0627\u0647 \u062f\u0627\u062f\u0647 \u0627\u0633\u062a.<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight php\"><code><span class=\"k\">final<\/span> <span class=\"kd\">class<\/span> <span class=\"nc\">CreateNewStory<\/span> <span class=\"kd\">implements<\/span> <span class=\"nc\">ShouldQueue<\/span>\n<span class=\"p\">{<\/span>\n    <span class=\"kn\">use<\/span> <span class=\"nc\">Queueable<\/span><span class=\"p\">;<\/span>\n\n    <span class=\"k\">public<\/span> <span class=\"k\">function<\/span> <span class=\"n\">__construct<\/span><span class=\"p\">(<\/span>\n        <span class=\"k\">public<\/span> <span class=\"kt\">string<\/span> <span class=\"nv\">$user<\/span><span class=\"p\">,<\/span>\n        <span class=\"k\">public<\/span> <span class=\"k\">readonly<\/span> <span class=\"kt\">CreatePayload<\/span> <span class=\"nv\">$payload<\/span><span class=\"p\">,<\/span>\n    <span class=\"p\">)<\/span> <span class=\"p\">{}<\/span>\n\n    <span class=\"k\">public<\/span> <span class=\"k\">function<\/span> <span class=\"n\">handle<\/span><span class=\"p\">(<\/span><span class=\"kt\">DatabaseManager<\/span> <span class=\"nv\">$database<\/span><span class=\"p\">):<\/span> <span class=\"kt\">void<\/span>\n    <span class=\"p\">{<\/span>\n        <span class=\"nv\">$database<\/span><span class=\"o\">-&gt;<\/span><span class=\"nf\">transaction<\/span><span class=\"p\">(<\/span>\n            <span class=\"n\">callback<\/span><span class=\"o\">:<\/span> <span class=\"k\">fn<\/span><span class=\"p\">()<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"nc\">Story<\/span><span class=\"o\">::<\/span><span class=\"nf\">query<\/span><span class=\"p\">()<\/span><span class=\"o\">-&gt;<\/span><span class=\"nf\">create<\/span><span class=\"p\">(<\/span>\n                <span class=\"n\">attributes<\/span><span class=\"o\">:<\/span> <span class=\"nb\">array_merge<\/span><span class=\"p\">(<\/span>\n                    <span class=\"nv\">$this<\/span><span class=\"o\">-&gt;<\/span><span class=\"n\">payload<\/span><span class=\"o\">-&gt;<\/span><span class=\"nf\">toArray<\/span><span class=\"p\">(),<\/span>\n                    <span class=\"p\">[<\/span><span class=\"s1\">'user_id'<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"nv\">$this<\/span><span class=\"o\">-&gt;<\/span><span class=\"n\">user<\/span><span class=\"p\">],<\/span>\n                <span class=\"p\">),<\/span>\n            <span class=\"p\">),<\/span>\n            <span class=\"n\">attempts<\/span><span class=\"o\">:<\/span> <span class=\"mi\">3<\/span><span class=\"p\">,<\/span>\n        <span class=\"p\">);<\/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>\u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0631\u0627 \u0648\u0627\u0631\u062f \u06a9\u0646\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 \u0631\u0648\u0634 \u062f\u0633\u062a\u0647 \u0645\u0627 \u062f\u0631 \u0627\u06cc\u0646\u062c\u0627 \u0645\u06cc \u062a\u0648\u0627\u0646 \u0628\u0631\u0627\u06cc \u062a\u0632\u0631\u06cc\u0642 \u0648\u0627\u0628\u0633\u062a\u06af\u06cc \u0627\u0632 \u0638\u0631\u0641 \u0645\u0627 \u0628\u0647 \u062c\u0627\u06cc \u0633\u0627\u0632\u0646\u062f\u0647 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0631\u062f. \u0627\u06cc\u0646 \u0628\u0647 \u0645\u0627 \u0627\u0645\u06a9\u0627\u0646 \u062a\u0632\u0631\u06cc\u0642 <code>DatabaseManager<\/code> \u0628\u0647 \u062c\u0627\u06cc \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 <code>DB<\/code> \u0646\u0645\u0627\u06cc \u0633\u067e\u0633 \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u0645 \u0645\u0639\u0627\u0645\u0644\u0647 \u062e\u0648\u062f \u0631\u0627 \u0634\u0631\u0648\u0639 \u06a9\u0646\u06cc\u0645 \u0648 \u0628\u0627 \u0627\u062f\u063a\u0627\u0645 \u0628\u0627\u0631 \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u06cc\u06a9 \u0622\u0631\u0627\u06cc\u0647 \u0648 <code>user_id<\/code> \u0628\u0631\u0627\u06cc \u0646\u0648\u06cc\u0633\u0646\u062f\u0647<\/p>\n<p>\u0628\u06cc\u0627\u06cc\u06cc\u062f \u0627\u06a9\u0646\u0648\u0646 \u0628\u0647 \u06a9\u0646\u062a\u0631\u0644 \u06a9\u0646\u0646\u062f\u0647 \u0647\u0627\u06cc \u062e\u0648\u062f \u0628\u0631\u06af\u0631\u062f\u06cc\u0645 \u0648 \u0645\u0637\u0645\u0626\u0646 \u0634\u0648\u06cc\u0645 \u06a9\u0647 \u0645\u0627 \u0627\u06cc\u0646 \u06a9\u0627\u0631 \u0631\u0627 \u062f\u0631 \u0645\u0627 \u0627\u0639\u0632\u0627\u0645 \u0645\u06cc \u06a9\u0646\u06cc\u0645 <code>CreateController<\/code>\u0628\u0634\u0631<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight php\"><code><span class=\"k\">final<\/span> <span class=\"k\">readonly<\/span> <span class=\"kd\">class<\/span> <span class=\"nc\">CreateController<\/span>\n<span class=\"p\">{<\/span>\n    <span class=\"k\">public<\/span> <span class=\"k\">function<\/span> <span class=\"n\">__construct<\/span><span class=\"p\">(<\/span>\n        <span class=\"err\">#<\/span><span class=\"p\">[<\/span><span class=\"nc\">CurrentUser<\/span><span class=\"p\">]<\/span> <span class=\"k\">private<\/span> <span class=\"kt\">User<\/span> <span class=\"nv\">$user<\/span><span class=\"p\">,<\/span>\n        <span class=\"k\">private<\/span> <span class=\"kt\">Dispatcher<\/span> <span class=\"nv\">$bus<\/span><span class=\"p\">,<\/span>\n    <span class=\"p\">)<\/span> <span class=\"p\">{}<\/span>\n\n    <span class=\"k\">public<\/span> <span class=\"k\">function<\/span> <span class=\"n\">__invoke<\/span><span class=\"p\">(<\/span><span class=\"kt\">CreateRequest<\/span> <span class=\"nv\">$request<\/span><span class=\"p\">):<\/span> <span class=\"kt\">Response<\/span>\n    <span class=\"p\">{<\/span>\n        <span class=\"nf\">defer<\/span><span class=\"p\">(<\/span>\n            <span class=\"n\">callback<\/span><span class=\"o\">:<\/span> <span class=\"k\">fn<\/span><span class=\"p\">()<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"nv\">$this<\/span><span class=\"o\">-&gt;<\/span><span class=\"n\">bus<\/span><span class=\"o\">-&gt;<\/span><span class=\"nf\">dispatch<\/span><span class=\"p\">(<\/span>\n                <span class=\"n\">command<\/span><span class=\"o\">:<\/span> <span class=\"k\">new<\/span> <span class=\"nc\">CreateNewStory<\/span><span class=\"p\">(<\/span>\n                    <span class=\"n\">user<\/span><span class=\"o\">:<\/span> <span class=\"nv\">$this<\/span><span class=\"o\">-&gt;<\/span><span class=\"n\">user<\/span><span class=\"o\">-&gt;<\/span><span class=\"n\">id<\/span><span class=\"p\">,<\/span>\n                    <span class=\"n\">payload<\/span><span class=\"o\">:<\/span> <span class=\"nv\">$request<\/span><span class=\"o\">-&gt;<\/span><span class=\"nf\">payload<\/span><span class=\"p\">(),<\/span>\n                <span class=\"p\">),<\/span>\n    <span class=\"p\">),<\/span>\n            <span class=\"n\">name<\/span><span class=\"o\">:<\/span> <span class=\"s1\">'create-stories'<\/span><span class=\"p\">,<\/span>\n        <span class=\"p\">);<\/span>\n\n        <span class=\"k\">return<\/span> <span class=\"k\">new<\/span> <span class=\"nc\">JsonResponse<\/span><span class=\"p\">(<\/span>\n            <span class=\"n\">data<\/span><span class=\"o\">:<\/span> <span class=\"p\">[<\/span>\n                <span class=\"s1\">'message'<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"s1\">'We are processing your request.'<\/span><span class=\"p\">,<\/span>\n            <span class=\"p\">],<\/span>\n            <span class=\"n\">status<\/span><span class=\"o\">:<\/span> <span class=\"nc\">Response<\/span><span class=\"o\">::<\/span><span class=\"no\">HTTP_ACCEPTED<\/span><span class=\"p\">,<\/span>\n        <span class=\"p\">);<\/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>\u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0631\u0627 \u0648\u0627\u0631\u062f \u06a9\u0646\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 \u0627\u06cc\u0646\u062c\u0627 \u0645\u0627 \u0627\u0632 \u062a\u0632\u0631\u06cc\u0642 \u0648\u0627\u0628\u0633\u062a\u06af\u06cc \u0648 \u0647\u0645\u0686\u0646\u06cc\u0646 \u06cc\u06a9 \u0648\u06cc\u0698\u06af\u06cc \u062c\u062f\u06cc\u062f \u0627\u0632 Laravel \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc \u06a9\u0646\u06cc\u0645 \u060c \u06a9\u0647 \u0628\u0647 \u0645\u0627 \u0627\u0645\u06a9\u0627\u0646 \u0645\u06cc \u062f\u0647\u062f \u0646\u0645\u0648\u0646\u0647 \u0627\u06cc \u0627\u0632 \u06a9\u0627\u0631\u0628\u0631 \u0645\u0639\u062a\u0628\u0631 \u0631\u0627 \u0627\u0632 \u0638\u0631\u0641 \u0646\u06cc\u0632 \u062d\u0644 \u06a9\u0646\u06cc\u0645. \u0633\u067e\u0633 \u060c \u0628\u0631\u0627\u06cc \u0628\u0631\u062f\u0627\u0634\u062a\u0646 \u0622\u0646 \u060c \u0645\u0627 \u062f\u0631 \u062d\u0627\u0644 \u0627\u0639\u0632\u0627\u0645 \u06cc\u06a9 \u06a9\u0627\u0631 \u067e\u0633 \u0632\u0645\u06cc\u0646\u0647 \u0628\u0631\u0627\u06cc \u0627\u0646\u062c\u0627\u0645 \u0647\u0631\u06af\u0648\u0646\u0647 \u0639\u0645\u0644\u06cc\u0627\u062a \u0646\u0648\u0634\u062a\u0646 \u0647\u0633\u062a\u06cc\u0645 &#8211; \u0627\u0645\u0627 \u0645\u0627 \u0639\u0645\u0644\u06a9\u0631\u062f \u0627\u06cc\u0646 \u06a9\u0627\u0631 \u0631\u0627 \u062a\u0627 \u0632\u0645\u0627\u0646\u06cc \u06a9\u0647 \u067e\u0627\u0633\u062e \u0627\u0631\u0633\u0627\u0644 \u0634\u0648\u062f \u060c \u0628\u0647 \u062a\u0639\u0648\u06cc\u0642 \u0645\u06cc \u0627\u0646\u062f\u0627\u0632\u06cc\u0645. \u0627\u06cc\u0646 \u0627\u0637\u0645\u06cc\u0646\u0627\u0646 \u062d\u0627\u0635\u0644 \u0645\u06cc \u06a9\u0646\u062f \u06a9\u0647 \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u0628\u0647 \u0647\u0645\u0627\u0646 \u0633\u0631\u0639\u062a \u0645\u0645\u06a9\u0646 \u0627\u0633\u062a.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"%D8%A7%DB%8C%D8%AC%D8%A7%D8%AF_%D9%85%D8%B4%D8%AE%D8%B5%D8%A7%D8%AA_OpenAPI_%D8%A8%D8%A7_%D8%AA%D9%82%D9%84%D8%A7\"><\/span>\n<p>  \u0627\u06cc\u062c\u0627\u062f \u0645\u0634\u062e\u0635\u0627\u062a OpenAPI \u0628\u0627 \u062a\u0642\u0644\u0627<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p><img decoding=\"async\" src=\"https:\/\/media2.dev.to\/dynamic\/image\/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto\/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fuks4vcqquszdu4jog5vp.png\" alt=\"\u062a\u0642\u0644\u0627 \u06a9\u0631\u062f\u0646\" loading=\"lazy\" width=\"800\" height=\"400\" title=\"\"><\/p>\n<p>\u0645\u0627 \u0627\u06a9\u0646\u0648\u0646 \u062f\u0631 \u0646\u0642\u0637\u0647\u200c\u0627\u06cc \u0647\u0633\u062a\u06cc\u0645 \u06a9\u0647 \u0645\u06cc \u062a\u0648\u0627\u0646\u0645 \u0634\u0645\u0627 \u0631\u0627 \u0628\u0627 Zuplo \u0645\u0639\u0631\u0641\u06cc \u06a9\u0646\u0645 \u060c \u06a9\u0647 \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u06cc\u06a9 \u062a\u0648\u0633\u0639\u0647 \u062f\u0647\u0646\u062f\u0647 API \u06a9\u0627\u0645\u0644\u0627\u064b \u062e\u0627\u0631\u0642 \u0627\u0644\u0639\u0627\u062f\u0647 \u0627\u0633\u062a. \u0645\u0646 \u0645\u06cc \u062a\u0648\u0627\u0646\u0645 \u0627\u0632 Zuplo \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u06cc\u06a9 \u067e\u0631\u0648\u06a9\u0633\u06cc \u0648\u0627\u0642\u0639 \u062f\u0631 Edge \u0628\u0631\u0627\u06cc API \u062e\u0648\u062f \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u0645 \u0648 \u0642\u0648\u0627\u0646\u06cc\u0646\u06cc \u0631\u0627 \u0628\u0631\u0627\u06cc API \u062e\u0648\u062f \u0627\u0639\u0645\u0627\u0644 \u06a9\u0646\u0645 \u06a9\u0647 \u0628\u0647 \u062c\u0627\u06cc \u06a9\u062f \u062f\u0631 \u062f\u0627\u0634\u0628\u0648\u0631\u062f Zuplo \u0627\u062f\u0627\u0631\u0647 \u0645\u06cc \u0634\u0648\u0646\u062f. \u0622\u06cc\u0627 \u0645\u06cc \u062e\u0648\u0627\u0647\u06cc\u062f \u0645\u062d\u062f\u0648\u062f\u06cc\u062a \u0646\u0631\u062e \u0631\u0627 \u062a\u063a\u06cc\u06cc\u0631 \u062f\u0647\u06cc\u062f\u061f \u0622\u06cc\u0627 \u0645\u06cc \u062e\u0648\u0627\u0647\u06cc\u062f \u062d\u0627\u0641\u0638\u0647 \u067e\u0646\u0647\u0627\u0646 \u0633\u0646\u06af\u06cc\u0646 \u062a\u0631\u06cc \u0627\u0636\u0627\u0641\u0647 \u06a9\u0646\u06cc\u062f\u061f \u0628\u0647 \u0627\u0633\u062a\u0642\u0631\u0627\u0631 \u0644\u0627\u0632\u0645 \u0646\u06cc\u0633\u062a.<\/p>\n<p>\u0628\u0631\u0627\u06cc \u0634\u0631\u0648\u0639 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 Zuplo \u060c \u0628\u0647 \u0645\u0634\u062e\u0635\u0627\u062a OpenAPI \u0646\u06cc\u0627\u0632 \u062f\u0627\u0631\u06cc\u062f \u06a9\u0647 API \u0634\u0645\u0627 \u0631\u0627 \u0628\u0647 \u062e\u0648\u0628\u06cc \u062a\u0648\u0635\u06cc\u0641 \u0645\u06cc \u06a9\u0646\u062f. \u062f\u0631 \u0644\u0627\u0631\u0627\u0648\u0644 \u0686\u0646\u062f \u0631\u0648\u06cc\u06a9\u0631\u062f \u0645\u062e\u062a\u0644\u0641 \u0648\u062c\u0648\u062f \u062f\u0627\u0631\u062f \u06a9\u0647 \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u0627\u0632 \u0622\u0646 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f \u060c \u0627\u0645\u0627 \u062f\u0631 \u0627\u06cc\u0646 \u0645\u0642\u0627\u0644\u0647 \u0642\u0635\u062f \u062f\u0627\u0631\u0645 \u0627\u0632 \u0628\u0633\u062a\u0647 \u0627\u06cc \u0628\u0647 \u0646\u0627\u0645 Scramble \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u0645. Scramble \u0698\u0646\u0631\u0627\u062a\u0648\u0631 \u0627\u0633\u0646\u0627\u062f OpenAPI \u0628\u0631\u0627\u06cc Laravel \u0627\u0633\u062a. \u0627\u06cc\u0646 \u0627\u0633\u0646\u0627\u062f API \u0631\u0627 \u0628\u0631\u0627\u06cc \u067e\u0631\u0648\u0698\u0647 \u0634\u0645\u0627 \u0628\u0647 \u0637\u0648\u0631 \u062e\u0648\u062f\u06a9\u0627\u0631 \u0627\u06cc\u062c\u0627\u062f \u0645\u06cc \u06a9\u0646\u062f \u0628\u062f\u0648\u0646 \u0627\u06cc\u0646\u06a9\u0647 \u0634\u0645\u0627 \u0631\u0627 \u0628\u0647 \u0646\u0648\u0634\u062a\u0646 \u062d\u0627\u0634\u06cc\u0647 \u0646\u0648\u06cc\u0633\u06cc PHPDOC \u0628\u0647 \u0635\u0648\u0631\u062a \u062f\u0633\u062a\u06cc \u0628\u062e\u0648\u0627\u0647\u06cc\u062f. \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0628\u0633\u062a\u0647 \u0646\u0633\u0628\u062a\u0627\u064b \u0633\u0627\u062f\u0647 \u0627\u0633\u062a \u060c \u0628\u0646\u0627\u0628\u0631\u0627\u06cc\u0646 \u0628\u06cc\u0627\u06cc\u06cc\u062f \u0622\u0646 \u0631\u0627 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0622\u0647\u0646\u06af\u0633\u0627\u0632 \u0646\u0635\u0628 \u06a9\u0646\u06cc\u0645:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight shell\"><code>composer require dedoc\/scramble\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>\u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0631\u0627 \u0648\u0627\u0631\u062f \u06a9\u0646\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\u06cc\u0646 \u0628\u0633\u062a\u0647 \u0628\u0646\u062f\u06cc \u0631\u0627 \u0628\u0631\u0627\u06cc \u0634\u0645\u0627 \u0646\u0635\u0628 \u0645\u06cc \u06a9\u0646\u062f \u060c \u0627\u0645\u0627 \u0628\u0631\u0627\u06cc \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0635\u062d\u06cc\u062d \u0627\u0632 \u0622\u0646 \u0645\u06cc \u062e\u0648\u0627\u0647\u06cc\u062f \u067e\u0631\u0648\u0646\u062f\u0647 \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u0631\u0627 \u0645\u0646\u062a\u0634\u0631 \u06a9\u0646\u06cc\u062f \u062a\u0627 \u0628\u0647 \u0634\u0645\u0627 \u0627\u0645\u06a9\u0627\u0646 \u062f\u0647\u062f \u0622\u0646 \u0631\u0627 \u0628\u0631\u0627\u06cc \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u062e\u0648\u062f \u0633\u0641\u0627\u0631\u0634\u06cc \u06a9\u0646\u06cc\u062f.<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight shell\"><code>php artisan vendor:publish <span class=\"nt\">--provider<\/span><span class=\"o\">=<\/span><span class=\"s2\">\"Dedoc<\/span><span class=\"se\">\\S<\/span><span class=\"s2\">cramble<\/span><span class=\"se\">\\S<\/span><span class=\"s2\">crambleServiceProvider\"<\/span> <span class=\"nt\">--tag<\/span><span class=\"o\">=<\/span><span class=\"s2\">\"scramble-config\"<\/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>\u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0631\u0627 \u0648\u0627\u0631\u062f \u06a9\u0646\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\u06cc\u0646 \u06cc\u06a9 \u0627\u06cc\u062c\u0627\u062f \u0645\u06cc \u06a9\u0646\u062f <code>config\/scramble.php<\/code> \u067e\u0631\u0648\u0646\u062f\u0647 \u0645\u0627 \u0645\u06cc \u062e\u0648\u0627\u0647\u06cc\u0645 \u0628\u062e\u0634 \u0647\u0627\u06cc\u06cc \u0627\u0632 \u0627\u06cc\u0646 \u0631\u0627 \u0628\u0647 \u0631\u0648\u0632 \u06a9\u0646\u06cc\u0645 \u060c \u0632\u06cc\u0631\u0627 \u0645\u0627 \u062f\u0631 API \u062e\u0648\u062f \u0686\u0646\u062f \u062a\u063a\u06cc\u06cc\u0631 \u0627\u06cc\u062c\u0627\u062f \u06a9\u0631\u062f\u0647 \u0627\u06cc\u0645.<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight php\"><code><span class=\"k\">return<\/span> <span class=\"p\">[<\/span>\n    <span class=\"s1\">'api_path'<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"s1\">'api'<\/span><span class=\"p\">,<\/span>\n    <span class=\"s1\">'api_domain'<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"kc\">null<\/span><span class=\"p\">,<\/span>\n    <span class=\"s1\">'export_path'<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"s1\">'openapi.json'<\/span><span class=\"p\">,<\/span>\n    <span class=\"s1\">'info'<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"p\">[<\/span>\n        <span class=\"s1\">'version'<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"nf\">env<\/span><span class=\"p\">(<\/span><span class=\"s1\">'API_VERSION'<\/span><span class=\"p\">,<\/span> <span class=\"s1\">'0.0.1'<\/span><span class=\"p\">),<\/span>\n                <span class=\"s1\">'description'<\/span> <span class=\"o\">=&gt;<\/span> <span class=\"s1\">'This is the OpenAPI Spec for the Local Lore API.'<\/span><span class=\"p\">,<\/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>\u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0631\u0627 \u0648\u0627\u0631\u062f \u06a9\u0646\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\u0631\u0648\u0646\u062f\u0647 \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u062d\u0627\u0648\u06cc \u0686\u06cc\u0632\u0647\u0627\u06cc \u0628\u06cc\u0634\u062a\u0631\u06cc \u0627\u0632 \u0627\u06cc\u0646 \u0627\u0633\u062a \u060c \u0627\u0645\u0627 \u0627\u06cc\u0646 \u062a\u0646\u0647\u0627 \u0686\u06cc\u0632\u06cc \u0627\u0633\u062a \u06a9\u0647 \u0645\u0627 \u062f\u0631 \u062d\u0627\u0644 \u062d\u0627\u0636\u0631 \u0628\u0627\u06cc\u062f \u0628\u0647 \u0631\u0648\u0632 \u06a9\u0646\u06cc\u0645. \u06cc\u06a9 \u0642\u062f\u0645 \u0645\u0647\u0645 \u06a9\u0647 \u0628\u0627\u06cc\u062f \u0642\u0628\u0644 \u0627\u0632 \u0635\u0627\u062f\u0631 \u06a9\u0631\u062f\u0646 \u0645\u0634\u062e\u0635\u0627\u062a OpenAPI \u062e\u0648\u062f \u0628\u0631\u062f\u0627\u0631\u06cc\u062f \u060c \u062a\u062c\u0632\u06cc\u0647 \u0648 \u062a\u062d\u0644\u06cc\u0644 \u062e\u0631\u0648\u062c\u06cc \u0627\u0633\u062a. Scramble \u06cc\u06a9 \u062f\u0633\u062a\u0648\u0631 \u0645\u0641\u06cc\u062f \u0628\u0631\u0627\u06cc \u0627\u06cc\u0646 \u06a9\u0627\u0631 \u062f\u0627\u0631\u062f \u060c \u06a9\u0647 \u06cc\u06a9 \u0627\u062c\u0631\u0627\u06cc \u062e\u0634\u06a9 \u0627\u0632 \u0635\u0627\u062f\u0631\u0627\u062a \u0634\u0645\u0627 \u0631\u0627 \u0627\u0646\u062c\u0627\u0645 \u0645\u06cc \u062f\u0647\u062f \u0648 \u0628\u0647 \u0634\u0645\u0627 \u0627\u0637\u0644\u0627\u0639 \u0645\u06cc \u062f\u0647\u062f \u06a9\u0647 \u0622\u06cc\u0627 \u0627\u0646\u062a\u0638\u0627\u0631 \u0645\u0634\u06a9\u0644\u06cc \u062f\u0627\u0631\u062f. \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u0628\u0627 \u0627\u062c\u0631\u0627\u06cc \u062f\u0633\u062a\u0648\u0631 artisan \u0632\u06cc\u0631 \u0627\u0632 \u0627\u06cc\u0646 \u062f\u0633\u062a\u0648\u0631 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight shell\"><code>php artisan scramble:analyze\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>\u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0631\u0627 \u0648\u0627\u0631\u062f \u06a9\u0646\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 \u0647\u0645\u0647 \u0686\u06cc\u0632 \u062e\u0648\u0628 \u067e\u06cc\u0634 \u0645\u06cc \u0631\u0648\u062f \u060c \u0628\u0627\u06cc\u062f \u067e\u06cc\u0627\u0645 \u0632\u06cc\u0631 \u0631\u0627 \u0628\u0628\u06cc\u0646\u06cc\u062f:<\/p>\n<blockquote>\n<p>\u0647\u0645\u0647 \u0686\u06cc\u0632 \u062e\u0648\u0628 \u0627\u0633\u062a! \u0645\u0633\u062a\u0646\u062f\u0627\u062a \u0628\u062f\u0648\u0646 \u0647\u06cc\u0686 \u06af\u0648\u0646\u0647 \u062e\u0637\u0627\u06cc\u06cc \u0627\u06cc\u062c\u0627\u062f \u0645\u06cc \u0634\u0648\u062f<\/p>\n<\/blockquote>\n<p>\u0627\u06af\u0631 \u0627\u06cc\u0646 \u0631\u0627 \u0645\u06cc \u0628\u06cc\u0646\u06cc\u062f \u060c \u0645\u0631\u062d\u0644\u0647 \u0628\u0639\u062f\u06cc \u0635\u0627\u062f\u0631 \u06a9\u0631\u062f\u0646 \u0645\u0634\u062e\u0635\u0627\u062a OpenAPI \u0627\u0633\u062a. \u0627\u06af\u0631 \u0627\u06cc\u0646 \u0631\u0627 \u0646\u0645\u06cc \u0628\u06cc\u0646\u06cc\u062f \u060c \u067e\u0633 \u0628\u0627\u06cc\u062f \u0645\u0633\u062a\u0646\u062f\u0627\u062a \u062a\u0642\u0644\u0627 \u0648 \u06a9\u062f \u062e\u0648\u062f \u0631\u0627 \u0628\u0631\u0631\u0633\u06cc \u06a9\u0646\u06cc\u062f \u062a\u0627 \u0628\u0628\u06cc\u0646\u06cc\u062f \u06a9\u0647 \u0622\u06cc\u0627 \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u0628\u0628\u06cc\u0646\u06cc\u062f \u06a9\u0647 \u0686\u0631\u0627 \u0635\u0627\u062f\u0631 \u0646\u0645\u06cc \u0634\u0648\u062f. \u0628\u06cc\u0627\u06cc\u06cc\u062f \u0641\u0631\u0636 \u06a9\u0646\u06cc\u0645 \u0647\u0645\u0647 \u0686\u06cc\u0632 \u0645\u0637\u0627\u0628\u0642 \u0622\u0646\u0686\u0647 \u0627\u0646\u062a\u0638\u0627\u0631 \u0645\u06cc \u0631\u0648\u062f \u06a9\u0627\u0631 \u0645\u06cc \u06a9\u0646\u062f \u060c \u0648 \u0628\u06cc\u0627\u06cc\u06cc\u062f \u067e\u0631\u0648\u0646\u062f\u0647 OpenAPI \u062e\u0648\u062f \u0631\u0627 \u0627\u06a9\u0646\u0648\u0646 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u062f\u0633\u062a\u0648\u0631 Artisan \u0632\u06cc\u0631 \u0635\u0627\u062f\u0631 \u06a9\u0646\u06cc\u0645:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight shell\"><code>php artisan scramble:export\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>\u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0631\u0627 \u0648\u0627\u0631\u062f \u06a9\u0646\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 \u0628\u0627\u06cc\u062f \u0645\u0634\u062e\u0635\u0627\u062a OpenAPI \u0635\u0627\u062f\u0631 \u0634\u062f\u0647 \u0628\u0647 \u0631\u06cc\u0634\u0647 \u067e\u0631\u0648\u0698\u0647 \u062e\u0648\u062f \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u06cc\u0645 \u060c \u0628\u06cc\u0627\u06cc\u06cc\u062f \u0646\u06af\u0627\u0647\u06cc \u06af\u0630\u0631\u0627 \u0628\u0647 \u0622\u0646\u0686\u0647 \u062a\u0648\u0644\u06cc\u062f \u06a9\u0631\u062f\u0647 \u0627\u0633\u062a &#8211; \u0645\u0646\u0647\u0627\u06cc \u0645\u0633\u06cc\u0631\u0647\u0627 \u0631\u0627 \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u0641\u0636\u0627\u06cc \u0632\u06cc\u0627\u062f\u06cc \u0628\u0647 \u062e\u0648\u062f \u0627\u062e\u062a\u0635\u0627\u0635 \u062f\u0647\u06cc\u0645!<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight json\"><code><span class=\"p\">{<\/span><span class=\"w\">\n  <\/span><span class=\"nl\">\"openapi\"<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"s2\">\"3.1.0\"<\/span><span class=\"p\">,<\/span><span class=\"w\">\n  <\/span><span class=\"nl\">\"info\"<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n    <\/span><span class=\"nl\">\"title\"<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"s2\">\"Local Lore API\"<\/span><span class=\"p\">,<\/span><span class=\"w\">\n    <\/span><span class=\"nl\">\"version\"<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"s2\">\"0.0.1\"<\/span><span class=\"p\">,<\/span><span class=\"w\">\n    <\/span><span class=\"nl\">\"description\"<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"s2\">\"This is the OpenAPI Spec for the Local Lore API.\"<\/span><span class=\"w\">\n  <\/span><span class=\"p\">},<\/span><span class=\"w\">\n  <\/span><span class=\"nl\">\"servers\"<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"p\">[<\/span><span class=\"w\">\n    <\/span><span class=\"p\">{<\/span><span class=\"w\">\n      <\/span><span class=\"nl\">\"url\"<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"s2\">\"https:\/\/local-lore.test\/api\"<\/span><span class=\"w\">\n    <\/span><span class=\"p\">}<\/span><span class=\"w\">\n  <\/span><span class=\"p\">]<\/span><span class=\"w\">\n<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/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>\u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0631\u0627 \u0648\u0627\u0631\u062f \u06a9\u0646\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>\u0647\u0645\u0627\u0646\u0637\u0648\u0631 \u06a9\u0647 \u0645\u0634\u0627\u0647\u062f\u0647 \u0645\u06cc \u06a9\u0646\u06cc\u062f \u060c \u0627\u0637\u0644\u0627\u0639\u0627\u062a\u06cc \u0631\u0627 \u06a9\u0647 \u062f\u0631 \u067e\u0631\u0648\u0646\u062f\u0647 \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u062a\u0646\u0638\u06cc\u0645 \u06a9\u0631\u062f\u0647 \u0627\u06cc\u0645 \u060c \u0645\u06cc \u06a9\u0634\u062f \u0648 \u0645\u0627 \u0631\u0627 \u062f\u0631 \u062d\u0627\u0644 \u06a9\u0634\u06cc\u062f\u0646 \u0645\u0627\u0633\u062a <code>APP_URL<\/code> \u0627\u0632 \u0645\u0627 <code>.env<\/code> \u067e\u0631\u0648\u0646\u062f\u0647 \u0628\u0631\u0627\u06cc \u0622\u062f\u0631\u0633 \u0633\u0631\u0648\u0631. \u062f\u0631 \u0635\u0648\u0631\u062a \u0646\u06cc\u0627\u0632 \u0628\u0647 \u0633\u0641\u0627\u0631\u0634\u06cc \u06a9\u0631\u062f\u0646 \u0627\u06cc\u0646 \u060c \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u0645 \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u0631\u0627 \u0628\u0647 \u0631\u0648\u0632 \u06a9\u0646\u06cc\u0645 \u062a\u0627 \u0633\u0631\u0648\u0631\u0647\u0627\u06cc \u0645\u062e\u062a\u0644\u0641\u06cc \u0631\u0627 \u06a9\u0647 \u0645\u0645\u06a9\u0646 \u0627\u0633\u062a \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u06cc\u0645 \u0644\u06cc\u0633\u062a \u06a9\u0646\u06cc\u0645.<\/p>\n<p>\u0627\u06a9\u0646\u0648\u0646 \u0645\u06cc \u062f\u0627\u0646\u06cc\u0645 \u06a9\u0647 \u0627\u06cc\u0646 \u0631\u0648\u0646\u062f \u06a9\u0627\u0631 \u0645\u06cc \u06a9\u0646\u062f \u060c \u0628\u06cc\u0627\u06cc\u06cc\u062f \u0646\u06af\u0627\u0647\u06cc \u0628\u0647 \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u067e\u0633\u062a \u0628\u0631\u0627\u06cc \u0627\u06cc\u062c\u0627\u062f \u06cc\u06a9 \u062f\u0627\u0633\u062a\u0627\u0646 \u062c\u062f\u06cc\u062f \u0628\u06cc\u0646\u062f\u0627\u0632\u06cc\u0645 \u0648 \u0628\u0628\u06cc\u0646\u06cc\u0645 \u0686\u0647 \u0686\u06cc\u0632\u06cc \u0628\u0631\u0627\u06cc \u0645\u0627 \u0627\u06cc\u062c\u0627\u062f \u0634\u062f\u0647 \u0627\u0633\u062a.<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight json\"><code><span class=\"nl\">\"\\\/stories\"<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n    <\/span><span class=\"nl\">\"post\"<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n        <\/span><span class=\"nl\">\"operationId\"<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"s2\">\"stories:create\"<\/span><span class=\"p\">,<\/span><span class=\"w\">\n        <\/span><span class=\"nl\">\"tags\"<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"p\">[<\/span><span class=\"w\">\n            <\/span><span class=\"s2\">\"Create\"<\/span><span class=\"w\">\n        <\/span><span class=\"p\">],<\/span><span class=\"w\">\n        <\/span><span class=\"nl\">\"requestBody\"<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n            <\/span><span class=\"nl\">\"required\"<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"kc\">true<\/span><span class=\"p\">,<\/span><span class=\"w\">\n            <\/span><span class=\"nl\">\"content\"<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n                <\/span><span class=\"nl\">\"application\\\/json\"<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n                    <\/span><span class=\"nl\">\"schema\"<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n                        <\/span><span class=\"nl\">\"$ref\"<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"s2\">\"#<\/span><span class=\"se\">\\\/<\/span><span class=\"s2\">components<\/span><span class=\"se\">\\\/<\/span><span class=\"s2\">schemas<\/span><span class=\"se\">\\\/<\/span><span class=\"s2\">CreateRequest\"<\/span><span class=\"w\">\n                    <\/span><span class=\"p\">}<\/span><span class=\"w\">\n                <\/span><span class=\"p\">}<\/span><span class=\"w\">\n            <\/span><span class=\"p\">}<\/span><span class=\"w\">\n        <\/span><span class=\"p\">},<\/span><span class=\"w\">\n        <\/span><span class=\"nl\">\"responses\"<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n            <\/span><span class=\"nl\">\"202\"<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n                <\/span><span class=\"nl\">\"description\"<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"s2\">\"\"<\/span><span class=\"p\">,<\/span><span class=\"w\">\n                <\/span><span class=\"nl\">\"content\"<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n                    <\/span><span class=\"nl\">\"application\\\/json\"<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n                        <\/span><span class=\"nl\">\"schema\"<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n                            <\/span><span class=\"nl\">\"type\"<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"s2\">\"object\"<\/span><span class=\"p\">,<\/span><span class=\"w\">\n                            <\/span><span class=\"nl\">\"properties\"<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n                                <\/span><span class=\"nl\">\"message\"<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n                                    <\/span><span class=\"nl\">\"type\"<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"s2\">\"string\"<\/span><span class=\"p\">,<\/span><span class=\"w\">\n                                    <\/span><span class=\"nl\">\"example\"<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"s2\">\"We are processing your request.\"<\/span><span class=\"w\">\n                                <\/span><span class=\"p\">}<\/span><span class=\"w\">\n                            <\/span><span class=\"p\">},<\/span><span class=\"w\">\n                            <\/span><span class=\"nl\">\"required\"<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"p\">[<\/span><span class=\"w\">\n                                <\/span><span class=\"s2\">\"message\"<\/span><span class=\"w\">\n                            <\/span><span class=\"p\">]<\/span><span class=\"w\">\n                        <\/span><span class=\"p\">}<\/span><span class=\"w\">\n                    <\/span><span class=\"p\">}<\/span><span class=\"w\">\n                <\/span><span class=\"p\">}<\/span><span class=\"w\">\n            <\/span><span class=\"p\">},<\/span><span class=\"w\">\n            <\/span><span class=\"nl\">\"422\"<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n                <\/span><span class=\"nl\">\"$ref\"<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"s2\">\"#<\/span><span class=\"se\">\\\/<\/span><span class=\"s2\">components<\/span><span class=\"se\">\\\/<\/span><span class=\"s2\">responses<\/span><span class=\"se\">\\\/<\/span><span class=\"s2\">ValidationException\"<\/span><span class=\"w\">\n            <\/span><span class=\"p\">}<\/span><span class=\"w\">\n        <\/span><span class=\"p\">}<\/span><span class=\"w\">\n    <\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/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>\u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0631\u0627 \u0648\u0627\u0631\u062f \u06a9\u0646\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\u06cc\u0646 \u0645\u0633\u06cc\u0631 \u060c \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u0641\u0631\u0645 \u0645\u0627 \u0648 \u0646\u062d\u0648\u0647 \u067e\u0627\u0633\u062e\u06af\u0648\u06cc\u06cc \u0645\u0627 \u0631\u0627 \u0634\u0646\u0627\u0633\u0627\u06cc\u06cc \u06a9\u0631\u062f\u0647 \u0627\u0633\u062a. \u0647\u0645\u0686\u0646\u06cc\u0646 \u0645\u0624\u0644\u0641\u0647 \u0647\u0627\u06cc\u06cc \u0631\u0627 \u0628\u0631\u0627\u06cc \u067e\u0627\u0633\u062e \u0648 \u0628\u062f\u0646\u0647 \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u0627\u06cc\u062c\u0627\u062f \u06a9\u0631\u062f\u0647 \u0627\u0633\u062a &#8211; \u06a9\u0647 \u0648\u0627\u0642\u0639\u0627\u064b \u0645\u0641\u06cc\u062f \u0627\u0633\u062a. \u06cc\u06a9 \u0645\u0648\u0631\u062f \u06a9\u0647 \u0645\u0646 \u062f\u0631 \u0645\u0648\u0631\u062f \u062a\u0644\u0627\u0634 \u0647\u0627\u06cc \u0642\u0628\u0644\u06cc \u0628\u0631\u0627\u06cc \u062a\u0648\u0644\u06cc\u062f \u0645\u0634\u062e\u0635\u0627\u062a Opanapi \u062f\u0648\u0633\u062a \u0646\u062f\u0627\u0634\u062a\u0645 \u0627\u06cc\u0646 \u0627\u0633\u062a \u06a9\u0647 \u0622\u0646\u0647\u0627 \u0647\u0645\u0647 \u0627\u06cc\u0646 \u0645\u0648\u0627\u0631\u062f \u0631\u0627 \u062f\u0631\u0648\u0646 \u062e\u0637\u06cc \u0627\u06cc\u062c\u0627\u062f \u0645\u06cc \u06a9\u0646\u0646\u062f \u060c \u0648 \u062d\u0641\u0638 \u0622\u0646 \u062f\u0631 \u0637\u0648\u0644\u0627\u0646\u06cc \u0645\u062f\u062a \u0633\u062e\u062a \u062a\u0631 \u0645\u06cc \u0634\u0648\u062f.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"%D8%AA%D9%86%D8%B8%DB%8C%D9%85_%D8%AF%D8%B1%D9%88%D8%A7%D8%B2%D9%87_zuplo_%D8%AE%D9%88%D8%AF\"><\/span>\n<p>  \u062a\u0646\u0638\u06cc\u0645 \u062f\u0631\u0648\u0627\u0632\u0647 zuplo \u062e\u0648\u062f<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u0647\u0646\u06af\u0627\u0645\u06cc \u06a9\u0647 \u0645\u0634\u062e\u0635\u0627\u062a OpenAPI \u062e\u0648\u062f \u0631\u0627 \u0627\u06cc\u062c\u0627\u062f \u06a9\u0631\u062f\u06cc\u0645 \u060c \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u0645 \u0622\u0646 \u0631\u0627 \u0628\u0647 \u067e\u0631\u0648\u0698\u0647 Zuplo \u062e\u0648\u062f \u0648\u0627\u0631\u062f \u06a9\u0631\u062f\u0647 \u0648 \u0634\u0631\u0648\u0639 \u06a9\u0646\u06cc\u0645!<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/media2.dev.to\/dynamic\/image\/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto\/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyqvk9rjdtfn2o8c7fyje.png\" alt=\"\u0648\u0627\u0631\u062f \u06a9\u0631\u062f\u0646 Openapi\" loading=\"lazy\" width=\"800\" height=\"406\" title=\"\"><\/p>\n<p>\u067e\u0633 \u0627\u0632 \u0648\u0627\u0631\u062f \u06a9\u0631\u062f\u0646 \u0645\u0634\u062e\u0635\u0627\u062a (\u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u0627\u06cc\u0646 \u06a9\u0627\u0631 \u0631\u0627 \u0627\u0632 \u0637\u0631\u06cc\u0642 \u0627\u0646\u062c\u0627\u0645 \u062f\u0647\u06cc\u062f <strong>\u0631\u0645\u0632<\/strong> > <code>routes.oas.json<\/code> > <strong>\u0648\u0627\u0631\u062f \u06a9\u0631\u062f\u0646 Openapi<\/strong> \u062f\u0631 \u067e\u0648\u0631\u062a\u0627\u0644 Zuplo \u06cc\u0627 \u0627\u0632 \u0637\u0631\u06cc\u0642 CLI \u062f\u0631 \u0635\u0648\u0631\u062a \u062a\u0648\u0633\u0639\u0647 \u0645\u062d\u0644\u06cc) \u060c \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u0645 \u0645\u0633\u06cc\u0631\u06cc \u0631\u0627 \u06a9\u0647 \u062f\u0631 \u0648\u06cc\u0631\u0627\u06cc\u0634\u06af\u0631 \u0628\u0647 \u0622\u0646 \u0627\u0647\u0645\u06cc\u062a \u0645\u06cc \u062f\u0647\u06cc\u0645 \u0627\u0646\u062a\u062e\u0627\u0628 \u06a9\u0646\u06cc\u0645 \u0648 \u0634\u0631\u0648\u0639 \u0628\u0647 \u0627\u0639\u0645\u0627\u0644 \u062e\u0637 \u0645\u0634\u06cc \u0628\u0631\u0627\u06cc \u0622\u0646 \u06a9\u0646\u06cc\u0645.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/media2.dev.to\/dynamic\/image\/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto\/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkgtr1dyhzqytk9guuhqo.png\" alt=\"\u0646\u0642\u0637\u0647 \u067e\u0627\u06cc\u0627\u0646\u06cc\" loading=\"lazy\" width=\"800\" height=\"407\" title=\"\"><\/p>\n<h2><span class=\"ez-toc-section\" id=\"%D8%A7%D9%81%D8%B2%D9%88%D8%AF%D9%86_%D8%A7%D8%B9%D8%AA%D8%A8%D8%A7%D8%B1_%D8%B3%D9%86%D8%AC%DB%8C_%D8%AF%D8%B1%D8%AE%D9%88%D8%A7%D8%B3%D8%AA_API\"><\/span>\n<p>  \u0627\u0641\u0632\u0648\u062f\u0646 \u0627\u0639\u062a\u0628\u0627\u0631 \u0633\u0646\u062c\u06cc \u062f\u0631\u062e\u0648\u0627\u0633\u062a API<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u062f\u0631 \u0645\u0631\u062d\u0644\u0647 \u0627\u0648\u0644 \u060c \u0645\u0627 \u0627\u0639\u062a\u0628\u0627\u0631 \u0633\u0646\u062c\u06cc \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u0631\u0627 \u0627\u0636\u0627\u0641\u0647 \u062e\u0648\u0627\u0647\u06cc\u0645 \u06a9\u0631\u062f. \u0627\u06cc\u0646 \u0628\u0647 \u0634\u062f\u062a \u0645\u0648\u0631\u062f \u0646\u06cc\u0627\u0632 \u0646\u06cc\u0633\u062a \u060c \u0627\u0645\u0627 \u062f\u0631 \u0635\u0648\u0631\u062a \u0639\u062f\u0645 \u062a\u0635\u0648\u06cc\u0628 \u0642\u0648\u0627\u0646\u06cc\u0646 \u0627\u0639\u062a\u0628\u0627\u0631 \u0633\u0646\u062c\u06cc LARAVEL \u06a9\u0647 \u062f\u0631 \u0645\u0634\u062e\u0635\u0627\u062a OpenAPI \u0642\u0631\u0627\u0631 \u0646\u062f\u0627\u0631\u0646\u062f \u060c \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u0647\u0627\u06cc \u0622\u0645\u062f\u0646 \u0628\u0647 API \u0645\u0627 \u0631\u0627 \u0645\u062a\u0648\u0642\u0641 \u0645\u06cc \u06a9\u0646\u062f.<\/p>\n<p>\u062f\u0631 \u0646\u0642\u0637\u0647 \u067e\u0627\u06cc\u0627\u0646\u06cc \u062e\u0648\u062f \u060c \u062f\u06a9\u0645\u0647 &#8220;+ \u0627\u0641\u0632\u0648\u062f\u0646 \u062e\u0637 \u0645\u0634\u06cc&#8221; \u0631\u0627 \u0645\u0634\u0627\u0647\u062f\u0647 \u062e\u0648\u0627\u0647\u06cc\u062f \u06a9\u0631\u062f. \u0631\u0648\u06cc \u0622\u0646 \u06a9\u0644\u06cc\u06a9 \u06a9\u0646\u06cc\u062f \u0648 &#8220;\u0627\u0639\u062a\u0628\u0627\u0631 \u0633\u0646\u062c\u06cc \u062f\u0631\u062e\u0648\u0627\u0633\u062a&#8221; \u0631\u0627 \u062c\u0633\u062a\u062c\u0648 \u06a9\u0646\u06cc\u062f.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/media2.dev.to\/dynamic\/image\/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto\/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjmgkts6dw6mqi61gph49.png\" alt=\"\u0627\u0639\u062a\u0628\u0627\u0631 \u0633\u0646\u062c\u06cc\" loading=\"lazy\" width=\"800\" height=\"553\" title=\"\"><\/p>\n<p>\u0647\u0646\u06af\u0627\u0645\u06cc \u06a9\u0647 \u0631\u0648\u06cc \u0622\u0646 \u06a9\u0644\u06cc\u06a9 \u0645\u06cc \u06a9\u0646\u06cc\u062f \u060c JSON \u0631\u0627 \u0628\u0627 \u0628\u0631\u062e\u06cc \u0627\u0632 \u06af\u0632\u06cc\u0646\u0647 \u0647\u0627 \u0645\u0634\u0627\u0647\u062f\u0647 \u0645\u06cc \u06a9\u0646\u06cc\u062f \u06a9\u0647 \u062f\u0631 \u0632\u06cc\u0631 &#8220;\u0627\u0633\u062a\u0641\u0627\u062f\u0647&#8221; \u0634\u0631\u062d \u062f\u0627\u062f\u0647 \u0634\u062f\u0647 \u0627\u0633\u062a.<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight json\"><code><span class=\"p\">{<\/span><span class=\"w\">\n  <\/span><span class=\"nl\">\"export\"<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"s2\">\"RequestValidationInboundPolicy\"<\/span><span class=\"p\">,<\/span><span class=\"w\">\n  <\/span><span class=\"nl\">\"module\"<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"s2\">\"$import(@zuplo\/runtime)\"<\/span><span class=\"p\">,<\/span><span class=\"w\">\n  <\/span><span class=\"nl\">\"options\"<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n    <\/span><span class=\"nl\">\"includeRequestInLogs\"<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"kc\">false<\/span><span class=\"p\">,<\/span><span class=\"w\">\n    <\/span><span class=\"nl\">\"logLevel\"<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"s2\">\"info\"<\/span><span class=\"p\">,<\/span><span class=\"w\">\n    <\/span><span class=\"nl\">\"validateBody\"<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"s2\">\"reject-and-log\"<\/span><span class=\"p\">,<\/span><span class=\"w\">\n    <\/span><span class=\"nl\">\"validatePathParameters\"<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"s2\">\"log-only\"<\/span><span class=\"p\">,<\/span><span class=\"w\">\n    <\/span><span class=\"nl\">\"validateQueryParameters\"<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"s2\">\"log-only\"<\/span><span class=\"w\">\n  <\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/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>\u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0631\u0627 \u0648\u0627\u0631\u062f \u06a9\u0646\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\u0639\u0645\u0627\u0644 \u062e\u0637 \u0645\u0634\u06cc \u060c OK \u0631\u0627 \u06a9\u0644\u06cc\u06a9 \u06a9\u0646\u06cc\u062f. \u0628\u06cc\u0627\u06cc\u06cc\u062f \u067e\u0633 \u0627\u0646\u062f\u0627\u0632 \u06a9\u0646\u06cc\u0645 \u0648 \u0622\u0646 \u0631\u0627 \u0627\u0645\u062a\u062d\u0627\u0646 \u06a9\u0646\u06cc\u0645. \u0631\u0648\u06cc &#8220;\u062a\u0633\u062a&#8221; \u0648 \u0633\u067e\u0633 &#8220;\u062a\u0633\u062a&#8221; \u0631\u0627 \u062f\u0648\u0628\u0627\u0631\u0647 \u06a9\u0644\u06cc\u06a9 \u06a9\u0646\u06cc\u062f \u0648 \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u0634\u0645\u0627 \u0631\u062f \u0645\u06cc \u0634\u0648\u062f.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/media2.dev.to\/dynamic\/image\/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto\/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fx8oenc4ste5jzusoxps9.png\" alt=\"\u062f\u0631\u062e\u0648\u0627\u0633\u062a \u0631\u0627 \u0631\u062f \u06a9\u0646\u06cc\u062f\" loading=\"lazy\" width=\"800\" height=\"640\" title=\"\"><\/p>\n<p>\u0634\u0645\u0627 \u0646\u06cc\u0627\u0632 \u0628\u0647 \u0633\u0627\u062e\u062a \u06cc\u06a9 \u0628\u062f\u0646 JSON \u062f\u0627\u0631\u06cc\u062f \u06a9\u0647 \u0628\u0627 \u0645\u0627 \u0645\u0637\u0627\u0628\u0642\u062a \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u062f <code>CreateRequest<\/code> \u0637\u0631\u062d\u0648\u0627\u0631\u0647 \u0627\u0632 \u0642\u0628\u0644 &#8211; \u0648 \u0647\u0645\u0686\u0646\u06cc\u0646 \u062a\u0646\u0638\u06cc\u0645 \u06a9\u0646\u06cc\u062f <code>Content-Type<\/code> \u0639\u0646\u0648\u0627\u0646 \u0628\u0647 <code>application\/json<\/code>\u0628\u0634\u0631 \u062f\u0631 \u0627\u06cc\u0646\u062c\u0627 \u06cc\u06a9 \u062f\u0627\u0633\u062a\u0627\u0646 \u0646\u0645\u0648\u0646\u0647 \u0628\u0631\u0627\u06cc \u0634\u0645\u0627 \u0648\u062c\u0648\u062f \u062f\u0627\u0631\u062f:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight json\"><code><span class=\"p\">{<\/span><span class=\"w\">\n  <\/span><span class=\"nl\">\"title\"<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"s2\">\"The Wild Hunt\"<\/span><span class=\"p\">,<\/span><span class=\"w\">\n  <\/span><span class=\"nl\">\"content\"<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"s2\">\"The hunt went wild - forever!\"<\/span><span class=\"p\">,<\/span><span class=\"w\">\n  <\/span><span class=\"nl\">\"latitude\"<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"mf\">0.0<\/span><span class=\"p\">,<\/span><span class=\"w\">\n  <\/span><span class=\"nl\">\"longitude\"<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"mf\">0.0<\/span><span class=\"w\">\n<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/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>\u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0631\u0627 \u0648\u0627\u0631\u062f \u06a9\u0646\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 \u067e\u0631 \u06a9\u0631\u062f\u0646 \u0647\u062f\u0631 \u0648 \u0628\u062f\u0646\u0647 &#8211; \u062f\u0648\u0628\u0627\u0631\u0647 \u0631\u0648\u06cc \u062a\u0633\u062a \u06a9\u0644\u06cc\u06a9 \u06a9\u0646\u06cc\u062f.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/media2.dev.to\/dynamic\/image\/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto\/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmsw6c72ji96vq2f2ompa.png\" alt=\"\u0627\u0639\u062a\u0628\u0627\u0631 \u0633\u0646\u062c\u06cc \u0645\u0648\u0641\u0642\u06cc\u062a\" loading=\"lazy\" width=\"800\" height=\"383\" title=\"\"><\/p>\n<p>\u0645\u0648\u0641\u0642\u06cc\u062a!<\/p>\n<h2><span class=\"ez-toc-section\" id=\"%D8%A7%D9%81%D8%B2%D9%88%D8%AF%D9%86_%D8%A7%D8%AD%D8%B1%D8%A7%D8%B2_%D9%87%D9%88%DB%8C%D8%AA_%DA%A9%D9%84%DB%8C%D8%AF_API\"><\/span>\n<p>  \u0627\u0641\u0632\u0648\u062f\u0646 \u0627\u062d\u0631\u0627\u0632 \u0647\u0648\u06cc\u062a \u06a9\u0644\u06cc\u062f API<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u0628\u0639\u062f \u060c \u0628\u06cc\u0627\u06cc\u06cc\u062f \u062e\u0637 \u0645\u0634\u06cc \u0627\u062d\u0631\u0627\u0632 \u0647\u0648\u06cc\u062a \u06a9\u0644\u06cc\u062f API \u0631\u0627 \u0627\u0636\u0627\u0641\u0647 \u06a9\u0646\u06cc\u0645:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight json\"><code><span class=\"p\">{<\/span><span class=\"w\">\n  <\/span><span class=\"nl\">\"export\"<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"s2\">\"ApiKeyInboundPolicy\"<\/span><span class=\"p\">,<\/span><span class=\"w\">\n  <\/span><span class=\"nl\">\"module\"<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"s2\">\"$import(@zuplo\/runtime)\"<\/span><span class=\"p\">,<\/span><span class=\"w\">\n  <\/span><span class=\"nl\">\"options\"<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n    <\/span><span class=\"nl\">\"allowUnauthenticatedRequests\"<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"kc\">false<\/span><span class=\"p\">,<\/span><span class=\"w\">\n    <\/span><span class=\"nl\">\"cacheTtlSeconds\"<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"mi\">60<\/span><span class=\"w\">\n  <\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/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>\u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0631\u0627 \u0648\u0627\u0631\u062f \u06a9\u0646\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\u0641\u0632\u0648\u062f\u0646 \u062e\u0637 \u0645\u0634\u06cc \u062f\u0631 \u0648\u0627\u0642\u0639 \u062c\u0631\u06cc\u0627\u0646 \u062a\u0646\u0638\u06cc\u0645 \u06a9\u0627\u0645\u0644 \u0646\u06cc\u0633\u062a (\u0645\u0633\u062a\u0646\u062f\u0627\u062a \u06a9\u0627\u0645\u0644 \u0631\u0627 \u0628\u0631\u0631\u0633\u06cc \u06a9\u0646\u06cc\u062f) &#8211; \u0627\u0645\u0627 \u0627\u06cc\u0646 \u0641\u0642\u0637 \u0628\u0631\u0627\u06cc \u0646\u0634\u0627\u0646 \u062f\u0627\u062f\u0646 \u0627\u06cc\u0646\u06a9\u0647 \u0686\u0647 \u0639\u0645\u0644\u06a9\u0631\u062f\u06cc \u0631\u0627 \u0645\u06cc \u062a\u0648\u0627\u0646 \u062f\u0631 \u062f\u0631\u0648\u0627\u0632\u0647 \u0627\u0646\u062c\u0627\u0645 \u062f\u0627\u062f \u060c \u0646\u0634\u0627\u0646 \u0645\u06cc \u062f\u0647\u062f.<\/p>\n<p>\u0627\u06a9\u0646\u0648\u0646 \u0645\u0627 \u062a\u0623\u06cc\u06cc\u062f \u0645\u06cc \u06a9\u0646\u06cc\u0645 \u0648 \u0627\u0639\u062a\u0628\u0627\u0631 \u0645\u06cc \u062f\u0647\u06cc\u0645. \u0647\u0645\u0647 \u06a9\u0627\u0631\u0647\u0627\u06cc\u06cc \u06a9\u0647 \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u0645 \u062f\u0631 \u0644\u0627\u0631\u0627\u0648\u0644 \u0646\u06cc\u0632 \u0627\u0646\u062c\u0627\u0645 \u062f\u0647\u06cc\u0645 &#8211; \u0627\u0645\u0627 \u0627\u06cc\u0646 \u0627\u062a\u0641\u0627\u0642 \u0642\u0628\u0644 \u0627\u0632 \u0627\u06cc\u0646\u06a9\u0647 \u0628\u0647 \u0645\u0627 \u0647\u062f\u0627\u06cc\u062a \u0634\u0648\u062f \u060c \u062f\u0631 \u0644\u0628\u0647 \u0627\u062a\u0641\u0627\u0642 \u0645\u06cc \u0627\u0641\u062a\u062f \u060c \u0628\u0647 \u0627\u06cc\u0646 \u0645\u0639\u0646\u06cc \u06a9\u0647 \u06a9\u0627\u0631\u0628\u0631\u0627\u0646 \u0633\u0631\u06cc\u0639\u062a\u0631 \u0628\u0627\u0632\u062e\u0648\u0631\u062f \u0641\u0648\u0631\u06cc \u0645\u06cc \u06af\u06cc\u0631\u0646\u062f \u0648 \u0628\u0631\u0646\u0627\u0645\u0647 \u0645\u0627 \u0645\u06cc \u062a\u0648\u0627\u0646\u062f \u0628\u0631\u0627\u06cc \u0647\u0631\u06af\u0648\u0646\u0647 \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u06a9\u0647 \u0627\u06cc\u0646 \u0633\u06cc\u0627\u0633\u062a \u0647\u0627 \u0631\u0627 \u062a\u0635\u0648\u06cc\u0628 \u06a9\u0646\u062f \u060c \u062f\u0631 \u062f\u0633\u062a\u0631\u0633 \u0628\u0645\u0627\u0646\u062f. \u0628\u0647 \u0646\u0638\u0631 \u0645\u06cc \u0631\u0633\u062f \u06a9\u0647 \u0645\u0627 \u0686\u06a9 \u0647\u0627\u06cc \u062e\u0648\u062f \u0631\u0627 \u062f\u0648 \u0628\u0631\u0627\u0628\u0631 \u0645\u06cc \u06a9\u0646\u06cc\u0645 \u060c \u0627\u0645\u0627 \u062f\u0631 \u0648\u0627\u0642\u0639\u06cc\u062a \u0645\u0627 \u0641\u0642\u0637 \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u0647\u0627\u06cc\u06cc \u0631\u0627 \u06a9\u0647 \u0628\u0647 \u0647\u0631 \u062d\u0627\u0644 \u0634\u06a9\u0633\u062a \u0645\u06cc \u062e\u0648\u0631\u0646\u062f \u060c \u0641\u06cc\u0644\u062a\u0631 \u0645\u06cc \u06a9\u0646\u06cc\u0645 &#8211; \u0646\u06af\u0647 \u062f\u0627\u0634\u062a\u0646 API \u0645\u0627 \u0628\u0631\u0627\u06cc \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u0647\u0627\u06cc\u06cc \u06a9\u0647 \u0645\u0648\u0641\u0642 \u062e\u0648\u0627\u0647\u0646\u062f \u0628\u0648\u062f.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"%D8%A7%D8%B6%D8%A7%D9%81%D9%87_%DA%A9%D8%B1%D8%AF%D9%86_%D9%85%D8%AD%D8%AF%D9%88%D8%AF%DB%8C%D8%AA_%D9%86%D8%B1%D8%AE\"><\/span>\n<p>  \u0627\u0636\u0627\u0641\u0647 \u06a9\u0631\u062f\u0646 \u0645\u062d\u062f\u0648\u062f\u06cc\u062a \u0646\u0631\u062e<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u06cc\u06a9 \u062e\u0637 \u0645\u0634\u06cc \u0646\u0647\u0627\u06cc\u06cc \u06a9\u0647 \u0645\u0646 \u062a\u0648\u0635\u06cc\u0647 \u0645\u06cc \u06a9\u0646\u0645 \u0633\u06cc\u0627\u0633\u062a \u0645\u062d\u062f\u0648\u062f\u06cc\u062a \u0646\u0631\u062e \u0628\u0627\u0634\u062f \u060c \u0628\u0644\u0647 \u0645\u0627 \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u0645 \u0627\u06cc\u0646 \u06a9\u0627\u0631 \u0631\u0627 \u062f\u0631 Laravel \u0646\u06cc\u0632 \u0627\u0646\u062c\u0627\u0645 \u062f\u0647\u06cc\u0645 &#8211; \u0627\u0645\u0627 \u0627\u06cc\u0646 \u0628\u0627\u0639\u062b \u0645\u06cc \u0634\u0648\u062f \u0642\u0628\u0644 \u0627\u0632 \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u0645\u0648\u0641\u0642\u06cc\u062a \u0622\u0645\u06cc\u0632 \u060c \u0686\u0646\u062f\u06cc\u0646 \u0628\u0627\u0631 \u0627\u0632 \u062a\u0644\u0627\u0634 \u0628\u0631\u0627\u06cc \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u0648 \u0639\u062f\u0645 \u0645\u0648\u0641\u0642\u06cc\u062a \u060c \u0686\u0646\u062f\u06cc\u0646 \u0628\u0627\u0631 \u062c\u0644\u0648\u06af\u06cc\u0631\u06cc \u06a9\u0646\u062f. \u0645\u062d\u062f\u0648\u062f\u06cc\u062a \u0646\u0631\u062e \u0646\u0642\u0636 \u060c \u0627\u06af\u0631 \u0628\u062e\u0648\u0627\u0647\u062f \u0634\u06a9\u0633\u062a \u0628\u062e\u0648\u0631\u062f \u060c \u0645\u0627 \u062a\u0644\u0627\u0634 \u0647\u0627\u06cc \u0622\u0646\u0647\u0627 \u0631\u0627 \u0645\u062d\u062f\u0648\u062f \u062e\u0648\u0627\u0647\u06cc\u0645 \u06a9\u0631\u062f. \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u0631\u0648\u06cc &#8220;\u0627\u0636\u0627\u0641\u0647 \u06a9\u0631\u062f\u0646 \u062e\u0637 \u0645\u0634\u06cc&#8221; \u06a9\u0644\u06cc\u06a9 \u06a9\u0631\u062f\u0647 \u0648 &#8220;\u0645\u062d\u062f\u0648\u062f \u06a9\u0631\u062f\u0646 \u0646\u0631\u062e&#8221; \u0631\u0627 \u062c\u0633\u062a\u062c\u0648 \u06a9\u0646\u06cc\u062f &#8211; \u062f\u0631 \u0627\u06cc\u0646\u062c\u0627 \u062a\u0646\u0638\u06cc\u0645 \u067e\u06cc\u0634 \u0641\u0631\u0636 \u06a9\u0647 \u0645\u062d\u062f\u0648\u062f\u06cc\u062a \u0647\u0627\u06cc \u0622\u0646 \u062a\u0648\u0633\u0637 IP \u0627\u0633\u062a \u060c \u062f\u0631 \u0647\u0631 \u062f\u0642\u06cc\u0642\u0647 2 \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u0627\u062c\u0627\u0632\u0647 \u0645\u06cc \u062f\u0647\u062f:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight json\"><code><span class=\"p\">{<\/span><span class=\"w\">\n  <\/span><span class=\"nl\">\"export\"<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"s2\">\"RateLimitInboundPolicy\"<\/span><span class=\"p\">,<\/span><span class=\"w\">\n  <\/span><span class=\"nl\">\"module\"<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"s2\">\"$import(@zuplo\/runtime)\"<\/span><span class=\"p\">,<\/span><span class=\"w\">\n  <\/span><span class=\"nl\">\"options\"<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n    <\/span><span class=\"nl\">\"rateLimitBy\"<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"s2\">\"ip\"<\/span><span class=\"p\">,<\/span><span class=\"w\">\n    <\/span><span class=\"nl\">\"requestsAllowed\"<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"mi\">2<\/span><span class=\"p\">,<\/span><span class=\"w\">\n    <\/span><span class=\"nl\">\"timeWindowMinutes\"<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"mi\">1<\/span><span class=\"w\">\n  <\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/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>\u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0631\u0627 \u0648\u0627\u0631\u062f \u06a9\u0646\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\u062c\u062f\u062f\u0627\u064b \u0635\u0641\u062d\u0647 &#8220;\u062a\u0633\u062a&#8221; \u0631\u0627 \u0628\u0627\u0632 \u06a9\u0646\u06cc\u062f \u0648 3 \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u0631\u0627 \u0622\u062a\u0634 \u0628\u0632\u0646\u06cc\u062f. \u0634\u0645\u0627 \u0628\u0627\u06cc\u062f \u0646\u0631\u062e \u0645\u062d\u062f\u0648\u062f \u062f\u0631\u06cc\u0627\u0641\u062a \u06a9\u0646\u06cc\u062f.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/media2.dev.to\/dynamic\/image\/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto\/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fj7w5w0y785i0hebgkgkz.png\" alt=\"\u0646\u0631\u062e \u0645\u062d\u062f\u0648\u062f\" loading=\"lazy\" width=\"800\" height=\"643\" title=\"\"><\/p>\n<p>\u0628\u0646\u0627\u0628\u0631\u0627\u06cc\u0646 \u060c \u0627\u06a9\u0646\u0648\u0646 \u0645\u0627 \u0631\u0648\u0634 \u062e\u0648\u0628\u06cc \u0628\u0631\u0627\u06cc \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u0645\u0627 \u0628\u0631\u0627\u06cc \u062a\u0623\u06cc\u06cc\u062f \u0648 \u062a\u0623\u06cc\u06cc\u062f \u0627\u0639\u062a\u0628\u0627\u0631 \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u0647\u0627\u06cc \u062f\u0631\u06cc\u0627\u0641\u062a\u06cc \u062f\u0627\u0631\u06cc\u0645. \u0645\u0627 \u0647\u0645\u0686\u0646\u06cc\u0646 \u06cc\u06a9 \u0631\u0648\u0634 \u062e\u0648\u0628 \u0628\u0631\u0627\u06cc \u067e\u06cc\u0634\u06af\u0648\u06cc\u06cc \u062f\u0631 \u0628\u0631\u0627\u0628\u0631 \u0645\u0634\u062e\u0635\u0627\u062a OpenAPI \u062e\u0648\u062f \u062f\u0627\u0631\u06cc\u0645 \u0648 \u0646\u0631\u062e \u0627\u06cc\u0646 \u062a\u0644\u0627\u0634 \u0647\u0627 \u0631\u0627 \u0645\u062d\u062f\u0648\u062f \u0645\u06cc \u06a9\u0646\u06cc\u0645. \u0646\u0647 \u062a\u0646\u0647\u0627 \u0627\u06cc\u0646 \u060c \u0628\u0644\u06a9\u0647 Zuplo \u0646\u06cc\u0632 \u0628\u0647 \u0637\u0648\u0631 \u062e\u0648\u062f\u06a9\u0627\u0631 \u0627\u0632 DDOS \u0645\u062d\u0627\u0641\u0638\u062a \u0645\u06cc \u06a9\u0646\u062f \u0648 \u0628\u0627\u0639\u062b \u0645\u06cc \u0634\u0648\u062f API \u0645\u0627 \u062d\u062a\u06cc \u0627\u06cc\u0645\u0646 \u062a\u0631 \u0648 \u062d\u062a\u06cc \u0627\u0645\u0646 \u062a\u0631 \u0627\u0632 \u062f\u0646\u06cc\u0627\u06cc \u062e\u0627\u0631\u062c \u0628\u0627\u0634\u062f. \u062a\u0623\u062e\u06cc\u0631 \u06a9\u0647 \u0627\u0632 \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u0647\u0627\u06cc \u062d\u0645\u0644 \u0648 \u0646\u0642\u0644 \u0627\u0636\u0627\u0641\u0647 \u0645\u06cc \u06a9\u0646\u062f \u0628\u0633\u06cc\u0627\u0631 \u062d\u062f\u0627\u0642\u0644 \u0627\u0633\u062a \u0648 \u0628\u0627 \u0631\u0648\u0634\u06cc \u06a9\u0647 \u06a9\u0627\u0631 \u0645\u06cc \u06a9\u0646\u062f \u060c \u0686\u06cc\u0632\u06cc \u0646\u06cc\u0633\u062a \u06a9\u0647 \u0634\u0645\u0627 \u06cc\u0627 \u06a9\u0627\u0631\u0628\u0631\u0627\u0646 \u062e\u0648\u062f \u0645\u062a\u0648\u062c\u0647 \u0622\u0646 \u0634\u0648\u06cc\u062f.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"%D8%A7%D8%B3%D8%AA%D9%81%D8%A7%D8%AF%D9%87_%D8%A7%D8%B2_API_Laravel\"><\/span>\n<p>  \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 API Laravel<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p><img decoding=\"async\" src=\"https:\/\/media2.dev.to\/dynamic\/image\/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto\/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1pmn87fu3r3gdivpwgsp.png\" alt=\"\u062c\u0639\u0644 \u0644\u0627\u0631\u0627\u0648\u0644\" loading=\"lazy\" width=\"800\" height=\"374\" title=\"\"><\/p>\n<p>\u0627\u06a9\u0646\u0648\u0646 \u06a9\u0647 \u0627\u06cc\u0646 \u0647\u0645\u0647 \u0648\u062c\u0648\u062f \u062f\u0627\u0631\u062f \u060c \u0645\u0627 \u0645\u06cc \u062e\u0648\u0627\u0647\u06cc\u0645 API \u062e\u0648\u062f \u0631\u0627 \u0645\u0633\u062a\u0642\u0631 \u06a9\u0646\u06cc\u0645. \u0627\u06a9\u0646\u0648\u0646 \u060c \u0647\u0646\u06af\u0627\u0645\u06cc \u06a9\u0647 \u0646\u0648\u0628\u062a \u0628\u0647 \u0627\u0633\u062a\u0642\u0631\u0627\u0631 API \u0647\u0627 \u062f\u0631 \u0644\u0627\u0631\u0627\u0648\u0644 \u0645\u06cc \u0631\u0633\u062f \u060c \u0631\u0648\u06cc\u06a9\u0631\u062f\u0647\u0627\u06cc \u0645\u062e\u062a\u0644\u0641\u06cc \u0648\u062c\u0648\u062f \u062f\u0627\u0631\u062f \u06a9\u0647 \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u0627\u0632 \u0622\u0646\u0647\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f. Laravel Forge \u06cc\u06a9 \u06af\u0632\u06cc\u0646\u0647 \u0639\u0627\u0644\u06cc \u0627\u0633\u062a \u0648 \u0628\u0647 \u0637\u0648\u0631 \u062e\u0648\u062f\u06a9\u0627\u0631 \u0634\u0645\u0627 \u0631\u0627 \u0628\u0631\u0627\u06cc \u0632\u06cc\u0631\u0633\u0627\u062e\u062a \u0647\u0627\u06cc \u062e\u0648\u062f \u0628\u0631 \u0627\u0633\u0627\u0633 \u0648\u0628 \u0633\u0627\u06cc\u062a \u0647\u0627\u06cc GitHub \u0645\u0633\u062a\u0642\u0631 \u0645\u06cc \u06a9\u0646\u062f. \u06af\u0632\u06cc\u0646\u0647 \u062f\u06cc\u06af\u0631 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0686\u06cc\u0632\u06cc \u0645\u0627\u0646\u0646\u062f Ploi.io \u0627\u0633\u062a \u06a9\u0647 \u0634\u0628\u06cc\u0647 \u0628\u0647 Laravel Forge \u0627\u0633\u062a \u0627\u0645\u0627 \u062a\u0648\u0633\u0637 \u06cc\u06a9 \u0634\u0631\u06a9\u062a \u0645\u062a\u0641\u0627\u0648\u062a \u0633\u0627\u062e\u062a\u0647 \u0648 \u0646\u06af\u0647\u062f\u0627\u0631\u06cc \u0645\u06cc \u0634\u0648\u062f. \u06cc\u06a9 \u0645\u0648\u0631\u062f \u06a9\u0647 \u0645\u0646 \u062f\u0631 \u0645\u0648\u0631\u062f PLOI \u062f\u0648\u0633\u062a \u062f\u0627\u0631\u0645 \u060c \u0627\u06cc\u0646 \u0627\u0633\u062a \u06a9\u0647 \u0622\u0646\u0647\u0627 \u0628\u06cc\u0634 \u0627\u0632 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u06cc\u06a9 \u0628\u0631\u0646\u0627\u0645\u0647 Laravel \u0628\u0627 \u0686\u0646\u062f \u0627\u0628\u0632\u0627\u0631 \u0627\u0636\u0627\u0641\u06cc \u0633\u0631\u0645\u0627\u06cc\u0647 \u06af\u0630\u0627\u0631\u06cc \u06a9\u0631\u062f\u0647 \u0627\u0646\u062f. \u0622\u0646\u0647\u0627 \u0628\u0647 \u062c\u0632\u0626\u06cc\u0627\u062a \u0628\u0633\u06cc\u0627\u0631 \u062e\u0648\u0628\u06cc \u062f\u0631 \u0645\u0648\u0631\u062f \u0686\u06af\u0648\u0646\u06af\u06cc \u0645\u062f\u06cc\u0631\u06cc\u062a \u0645\u0624\u062b\u0631 \u0632\u06cc\u0631\u0633\u0627\u062e\u062a \u0647\u0627 \u0648 \u0628\u0631\u0646\u0627\u0645\u0647 \u0647\u0627\u06cc \u06a9\u0627\u0631\u0628\u0631\u062f\u06cc \u062e\u0648\u062f \u0627\u0632 \u06a9\u0646\u0633\u0648\u0644 \u062e\u0648\u062f \u0631\u0641\u062a\u0647 \u0627\u0646\u062f.<\/p>\n<p>\u0627\u06af\u0631 \u0647\u06cc\u0686 \u06cc\u06a9 \u0627\u0632 \u0627\u06cc\u0646 \u0645\u0648\u0627\u0631\u062f\u06cc \u06a9\u0647 \u0634\u0645\u0627 \u0628\u0647 \u062f\u0646\u0628\u0627\u0644 \u0622\u0646 \u0647\u0633\u062a\u06cc\u062f \u060c \u0646\u0633\u062e\u0647 \u0622\u06cc\u0646\u062f\u0647 Laravel Cloud \u06a9\u0627\u0645\u0644 \u062e\u0648\u0627\u0647\u062f \u0628\u0648\u062f. \u0634\u0645\u0627 \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u062f\u0631 \u06a9\u0645\u062a\u0631 \u0627\u0632 60 \u062b\u0627\u0646\u06cc\u0647 \u060c \u0628\u0647 \u06cc\u06a9 \u0632\u06cc\u0631\u0633\u0627\u062e\u062a \u0645\u0642\u06cc\u0627\u0633 \u067e\u0630\u06cc\u0631 \u06a9\u0647 \u062a\u0648\u0633\u0637 \u062e\u0648\u062f \u062a\u06cc\u0645 \u0644\u0627\u0631\u0627\u0648\u0644 \u06a9\u0627\u0645\u0644\u0627\u064b \u0627\u062f\u0627\u0631\u0647 \u0645\u06cc \u0634\u0648\u062f \u060c \u0628\u0647 \u0627\u0639\u0632\u0627\u0645 \u0635\u0641\u0631 \u06a9\u0627\u0647\u0634 \u0632\u0645\u0627\u0646 \u0628\u0631\u0633\u06cc\u062f. \u0627\u0632 \u06af\u0632\u0627\u0631\u0634 \u0647\u0627\u06cc\u06cc \u06a9\u0647 \u0645\u0646 \u062f\u06cc\u062f\u0647 \u0627\u0645 \u060c \u0648\u0627\u0642\u0639\u0627\u064b \u0628\u0647 \u0647\u0645\u0627\u0646 \u0627\u0646\u062f\u0627\u0632\u0647 \u06a9\u0647 \u0628\u0647 \u0646\u0638\u0631 \u0645\u06cc \u0631\u0633\u062f \u062e\u0648\u0628 \u0627\u0633\u062a &#8211; \u0628\u0627 \u0627\u06cc\u0646 \u062d\u0627\u0644 \u060c \u0628\u0627 \u0627\u0645\u062a\u062d\u0627\u0646 \u06a9\u0631\u062f\u0646 \u0622\u0646 \u0641\u0642\u0637 \u0645\u06cc \u062a\u0648\u0627\u0646\u0645 \u062a\u0635\u0631\u06cc\u062d \u06a9\u0646\u0645 \u06a9\u0647 \u0686\u0642\u062f\u0631 \u062e\u0648\u0628 \u062e\u0648\u0627\u0647\u062f \u0628\u0648\u062f.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"%D9%BE%DB%8C%DA%86%DB%8C%D8%AF%D9%86\"><\/span>\n<p>  \u067e\u06cc\u0686\u06cc\u062f\u0646<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u0627\u06cc\u0646 \u0627\u0628\u0632\u0627\u0631\u0647\u0627\u06cc \u062e\u0648\u062f\u06a9\u0627\u0631 \u0628\u0647 \u0647\u0631 \u0631\u0648\u0634\u06cc \u06a9\u0647 \u0628\u0631\u0627\u06cc \u0627\u0633\u062a\u0642\u0631\u0627\u0631 API \u062e\u0648\u062f \u0627\u0646\u062a\u062e\u0627\u0628 \u06a9\u0646\u06cc\u062f \u060c \u0627\u0633\u062a\u0631\u0633 \u060c \u0641\u0634\u0627\u0631 \u0648 \u062e\u0637\u0631 \u0631\u0627 \u0627\u0632 \u0627\u0633\u062a\u0642\u0631\u0627\u0631 \u062e\u0627\u0631\u062c \u0645\u06cc \u06a9\u0646\u0646\u062f. \u062a\u0627 \u0632\u0645\u0627\u0646\u06cc \u06a9\u0647 \u06cc\u06a9 \u0645\u062c\u0645\u0648\u0639\u0647 \u062a\u0633\u062a \u06a9\u0627\u0641\u06cc \u062f\u0631 \u062e\u0637 \u0644\u0648\u0644\u0647 CI \u062e\u0648\u062f \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u06cc\u062f \u060c \u0645\u062d\u0631\u06a9 \u0647\u0627 \u0628\u0631\u0627\u06cc \u0627\u0633\u062a\u0642\u0631\u0627\u0631 \u0622\u062e\u0631\u06cc\u0646 \u0646\u0633\u062e\u0647 \u0628\u0631\u0627\u06cc \u0634\u0645\u0627 \u0627\u0631\u0633\u0627\u0644 \u0645\u06cc \u0634\u0648\u0646\u062f. \u0633\u067e\u0633 Zuplo \u0631\u0627 \u0628\u0627 \u0645\u0634\u062e\u0635\u0627\u062a \u062c\u062f\u06cc\u062f OpenAPI \u062e\u0648\u062f \u0628\u0647 \u0631\u0648\u0632 \u06a9\u0646\u06cc\u062f \u060c \u0628\u0646\u0634\u06cc\u0646\u06cc\u062f \u060c \u0627\u0632 API \u062e\u0648\u062f \u0644\u0630\u062a \u0628\u0628\u0631\u06cc\u062f \u0648 \u0628\u0627 \u0633\u0631\u0639\u062a \u06a9\u0645\u062a\u0631\u06cc \u062e\u0637\u0627\u06cc \u062e\u0648\u062f \u0631\u0627 \u062f\u0631\u06cc\u0627\u0641\u062a \u06a9\u0646\u06cc\u062f \u0632\u06cc\u0631\u0627 Zuplo \u0634\u0631\u0648\u0639 \u0628\u0647 \u0641\u06cc\u0644\u062a\u0631 \u06a9\u0631\u062f\u0646 \u062f\u0631\u062e\u0648\u0627\u0633\u062a \u0647\u0627\u06cc \u0628\u062f \u0628\u0631\u0627\u06cc \u0634\u0645\u0627 \u0645\u06cc \u06a9\u0646\u062f. \u067e\u0633 \u0627\u0632 \u0627\u0633\u062a\u0642\u0631\u0627\u0631 \u060c \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u0633\u06cc\u0627\u0647\u0647\u0647\u0627 \u0648 \u062a\u062c\u0632\u06cc\u0647 \u0648 \u062a\u062d\u0644\u06cc\u0644 \u0647\u0627 \u0631\u0627 \u062f\u0631 \u062f\u0627\u0634\u0628\u0648\u0631\u062f Zuplo \u062e\u0648\u062f \u062a\u0645\u0627\u0634\u0627 \u06a9\u0646\u06cc\u062f \u062a\u0627 \u062f\u0631\u06a9 \u06a9\u0646\u06cc\u062f \u06a9\u0647 \u0686\u06af\u0648\u0646\u0647 \u0627\u0632 API \u0634\u0645\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc \u0634\u0648\u062f \u060c \u0648 \u0628\u0631\u0627\u0633\u0627\u0633 \u0646\u0633\u0628\u062a \u062e\u0637\u0627 \u0648 \u0632\u0645\u0627\u0646 \u067e\u0627\u0633\u062e \u060c \u0686\u0647 \u0645\u0646\u0627\u0637\u0642\u06cc \u0631\u0627 \u0628\u0631\u0627\u06cc \u0628\u0647\u0628\u0648\u062f \u0646\u06cc\u0627\u0632 \u062f\u0627\u0631\u06cc\u062f.<\/p>\n<p>\u0645\u0646 \u0645\u0637\u0645\u0626\u0646\u0627\u064b \u0645\u06cc \u062f\u0627\u0646\u0645 \u06a9\u0647 API \u0628\u0639\u062f\u06cc \u06a9\u0647 \u0645\u0646 \u0645\u06cc \u0633\u0627\u0632\u0645 \u0627\u0632 Zuplo \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc \u06a9\u0646\u062f \u062a\u0627 \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u06cc\u06a9 \u062f\u0631\u0648\u0627\u0632\u0647 \u0644\u0628\u0647 \u0628\u0631\u0627\u06cc \u067e\u0631\u0648\u0698\u0647 \u0645\u0646 \u0639\u0645\u0644 \u06a9\u0646\u062f \u062a\u0627 \u0645\u0646 \u0646\u0647 \u062a\u0646\u0647\u0627 \u0634\u0628\u0627\u0646\u0647 \u0628\u0627 \u062e\u0648\u0634\u062d\u0627\u0644\u06cc \u0628\u062e\u0648\u0627\u0628\u0645 \u0628\u0644\u06a9\u0647 \u0639\u0645\u0644\u06a9\u0631\u062f API \u062e\u0648\u062f \u0631\u0627 \u0646\u06cc\u0632 \u0628\u0631\u0631\u0633\u06cc \u0645\u06cc \u06a9\u0646\u0645. \u0686\u0631\u0627 \u0622\u0646 \u0631\u0627 \u0628\u0631\u0627\u06cc API \u0628\u0639\u062f\u06cc \u062e\u0648\u062f \u0627\u0645\u062a\u062d\u0627\u0646 \u0646\u06a9\u0646\u06cc\u062f\u061f<\/p>\n<\/p><\/div>\n","protected":false},"excerpt":{"rendered":"<p>\u0627\u06cc\u0646 \u0645\u0642\u0627\u0644\u0647 \u062a\u0648\u0633\u0637> \u0627\u0633\u062a\u06cc\u0648 \u0645\u06a9 \u062f\u06af\u0627\u0644 \u060c \u0633\u0627\u0632\u0646\u062f\u0647 \u062f\u06cc\u0631\u06cc\u0646\u0647> PHP\/Laravel \u0648 \u062f\u0648\u0633\u062a Zuplo \u0646\u0648\u0634\u062a\u0647 \u0634\u062f\u0647 \u0627\u0633\u062a. \u062a\u0645\u0627\u0645 \u0646\u0638\u0631\u0627\u062a \u0628\u06cc\u0627\u0646 \u0634\u062f\u0647 \u062e\u0648\u062f \u0627\u0648\u0633\u062a. \u0644\u0627\u0631\u0627\u0648\u0644 \u0648 \u0632\u0648\u067e\u0644\u0648 \u0645\u0633\u0627\u0628\u0642\u0647 \u0627\u06cc \u0627\u0633\u062a \u06a9\u0647 \u062f\u0631 \u0628\u0647\u0634\u062a \u200b\u200b\u0633\u0627\u062e\u062a\u0647 \u0634\u062f\u0647 \u0627\u0633\u062a \u0648 \u0647\u0646\u0648\u0632 \u0647\u06cc\u0686 \u06a9\u0633 \u0627\u0632 \u0622\u0646 \u0646\u0645\u06cc \u062f\u0627\u0646\u062f. \u0645\u0646 \u0641\u06a9\u0631 \u06a9\u0631\u062f\u0645 \u0627\u06a9\u0646\u0648\u0646 \u0632\u0645\u0627\u0646 \u062e\u0648\u0628\u06cc \u0628\u0631\u0627\u06cc \u0637\u06cc \u06a9\u0631\u062f\u0646 \u0686\u06af\u0648\u0646\u06af\u06cc \u0628\u0627\u0644\u0627 \u0628\u0631\u062f\u0646 \u0628\u0627\u0632\u06cc &hellip;<\/p>\n","protected":false},"author":2,"featured_media":98106,"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-98105","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\/98105","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=98105"}],"version-history":[{"count":0,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/posts\/98105\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/media\/98106"}],"wp:attachment":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/media?parent=98105"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/categories?post=98105"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/tags?post=98105"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}