Kezdő lépések

Az első modulod

Modul generálása, a codegen lánc futtatása és a service bootolása.

Ez az oldal a shop mintaalkalmazás első lépését játssza el: egy üres projektből eljutunk egy bootoló, kérést kiszolgáló modulig.

Modul generálása

go tool gpsystem new module shop

Ez létrehozza:

  • a belépési pontot (cmd/shop/main.go): egy server.Run-hívást, ami egy RegisterFunc-hoz kötve;
  • a modul-bekötést (internal/modules/shop/register.go): egy Dependencies struct + egy exportált RegisterApi(router, deps) függvény;
  • egy api surface-t a surfaces/api/ alatt: a generált szigorú interfészre kötött handler, egy minimális service/ varrat, policy/ registry-stub, plusz egy üresen tartott http/mapper/ mappa a saját kódodnak;
  • a modul-szintű közös vázakat: core/ (a surface-ek által megosztott szabályok és sentinel-hibák helye) és repository/ (a modul egyetlen perzisztencia-rétege);
  • a TypeSpec kontraktust (spec/typespec/modules/shop/) és a codegen konfigot (api/oapi-codegen/shop-api.yaml);
  • majd anchor-beszúrásokkal mindent regisztrál (main.tsp, cmd/shop/main.go).

A codegen lánc futtatása

mise run generate

Ez TypeSpecből OpenAPI-t fordít (api/openapi/), lefuttatja az oapi-codegent a projekt template-készletével (upstream chi-server + a kit strict-felülírásai), az eredményt az internal/modules/shop/surfaces/api/http/gen/ alá teszi, tidy-zik és buildel. A minta-handler a generált szigorú interfészt implementálja, így a projekt azonnal fordul: a spec és a kód széttartása fordítási hiba.

Bootolás

go run ./cmd/shop

Próbáld ki

curl localhost:3000/api/v1/shop/

A váz-handler üres listát ad vissza; cseréld le a törzsét, amint felépítetted a modul core/ és repository/ rétegét, és a surface service/ varrata onnan szolgál ki.

A hibák alapból RFC 9457 problem dokumentumok (Hibaválaszok):

curl localhost:3000/api/v1/nope

Nyomj Ctrl+C-t: a szerver kivárja az in-flight kéréseket, lezárja a poolt, flusholja a telemetriát és tisztán kilép. Ez az app életciklus munkája, amin a server.Run ül.

Fejlesztés közben érdemes bekapcsolni a Monolog-stílusú konzol-logot (LOG_FORMAT=monolog): a hibaláncokat a PHP-ból ismerős, olvasható formában látod.

Merre tovább

Innen a shop mintaalkalmazás útját követheted:

Copyright © 2026