[{"data":1,"prerenderedAt":239},["ShallowReactive",2],{"content:\u002F05-web\u002Fresources":3},{"title":4,"description":5,"path":6,"body":7},"Дополнительные материалы","Русскоязычные материалы для разработки HTTP API на Go: стандартная библиотека, Echo, REST, статус-коды и практические проекты.","\u002F05-web\u002Fresources",{"type":8,"value":9,"toc":231},"minimark",[10,15,18,23,96,100,140,144,186,190],[11,12,14],"h1",{"id":13},"дополнительные-материалы-веб-разработка","Дополнительные материалы: Веб-разработка",[16,17,5],"p",{},[19,20,22],"h2",{"id":21},"пакет-http-в-go","Пакет http в Go",[24,25,26,49,68,80,88],"ul",{},[27,28,29,36,37,41,42,41,45,48],"li",{},[30,31,35],"a",{"href":32,"rel":33},"https:\u002F\u002Fhabr.com\u002Fru\u002Farticles\u002F919348\u002F",[34],"nofollow","net\u002Fhttp: разбираем работу сервера под капотом | Хабр"," — подробный разбор ",[38,39,40],"code",{},"ListenAndServe",", ",[38,43,44],{},"Handler",[38,46,47],{},"ServeMux",", соединений и горутин.",[27,50,51,56,57,41,60,63,64,67],{},[30,52,55],{"href":53,"rel":54},"https:\u002F\u002Fhabr.com\u002Fru\u002Farticles\u002F886766\u002F",[34],"HTTP-сервер на Go | Хабр"," — простой старт для ",[38,58,59],{},"http.HandleFunc",[38,61,62],{},"ResponseWriter"," и ",[38,65,66],{},"Request",".",[27,69,70,75,76,79],{},[30,71,74],{"href":72,"rel":73},"https:\u002F\u002Fhabr.com\u002Fru\u002Farticles\u002F902496\u002F",[34],"Пишем web-фреймворк на Go | Хабр"," — помогает понять, как поверх ",[38,77,78],{},"net\u002Fhttp"," появляются роутинг, middleware и группы маршрутов.",[27,81,82,87],{},[30,83,86],{"href":84,"rel":85},"https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=h0zxh2TPN_I",[34],"Golang: все основы за 4 часа | Maksim Zhashkevych, YouTube"," — большой вводный ролик; ближе к финалу есть базовые примеры HTTP.",[27,89,90,95],{},[30,91,94],{"href":92,"rel":93},"https:\u002F\u002Fpkg.go.dev\u002Fnet\u002Fhttp",[34],"Документация net\u002Fhttp"," — официальный справочник всё равно полезен, когда нужно точно проверить API стандартной библиотеки.",[19,97,99],{"id":98},"основы-бэкенда-echo","Основы бэкенда, Echo",[24,101,102,110,118,126,134],{},[27,103,104,109],{},[30,105,108],{"href":106,"rel":107},"https:\u002F\u002Fecho.labstack.com\u002Fdocs",[34],"Echo: Guide"," — официальная документация по фреймворку, маршрутам, middleware и структуре приложения.",[27,111,112,117],{},[30,113,116],{"href":114,"rel":115},"https:\u002F\u002Fecho.labstack.com\u002Fdocs\u002Frouting",[34],"Echo: Routing"," — path-параметры, группы маршрутов и особенности роутера.",[27,119,120,125],{},[30,121,124],{"href":122,"rel":123},"https:\u002F\u002Fecho.labstack.com\u002Fdocs\u002Fcategory\u002Fmiddleware",[34],"Echo: Middleware"," — встроенные middleware и схема подключения своих обработчиков.",[27,127,128,133],{},[30,129,132],{"href":130,"rel":131},"https:\u002F\u002Fecho.labstack.com\u002Fdocs\u002Fbinding",[34],"Echo: Binding"," — как читать JSON, query, path и form-параметры в структуры.",[27,135,136,139],{},[30,137,74],{"href":72,"rel":138},[34]," — полезно прочитать рядом с Echo, чтобы не воспринимать фреймворк как магию.",[19,141,143],{"id":142},"rest-api","REST API",[24,145,146,154,162,170,178],{},[27,147,148,153],{},[30,149,152],{"href":150,"rel":151},"https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=08-RlaLgWx4",[34],"Что такое REST на самом деле | Merion Academy, YouTube"," — хорошее русскоязычное объяснение ресурсов, методов и ограничений REST.",[27,155,156,161],{},[30,157,160],{"href":158,"rel":159},"https:\u002F\u002Fhabr.com\u002Fru\u002Farticles\u002F739808\u002F",[34],"HTTP API & REST: терминология и мифология REST | Хабр"," — аккуратно раскладывает REST, HTTP-запросы, статус-коды и типичные заблуждения.",[27,163,164,169],{},[30,165,168],{"href":166,"rel":167},"https:\u002F\u002Fhabr.com\u002Fru\u002Farticles\u002F865040\u002F",[34],"HTTP-запросы: структура, методы и коды состояния | Хабр"," — быстрый повтор протокола перед проектированием API.",[27,171,172,177],{},[30,173,176],{"href":174,"rel":175},"https:\u002F\u002Fhabr.com\u002Fru\u002Farticles\u002F533606\u002F",[34],"Проблема статус-кодов HTTP | Хабр"," — полезно для дискуссии, где заканчивается “правильный код” и начинается реальная практика API.",[27,179,180,185],{},[30,181,184],{"href":182,"rel":183},"https:\u002F\u002Fspec.openapis.org\u002Foas\u002Flatest.html",[34],"OpenAPI Specification"," — официальный стандарт описания HTTP API; пригодится для документации и контрактов.",[19,187,189],{"id":188},"итоговый-проект-todo","Итоговый проект ToDo",[24,191,192,200,208,216,223],{},[27,193,194,199],{},[30,195,198],{"href":196,"rel":197},"https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=rCJvW2xgnk0",[34],"Пишем REST API сервис на Go: ультимативный гайд | Николай Тузов, YouTube"," — полноценный проектный разбор API-сервиса на Go с тестами и деплоем.",[27,201,202,207],{},[30,203,206],{"href":204,"rel":205},"https:\u002F\u002Fhabr.com\u002Fru\u002Farticles\u002F935102\u002F",[34],"Построение REST API на Go | Хабр"," — простой CRUD API, удобный как дополнительный пример после ToDo.",[27,209,210,215],{},[30,211,214],{"href":212,"rel":213},"https:\u002F\u002Fhabr.com\u002Fru\u002Farticles\u002F848596\u002F",[34],"Транзакции в БД на Go с использованием многослойной архитектуры | Хабр"," — важно для финального проекта, когда логика начинает выходить за один handler.",[27,217,218,222],{},[30,219,221],{"href":220},"..\u002F10-databases\u002F07-go-postgres-pgx-sqlc-squirrel","Go и PostgreSQL: pgx, sqlc, Squirrel | этот курс"," — вернись к этой теме, когда захочешь подключить ToDo к реальной БД.",[27,224,225,230],{},[30,226,229],{"href":227,"rel":228},"https:\u002F\u002Fpkg.go.dev\u002Fnet\u002Fhttp\u002Fhttptest",[34],"Документация httptest"," — официальный пакет для тестов HTTP-обработчиков без настоящего сетевого сервера.",{"title":232,"searchDepth":233,"depth":233,"links":234},"",2,[235,236,237,238],{"id":21,"depth":233,"text":22},{"id":98,"depth":233,"text":99},{"id":142,"depth":233,"text":143},{"id":188,"depth":233,"text":189},1781022064432]