跳到內容

開發流程

01 scaffold-smoke — 開發者流程全程

Section titled “01 scaffold-smoke — 開發者流程全程”

證明 create → gen → build → test 一路可跑,加第二個 API 後仍成立。這是 scaffold 的 transport smoke test;create 刻意保留 placeholder secret,所以伺服器啟動前必須在執行環境注入真正的 secret。

Terminal window
gortexa create myapp --module github.com/me/myapp
cd myapp
make gen # buf lint → breaking → generate
go build ./... && go test ./...
gortexa gen shop/v1 Product # 加第二個 API
make gen && go build ./... && go test ./...

關鍵斷言:proto/myapp/shop/v1/product.proto(package myapp.shop.v1,gen 從 .gortexa/project.json 讀專案 namespace)與 internal/logic/product.go 都產出、cmd/server/main.go 已 wire product,且 etc/config.yaml 仍留著 dev-only-insecure-secret-change-me-please —— 伺服器會拒絕以它啟動,直到設好 GORTEXA_AUTH__JWT_SECRET。這只驗證本機可啟動;在 git 或 Docker 前仍必須改成外部 secret injection,並把 in-memory logic 換成真實資料層。

02 multi-protocol-e2e — 同一實體跨三協定

Section titled “02 multi-protocol-e2e — 同一實體跨三協定”

在單一 h2c port(:18080)上,gRPC 建的實體用 HTTP 抓得到、MCP 建的也在 list 裡——三協定共享同一份狀態。$TOK 是開發用 token,$SCHEMA 是 buf build 出的 descriptor。

gRPC 建立:

Terminal window
buf curl --protocol grpc --http2-prior-knowledge --schema $SCHEMA \
-H "authorization: Bearer $TOK" \
-d '{"resource":{"name":"grpc-entity","owner":"owner-e2e"}}' \
http://localhost:18080/myapp.resource.v1.ResourceService/CreateResource

HTTP gateway 抓同一個 id,再用 MCP tools/call 建第三個:

Terminal window
curl -H "authorization: Bearer $TOK" http://localhost:18080/v1/resources/$RID # 200,同一實體
curl -XPOST http://localhost:18080/mcp -H 'Content-Type: application/json' \
-H "authorization: Bearer $TOK" \
-d '{"jsonrpc":"2.0","id":3,"method":"tools/call",
"params":{"name":"create_resource",
"arguments":{"resource":{"name":"mcp-entity","owner":"owner-e2e"}}}}'

最後 list owner-e2e,會同時看到 gRPC、HTTP、MCP 三個來源建立的實體——證明三個表面背後是同一個 store。