[{"data":1,"prerenderedAt":1125},["ShallowReactive",2],{"navigation_docs_hu":3,"-hu-cli-add-handler":442,"-hu-cli-add-handler-surround":1120},[4,45,60,81,112,129,146,173,197,213,242,280,357,373,385,404,430],{"title":5,"icon":6,"path":7,"stem":8,"children":9,"page":44},"Kezdő lépések","i-lucide-rocket","\u002Fhu\u002Fgetting-started","hu\u002F1.getting-started",[10,15,20,24,29,34,39],{"title":11,"path":12,"stem":13,"icon":14},"Bevezetés","\u002Fhu\u002Fgetting-started\u002Fintroduction","hu\u002F1.getting-started\u002F1.introduction","i-lucide-house",{"title":16,"path":17,"stem":18,"icon":19},"Laravelből érkezőknek","\u002Fhu\u002Fgetting-started\u002Fcoming-from-laravel","hu\u002F1.getting-started\u002F2.coming-from-laravel","i-lucide-arrow-right-left",{"title":21,"path":22,"stem":23,"icon":19},"Symfonyból érkezőknek","\u002Fhu\u002Fgetting-started\u002Fcoming-from-symfony","hu\u002F1.getting-started\u002F3.coming-from-symfony",{"title":25,"path":26,"stem":27,"icon":28},"Telepítés","\u002Fhu\u002Fgetting-started\u002Finstallation","hu\u002F1.getting-started\u002F4.installation","i-lucide-download",{"title":30,"path":31,"stem":32,"icon":33},"Az első modulod","\u002Fhu\u002Fgetting-started\u002Ffirst-module","hu\u002F1.getting-started\u002F5.first-module","i-lucide-package-plus",{"title":35,"path":36,"stem":37,"icon":38},"Projektstruktúra","\u002Fhu\u002Fgetting-started\u002Fproject-structure","hu\u002F1.getting-started\u002F6.project-structure","i-lucide-folder-tree",{"title":40,"path":41,"stem":42,"icon":43},"A shop mintaalkalmazás","\u002Fhu\u002Fgetting-started\u002Fsample-app","hu\u002F1.getting-started\u002F7.sample-app","i-lucide-shopping-cart",false,{"title":46,"icon":47,"path":48,"stem":49,"children":50,"page":44},"queue","i-lucide-layers","\u002Fhu\u002Fqueue","hu\u002F10.queue",[51,56],{"title":52,"path":53,"stem":54,"icon":55},"Áttekintés","\u002Fhu\u002Fqueue\u002Foverview","hu\u002F10.queue\u002F1.overview","i-lucide-list-ordered",{"title":57,"path":58,"stem":59,"icon":47},"Taskok","\u002Fhu\u002Fqueue\u002Ftasks","hu\u002F10.queue\u002F2.tasks",{"title":61,"icon":62,"path":63,"stem":64,"children":65,"page":44},"events","i-lucide-workflow","\u002Fhu\u002Fevents","hu\u002F11.events",[66,71,76],{"title":67,"path":68,"stem":69,"icon":70},"Események","\u002Fhu\u002Fevents\u002Foverview","hu\u002F11.events\u002F1.overview","i-lucide-radio",{"title":72,"path":73,"stem":74,"icon":75},"Outbox","\u002Fhu\u002Fevents\u002Foutbox","hu\u002F11.events\u002F2.outbox","i-lucide-inbox",{"title":77,"path":78,"stem":79,"icon":80},"Ütemezés","\u002Fhu\u002Fevents\u002Fscheduler","hu\u002F11.events\u002F3.scheduler","i-lucide-calendar-clock",{"title":82,"icon":83,"path":84,"stem":85,"children":86,"page":44},"auth","i-lucide-shield-check","\u002Fhu\u002Fauth","hu\u002F12.auth",[87,92,97,102,107],{"title":88,"path":89,"stem":90,"icon":91},"Autentikáció","\u002Fhu\u002Fauth\u002Foverview","hu\u002F12.auth\u002F1.overview","i-lucide-key-round",{"title":93,"path":94,"stem":95,"icon":96},"RBAC","\u002Fhu\u002Fauth\u002Frbac","hu\u002F12.auth\u002F2.rbac","i-lucide-users",{"title":98,"path":99,"stem":100,"icon":101},"Policy-k","\u002Fhu\u002Fauth\u002Fpolicy","hu\u002F12.auth\u002F3.policy","i-lucide-gavel",{"title":103,"path":104,"stem":105,"icon":106},"Az auth önálló használata","\u002Fhu\u002Fauth\u002Fstandalone","hu\u002F12.auth\u002F4.standalone","i-lucide-plug",{"title":108,"path":109,"stem":110,"icon":111},"Social login goth-tal, önállóan","\u002Fhu\u002Fauth\u002Fsocial-standalone","hu\u002F12.auth\u002F5.social-standalone","i-lucide-log-in",{"title":113,"icon":114,"path":115,"stem":116,"children":117,"page":44},"mail","i-lucide-mail","\u002Fhu\u002Fmail","hu\u002F13.mail",[118,121,125],{"title":52,"path":119,"stem":120,"icon":114},"\u002Fhu\u002Fmail\u002Foverview","hu\u002F13.mail\u002F1.overview",{"title":122,"path":123,"stem":124,"icon":114},"SMTP","\u002Fhu\u002Fmail\u002Fsmtp","hu\u002F13.mail\u002F2.smtp",{"title":126,"path":127,"stem":128,"icon":114},"MJML","\u002Fhu\u002Fmail\u002Fmjml","hu\u002F13.mail\u002F3.mjml",{"title":130,"icon":131,"path":132,"stem":133,"children":134,"page":44},"notify","i-lucide-bell","\u002Fhu\u002Fnotify","hu\u002F14.notify",[135,138,142],{"title":52,"path":136,"stem":137,"icon":131},"\u002Fhu\u002Fnotify\u002Foverview","hu\u002F14.notify\u002F1.overview",{"title":139,"path":140,"stem":141,"icon":131},"Database csatorna","\u002Fhu\u002Fnotify\u002Fdatabase","hu\u002F14.notify\u002F2.database",{"title":143,"path":144,"stem":145,"icon":131},"Broadcast csatorna","\u002Fhu\u002Fnotify\u002Fbroadcast","hu\u002F14.notify\u002F3.broadcast",{"title":147,"icon":148,"path":149,"stem":150,"children":151,"page":44},"storage","i-lucide-hard-drive","\u002Fhu\u002Fstorage","hu\u002F15.storage",[152,155,159,163,168],{"title":52,"path":153,"stem":154,"icon":148},"\u002Fhu\u002Fstorage\u002Foverview","hu\u002F15.storage\u002F1.overview",{"title":156,"path":157,"stem":158},"Disk API","\u002Fhu\u002Fstorage\u002Fdisk-api","hu\u002F15.storage\u002F2.disk-api",{"title":160,"path":161,"stem":162,"icon":148},"Memória és helyi lemez","\u002Fhu\u002Fstorage\u002Flocal","hu\u002F15.storage\u002F3.local",{"title":164,"path":165,"stem":166,"icon":167},"S3","\u002Fhu\u002Fstorage\u002Fs3","hu\u002F15.storage\u002F4.s3","i-lucide-cloud",{"title":169,"path":170,"stem":171,"icon":172},"Tesztelés","\u002Fhu\u002Fstorage\u002Ftesting","hu\u002F15.storage\u002F5.testing","i-lucide-flask-conical",{"title":174,"icon":175,"path":176,"stem":177,"children":178,"page":44},"telemetry","i-lucide-activity","\u002Fhu\u002Ftelemetry","hu\u002F16.telemetry",[179,182,187,192],{"title":52,"path":180,"stem":181,"icon":175},"\u002Fhu\u002Ftelemetry\u002Foverview","hu\u002F16.telemetry\u002F1.overview",{"title":183,"path":184,"stem":185,"icon":186},"Logolás","\u002Fhu\u002Ftelemetry\u002Flogging","hu\u002F16.telemetry\u002F2.logging","i-lucide-scroll-text",{"title":188,"path":189,"stem":190,"icon":191},"OpenTelemetry","\u002Fhu\u002Ftelemetry\u002Fopentelemetry","hu\u002F16.telemetry\u002F3.opentelemetry","i-lucide-radar",{"title":193,"path":194,"stem":195,"icon":196},"Sentry","\u002Fhu\u002Ftelemetry\u002Fsentry","hu\u002F16.telemetry\u002F4.sentry","i-lucide-bug",{"title":198,"icon":199,"path":200,"stem":201,"children":202,"page":44},"Referencia","i-lucide-book-open","\u002Fhu\u002Freference","hu\u002F17.reference",[203,208],{"title":204,"path":205,"stem":206,"icon":207},"Konfiguráció","\u002Fhu\u002Freference\u002Fconfiguration","hu\u002F17.reference\u002F1.configuration","i-lucide-settings",{"title":209,"path":210,"stem":211,"icon":212},"Külső függőségek","\u002Fhu\u002Freference\u002Fdependencies","hu\u002F17.reference\u002F2.dependencies","i-lucide-package",{"title":214,"icon":215,"path":216,"stem":217,"children":218,"page":44},"Koncepciók","i-lucide-lightbulb","\u002Fhu\u002Fconcepts","hu\u002F2.concepts",[219,223,228,232,237],{"title":220,"path":221,"stem":222,"icon":47},"Architektúra","\u002Fhu\u002Fconcepts\u002Farchitecture","hu\u002F2.concepts\u002F1.architecture",{"title":224,"path":225,"stem":226,"icon":227},"Hibamodell","\u002Fhu\u002Fconcepts\u002Ferror-model","hu\u002F2.concepts\u002F2.error-model","i-lucide-shield-alert",{"title":204,"path":229,"stem":230,"icon":231},"\u002Fhu\u002Fconcepts\u002Fconfiguration","hu\u002F2.concepts\u002F3.configuration","i-lucide-settings-2",{"title":233,"path":234,"stem":235,"icon":236},"Codegen pipeline","\u002Fhu\u002Fconcepts\u002Fcodegen-pipeline","hu\u002F2.concepts\u002F4.codegen-pipeline","i-lucide-file-json",{"title":238,"path":239,"stem":240,"icon":241},"Design patternek","\u002Fhu\u002Fconcepts\u002Fdesign-patterns","hu\u002F2.concepts\u002F5.design-patterns","i-lucide-puzzle",{"title":243,"icon":244,"path":245,"stem":246,"children":247,"page":44},"A kit","i-lucide-box","\u002Fhu\u002Fkit","hu\u002F3.kit",[248,252,257,262,267,271,276],{"title":249,"path":250,"stem":251,"icon":244},"A kit áttekintése","\u002Fhu\u002Fkit\u002Foverview","hu\u002F3.kit\u002F1.overview",{"title":253,"path":254,"stem":255,"icon":256},"Alkalmazás-életciklus","\u002Fhu\u002Fkit\u002Fapp","hu\u002F3.kit\u002F2.app","i-lucide-power",{"title":258,"path":259,"stem":260,"icon":261},"Szerver","\u002Fhu\u002Fkit\u002Fserver","hu\u002F3.kit\u002F3.server","i-lucide-server",{"title":263,"path":264,"stem":265,"icon":266},"Worker","\u002Fhu\u002Fkit\u002Fworker","hu\u002F3.kit\u002F4.worker","i-lucide-cog",{"title":268,"path":269,"stem":270,"icon":70},"Realtime","\u002Fhu\u002Fkit\u002Frealtime","hu\u002F3.kit\u002F5.realtime",{"title":272,"path":273,"stem":274,"icon":275},"Migrációk","\u002Fhu\u002Fkit\u002Fmigrations","hu\u002F3.kit\u002F6.migrations","i-lucide-file-stack",{"title":277,"path":278,"stem":279,"icon":111},"Social login","\u002Fhu\u002Fkit\u002Fsocial-login","hu\u002F3.kit\u002F7.social-login",{"title":281,"icon":282,"path":283,"stem":284,"children":285,"page":44},"CLI referencia","i-lucide-terminal","\u002Fhu\u002Fcli","hu\u002F4.cli",[286,289,294,299,304,309,314,319,324,329,334,338,343,348,352],{"title":52,"path":287,"stem":288,"icon":282},"\u002Fhu\u002Fcli\u002Foverview","hu\u002F4.cli\u002F1.overview",{"title":290,"path":291,"stem":292,"icon":293},"add db","\u002Fhu\u002Fcli\u002Fadd-db","hu\u002F4.cli\u002F10.add-db","i-lucide-database-zap",{"title":295,"path":296,"stem":297,"icon":298},"add compose \u002F add docker","\u002Fhu\u002Fcli\u002Fadd-compose","hu\u002F4.cli\u002F11.add-compose","i-lucide-container",{"title":300,"path":301,"stem":302,"icon":303},"add mail","\u002Fhu\u002Fcli\u002Fadd-mail","hu\u002F4.cli\u002F12.add-mail","i-lucide-mail-plus",{"title":305,"path":306,"stem":307,"icon":308},"add notification","\u002Fhu\u002Fcli\u002Fadd-notification","hu\u002F4.cli\u002F13.add-notification","i-lucide-bell-plus",{"title":310,"path":311,"stem":312,"icon":313},"add realtime","\u002Fhu\u002Fcli\u002Fadd-realtime","hu\u002F4.cli\u002F14.add-realtime","i-lucide-radio-tower",{"title":315,"path":316,"stem":317,"icon":318},"add seeder","\u002Fhu\u002Fcli\u002Fadd-seeder","hu\u002F4.cli\u002F15.add-seeder","i-lucide-sprout",{"title":320,"path":321,"stem":322,"icon":323},"new project","\u002Fhu\u002Fcli\u002Fnew-project","hu\u002F4.cli\u002F2.new-project","i-lucide-folder-plus",{"title":325,"path":326,"stem":327,"icon":328},"new module","\u002Fhu\u002Fcli\u002Fnew-module","hu\u002F4.cli\u002F3.new-module","i-lucide-blocks",{"title":330,"path":331,"stem":332,"icon":333},"add surface","\u002Fhu\u002Fcli\u002Fadd-surface","hu\u002F4.cli\u002F4.add-surface","i-lucide-layers-2",{"title":335,"path":336,"stem":337,"icon":244},"add core","\u002Fhu\u002Fcli\u002Fadd-core","hu\u002F4.cli\u002F5.add-core",{"title":339,"path":340,"stem":341,"icon":342},"add handler","\u002Fhu\u002Fcli\u002Fadd-handler","hu\u002F4.cli\u002F6.add-handler","i-lucide-webhook",{"title":344,"path":345,"stem":346,"icon":347},"new migration","\u002Fhu\u002Fcli\u002Fnew-migration","hu\u002F4.cli\u002F7.new-migration","i-lucide-file-plus",{"title":349,"path":350,"stem":351,"icon":266},"worker generátorok","\u002Fhu\u002Fcli\u002Fworker-generators","hu\u002F4.cli\u002F8.worker-generators",{"title":353,"path":354,"stem":355,"icon":356},"upgrade templates","\u002Fhu\u002Fcli\u002Fupgrade-templates","hu\u002F4.cli\u002F9.upgrade-templates","i-lucide-refresh-cw",{"title":358,"icon":227,"path":359,"stem":360,"children":361,"page":44},"errs","\u002Fhu\u002Ferrs","hu\u002F5.errs",[362,365,369],{"title":52,"path":363,"stem":364,"icon":227},"\u002Fhu\u002Ferrs\u002Foverview","hu\u002F5.errs\u002F1.overview",{"title":366,"path":367,"stem":368},"API","\u002Fhu\u002Ferrs\u002Fapi","hu\u002F5.errs\u002F2.api",{"title":370,"path":371,"stem":372,"icon":227},"Integráció","\u002Fhu\u002Ferrs\u002Fintegration","hu\u002F5.errs\u002F3.integration",{"title":374,"icon":231,"path":375,"stem":376,"children":377,"page":44},"envconf","\u002Fhu\u002Fenvconf","hu\u002F6.envconf",[378,381],{"title":52,"path":379,"stem":380,"icon":231},"\u002Fhu\u002Fenvconf\u002Foverview","hu\u002F6.envconf\u002F1.overview",{"title":382,"path":383,"stem":384},"Receptek","\u002Fhu\u002Fenvconf\u002Frecipes","hu\u002F6.envconf\u002F2.recipes",{"title":386,"icon":387,"path":388,"stem":389,"children":390,"page":44},"httperr","i-lucide-globe","\u002Fhu\u002Fhttperr","hu\u002F7.httperr",[391,394,399],{"title":52,"path":392,"stem":393,"icon":387},"\u002Fhu\u002Fhttperr\u002Foverview","hu\u002F7.httperr\u002F1.overview",{"title":395,"path":396,"stem":397,"icon":398},"Hibaválaszok","\u002Fhu\u002Fhttperr\u002Ferror-responses","hu\u002F7.httperr\u002F2.error-responses","i-lucide-octagon-alert",{"title":400,"path":401,"stem":402,"icon":403},"Validáció","\u002Fhu\u002Fhttperr\u002Fvalidation","hu\u002F7.httperr\u002F3.validation","i-lucide-badge-check",{"title":405,"icon":406,"path":407,"stem":408,"children":409,"page":44},"dbx","i-lucide-database","\u002Fhu\u002Fdbx","hu\u002F8.dbx",[410,413,417,421,426],{"title":52,"path":411,"stem":412,"icon":406},"\u002Fhu\u002Fdbx\u002Foverview","hu\u002F8.dbx\u002F1.overview",{"title":414,"path":415,"stem":416,"icon":106},"pgx","\u002Fhu\u002Fdbx\u002Fpg","hu\u002F8.dbx\u002F2.pg",{"title":418,"path":419,"stem":420,"icon":47},"bun","\u002Fhu\u002Fdbx\u002Fbunx","hu\u002F8.dbx\u002F3.bunx",{"title":422,"path":423,"stem":424,"icon":425},"Tranzakciók","\u002Fhu\u002Fdbx\u002Ftransactions","hu\u002F8.dbx\u002F4.transactions","i-lucide-git-merge",{"title":427,"path":428,"stem":429,"icon":318},"Seederek","\u002Fhu\u002Fdbx\u002Fseed","hu\u002F8.dbx\u002F5.seed",{"title":431,"icon":55,"path":432,"stem":433,"children":434,"page":44},"paginate","\u002Fhu\u002Fpaginate","hu\u002F9.paginate",[435,438],{"title":52,"path":436,"stem":437,"icon":55},"\u002Fhu\u002Fpaginate\u002Foverview","hu\u002F9.paginate\u002F1.overview",{"title":439,"path":440,"stem":441,"icon":19},"Cursor-lapozás","\u002Fhu\u002Fpaginate\u002Fcursor","hu\u002F9.paginate\u002F2.cursor",{"id":443,"title":339,"body":444,"description":1113,"extension":1114,"links":1115,"meta":1116,"navigation":1117,"path":340,"seo":1118,"stem":341,"__hash__":1119},"docs_hu\u002Fhu\u002F4.cli\u002F6.add-handler.md",{"type":445,"value":446,"toc":1109},"minimark",[447,458,547,667,672,758,777,781,835,856,862,1087,1096,1105],[448,449,450,451,454,455,457],"p",{},"Az ",[452,453,339],"code",{}," egyetlen endpointot ad hozzá egy meglévő surface-hez: egy TypeSpec műveletet plusz egy handler-metódus vázat, beillesztve a surface kategória-fájljaiba és anchoraiba. Ezt használd minden alkalommal, amikor egy már ",[452,456,330],{},"-szal scaffoldolt surface-hez adsz műveletet.",[459,460,465],"pre",{"className":461,"code":462,"language":463,"meta":464,"style":464},"language-sh shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","go tool gpsystem add handler \u003Cmodul> \u003Csurface> \u003Cművelet> \\\n  --method GET --path \"\u002Fitems\u002F{id}\"\n","sh","",[452,466,467,526],{"__ignoreMap":464},[468,469,472,476,480,483,486,489,493,496,500,503,505,508,511,513,515,518,521,523],"span",{"class":470,"line":471},"line",1,[468,473,475],{"class":474},"sBMFI","go",[468,477,479],{"class":478},"sfazB"," tool",[468,481,482],{"class":478}," gpsystem",[468,484,485],{"class":478}," add",[468,487,488],{"class":478}," handler",[468,490,492],{"class":491},"sMK4o"," \u003C",[468,494,495],{"class":478},"modu",[468,497,499],{"class":498},"sTEyZ","l",[468,501,502],{"class":491},">",[468,504,492],{"class":491},[468,506,507],{"class":478},"surfac",[468,509,510],{"class":498},"e",[468,512,502],{"class":491},[468,514,492],{"class":491},[468,516,517],{"class":478},"művele",[468,519,520],{"class":498},"t",[468,522,502],{"class":491},[468,524,525],{"class":498}," \\\n",[468,527,529,532,535,538,541,544],{"class":470,"line":528},2,[468,530,531],{"class":478},"  --method",[468,533,534],{"class":478}," GET",[468,536,537],{"class":478}," --path",[468,539,540],{"class":491}," \"",[468,542,543],{"class":478},"\u002Fitems\u002F{id}",[468,545,546],{"class":491},"\"\n",[548,549,550,566],"table",{},[551,552,553],"thead",{},[554,555,556,560,563],"tr",{},[557,558,559],"th",{},"Flag",[557,561,562],{},"Default",[557,564,565],{},"Jelentés",[567,568,569,585,604,625,647],"tbody",{},[554,570,571,577,582],{},[572,573,574],"td",{},[452,575,576],{},"--method",[572,578,579],{},[452,580,581],{},"GET",[572,583,584],{},"GET, POST, PUT, PATCH vagy DELETE",[554,586,587,592,597],{},[572,588,589],{},[452,590,591],{},"--path",[572,593,594],{},[452,595,596],{},"\u002F",[572,598,599,600,603],{},"útvonal a surface base-éhez képest; a ",[452,601,602],{},"{név}"," szegmensek path-paraméterek lesznek",[554,605,606,611,614],{},[572,607,608],{},[452,609,610],{},"--permission",[572,612,613],{},"nincs",[572,615,616,617,620,621,624],{},"RBAC permission a művelethez; ",[452,618,619],{},"@permission(\"...\")"," decorator kerül a ",[452,622,623],{},".tsp","-be",[554,626,627,632,634],{},[572,628,629],{},[452,630,631],{},"--policy",[572,633,613],{},[572,635,636,637,620,640,642,643,646],{},"user-szintű policy neve; ",[452,638,639],{},"@policy(\"...\")",[452,641,623],{},"-be; a nevet regisztrálni kell a surface ",[452,644,645],{},"policy\u002Fpolicy.go","-jában",[554,648,649,654,660],{},[572,650,651],{},[452,652,653],{},"--group",[572,655,656,657,659],{},"nincs (a ",[452,658,591],{}," első literál szegmense)",[572,661,662,663,666],{},"a handler-fájl kategóriája, pl. ",[452,664,665],{},"notifications","; üres csoport a modul alap handler-fájljába kerül",[668,669,671],"h2",{"id":670},"mit-csinál","Mit csinál",[673,674,675,691,708,728,744,751],"ol",{},[676,677,678,679,682,683,686,687,690],"li",{},"TypeSpec művelet-vázat szúr be a ",[452,680,681],{},"gpsystem:operations"," anchorhoz a ",[452,684,685],{},"\u003Csurface>.tsp","-ben: a path-paraméterek deklarálva, POST\u002FPUT\u002FPATCH esetén ",[452,688,689],{},"@body"," paraméterrel, a visszatérési típus stubbal.",[676,692,693,695,696,698,699,702,703,707],{},[452,694,610],{}," \u002F ",[452,697,631],{}," esetén a megfelelő decoratorok is felkerülnek, és a válasz-unió kibővül ",[452,700,701],{},"Unauthorized | Forbidden","-nel; az érvényesítést a generált middleware végzi (lásd ",[704,705,706],"a",{"href":99},"auth, rbac & policy",").",[676,709,710,711,715,716,719,720,723,724,727],{},"Kiválasztja a ",[712,713,714],"strong",{},"kategória-fájlt",", amibe a handler-metódus kerül, az ",[452,717,718],{},"internal\u002Fmodules\u002F\u003Cmodul>\u002Fsurfaces\u002F\u003Csurface>\u002Fhttp\u002F"," alatt: ",[452,721,722],{},"\u003Cmodul>_handler.go"," az alap csoportnak, ",[452,725,726],{},"\u003Cmodul>_\u003Ccsoport>_handler.go"," egyébként.",[676,729,730,731,733,734,737,738,740,741,743],{},"A csoportot alapértelmezetten a ",[452,732,591],{}," első nem-paraméter szegmenséből származtatja (",[452,735,736],{},"\u002Fnotifications\u002F{id}\u002Fread"," -> ",[452,739,665],{},"); ",[452,742,653],{},"-pal felülírható.",[676,745,746,747,750],{},"Az adott kategória első művelete létrehozza a fájlt, a többi a fájl végi ",[452,748,749],{},"\u002F\u002F gpsystem:handlers"," anchornál új metódusként kerül be.",[676,752,753,754,757],{},"A stub törzsét úgy generálja, hogy ",[712,755,756],{},"501 Not Implemented"," problem dokumentumot adjon vissza, így az endpoint azonnal látható és tesztelhető.",[448,759,760,761,764,765,768,769,772,773,776],{},"A ",[452,762,763],{},"handler.go"," mindvégig a ",[452,766,767],{},"Handler"," struct, a ",[452,770,771],{},"New"," és a ",[452,774,775],{},"\u002F\u002Fgo:generate"," helye marad: saját handler-metódust nem tartalmaz.",[668,778,780],{"id":779},"a-munkafolyamat","A munkafolyamat",[459,782,784],{"className":461,"code":783,"language":463,"meta":464,"style":464},"go tool gpsystem add handler news api getNews --method GET --path \"\u002Fitems\u002F{id}\"\nmise run generate     # létrejön a gen.GetNewsRequest \u002F gen.GetNewsResponse\n",[452,785,786,820],{"__ignoreMap":464},[468,787,788,790,792,794,796,798,801,804,807,810,812,814,816,818],{"class":470,"line":471},[468,789,475],{"class":474},[468,791,479],{"class":478},[468,793,482],{"class":478},[468,795,485],{"class":478},[468,797,488],{"class":478},[468,799,800],{"class":478}," news",[468,802,803],{"class":478}," api",[468,805,806],{"class":478}," getNews",[468,808,809],{"class":478}," --method",[468,811,534],{"class":478},[468,813,537],{"class":478},[468,815,540],{"class":491},[468,817,543],{"class":478},[468,819,546],{"class":491},[468,821,822,825,828,831],{"class":470,"line":528},[468,823,824],{"class":474},"mise",[468,826,827],{"class":478}," run",[468,829,830],{"class":478}," generate",[468,832,834],{"class":833},"sHwdD","     # létrejön a gen.GetNewsRequest \u002F gen.GetNewsResponse\n",[448,836,760,837,840,841,843,844,847,848,851,852,855],{},[452,838,839],{},"getNews"," az ",[452,842,543],{}," útvonal miatt az ",[452,845,846],{},"items"," csoportba kerül:\n",[452,849,850],{},"internal\u002Fmodules\u002Fnews\u002Fsurfaces\u002Fapi\u002Fhttp\u002Fnews_items_handler.go",". Egy ugyanazon\ncsoportba tartozó további művelet (pl. ",[452,853,854],{},"deleteNews --path \"\u002Fitems\u002F{id}\"",")\nugyanabba a fájlba kerül, a meglévő metódus mellé.",[448,857,858,859,861],{},"Aztán cseréld le a stub törzsét: hívd a service-t, és a hibát a határon csomagold be, ugyanazzal a mintával, amit az ",[452,860,330],{}," váz generál:",[459,863,866],{"className":864,"code":865,"language":475,"meta":464,"style":464},"language-go shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","\u002F\u002F internal\u002Fmodules\u002Fnews\u002Fsurfaces\u002Fapi\u002Fhttp\u002Fnews_items_handler.go\nfunc (h *Handler) GetNews(ctx context.Context, req gen.GetNewsRequest) (gen.GetNewsResponse, error) {\n    item, err := h.svc.GetByID(ctx, req.Id)   \u002F\u002F add hozzá a service metódust\n    if err != nil {\n        return nil, errs.Wrap(err, \"api: get news\")  \u002F\u002F stacket hordoz; a httperr rendereli\n    }\n    return mapper.ToGetNewsResponse(item), nil \u002F\u002F add hozzá a mappert\n}\n",[452,867,868,873,949,994,1011,1048,1054,1081],{"__ignoreMap":464},[468,869,870],{"class":470,"line":471},[468,871,872],{"class":833},"\u002F\u002F internal\u002Fmodules\u002Fnews\u002Fsurfaces\u002Fapi\u002Fhttp\u002Fnews_items_handler.go\n",[468,874,875,878,881,885,888,890,893,897,900,903,906,909,912,915,918,921,923,926,928,930,933,935,938,940,944,946],{"class":470,"line":528},[468,876,877],{"class":491},"func",[468,879,880],{"class":491}," (",[468,882,884],{"class":883},"sHdIc","h ",[468,886,887],{"class":491},"*",[468,889,767],{"class":474},[468,891,892],{"class":491},")",[468,894,896],{"class":895},"s2Zo4"," GetNews",[468,898,899],{"class":491},"(",[468,901,902],{"class":883},"ctx",[468,904,905],{"class":474}," context",[468,907,908],{"class":491},".",[468,910,911],{"class":474},"Context",[468,913,914],{"class":491},",",[468,916,917],{"class":883}," req",[468,919,920],{"class":474}," gen",[468,922,908],{"class":491},[468,924,925],{"class":474},"GetNewsRequest",[468,927,892],{"class":491},[468,929,880],{"class":491},[468,931,932],{"class":474},"gen",[468,934,908],{"class":491},[468,936,937],{"class":474},"GetNewsResponse",[468,939,914],{"class":491},[468,941,943],{"class":942},"spNyl"," error",[468,945,892],{"class":491},[468,947,948],{"class":491}," {\n",[468,950,952,955,957,960,963,966,968,971,973,976,978,980,982,984,986,989,991],{"class":470,"line":951},3,[468,953,954],{"class":498},"    item",[468,956,914],{"class":491},[468,958,959],{"class":498}," err ",[468,961,962],{"class":491},":=",[468,964,965],{"class":498}," h",[468,967,908],{"class":491},[468,969,970],{"class":498},"svc",[468,972,908],{"class":491},[468,974,975],{"class":895},"GetByID",[468,977,899],{"class":491},[468,979,902],{"class":498},[468,981,914],{"class":491},[468,983,917],{"class":498},[468,985,908],{"class":491},[468,987,988],{"class":498},"Id",[468,990,892],{"class":491},[468,992,993],{"class":833},"   \u002F\u002F add hozzá a service metódust\n",[468,995,997,1001,1003,1006,1009],{"class":470,"line":996},4,[468,998,1000],{"class":999},"s7zQu","    if",[468,1002,959],{"class":498},[468,1004,1005],{"class":491},"!=",[468,1007,1008],{"class":491}," nil",[468,1010,948],{"class":491},[468,1012,1014,1017,1020,1023,1025,1028,1030,1033,1035,1037,1040,1043,1045],{"class":470,"line":1013},5,[468,1015,1016],{"class":999},"        return",[468,1018,1019],{"class":491}," nil,",[468,1021,1022],{"class":498}," errs",[468,1024,908],{"class":491},[468,1026,1027],{"class":895},"Wrap",[468,1029,899],{"class":491},[468,1031,1032],{"class":498},"err",[468,1034,914],{"class":491},[468,1036,540],{"class":491},[468,1038,1039],{"class":478},"api: get news",[468,1041,1042],{"class":491},"\"",[468,1044,892],{"class":491},[468,1046,1047],{"class":833},"  \u002F\u002F stacket hordoz; a httperr rendereli\n",[468,1049,1051],{"class":470,"line":1050},6,[468,1052,1053],{"class":491},"    }\n",[468,1055,1057,1060,1063,1065,1068,1070,1073,1076,1078],{"class":470,"line":1056},7,[468,1058,1059],{"class":999},"    return",[468,1061,1062],{"class":498}," mapper",[468,1064,908],{"class":491},[468,1066,1067],{"class":895},"ToGetNewsResponse",[468,1069,899],{"class":491},[468,1071,1072],{"class":498},"item",[468,1074,1075],{"class":491},"),",[468,1077,1008],{"class":491},[468,1079,1080],{"class":833}," \u002F\u002F add hozzá a mappert\n",[468,1082,1084],{"class":470,"line":1083},8,[468,1085,1086],{"class":491},"}\n",[1088,1089,450,1090,772,1092,1095],"note",{},[452,1091,339],{},[452,1093,1094],{},"mise run generate"," között a projekt nem fordul: a handler olyan generált típusokra hivatkozik, amik még nem léteznek. Ez várt viselkedés; a generate lépés zárja be a rést.",[448,1097,1098,1099,1101,1102,1104],{},"Finomítsd a műveletet a ",[452,1100,623],{}," fájlban (modellek, hiba-uniók, lapozás), és futtasd újra a ",[452,1103,1094],{},"-et: a szigorú interfész fordítási időben tartja becsületben a handleredet.",[1106,1107,1108],"style",{},"html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sHwdD, html code.shiki .sHwdD{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic}html pre.shiki code .sHdIc, html code.shiki .sHdIc{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#EEFFFF;--shiki-default-font-style:italic;--shiki-dark:#BABED8;--shiki-dark-font-style:italic}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .s7zQu, html code.shiki .s7zQu{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic}",{"title":464,"searchDepth":528,"depth":528,"links":1110},[1111,1112],{"id":670,"depth":528,"text":671},{"id":779,"depth":528,"text":780},"Endpoint hozzáadása, TypeSpec művelet plusz handler-metódus váz.","md",null,{},{"icon":342},{"title":339,"description":1113},"R_3IcLwXcneEg2RMKBGmFgfEa-PvSQRt3Fo3TlFaz4k",[1121,1123],{"title":335,"path":336,"stem":337,"description":1122,"icon":244,"children":-1},"A közös core\u002F és a modul-szintű repository\u002F vázak hozzáadása egy olyan modulhoz, amelyben még nincsenek meg.",{"title":344,"path":345,"stem":346,"description":1124,"icon":347,"children":-1},"Új, időbélyeg-prefixes SQL-migráció létrehozása a projekt migrations\u002F mappájában.",1785445887191]