feat: convert 52 API endpoints from POST to GET for edge caching#468
Merged
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
Convert all cacheable sebuf RPC endpoints to HTTP GET with query/path parameters, enabling CDN edge caching to reduce costs. Flatten nested request types (TimeRange, PaginationRequest, BoundingBox) into scalar query params. Add path params for resource lookups (GetFredSeries, GetHumanitarianSummary, GetCountryStockIndex, GetCountryIntelBrief, GetAircraftDetails). Rewrite router with hybrid static/dynamic matching for path param support. Kept as POST: SummarizeArticle, ClassifyEvent, RecordBaselineSnapshot, GetAircraftDetailsBatch, RegisterInterest. Generated with sebuf v0.9.0 (protoc-gen-ts-client, protoc-gen-ts-server). Co-Authored-By: Claude Opus 4.6 <[email protected]>
SebastienMelki
force-pushed
the
caching_endpoints_get_verb
branch
from
February 27, 2026 15:21
1d06292 to
5dd99c2
Compare
The rateLimited field was hand-patched into generated files on main but never declared in the proto definitions. Regenerating wiped it out, breaking the build. Now properly defined in both ListEtfFlowsResponse and ListMarketQuotesResponse protos. Co-Authored-By: Claude Opus 4.6 <[email protected]>
Co-Authored-By: Claude Opus 4.6 <[email protected]>
This was referenced Feb 27, 2026
koala73
added a commit
that referenced
this pull request
Feb 27, 2026
Stale cached client bundles still send POST to endpoints converted to GET in PR #468, causing 404s. The gateway now parses the POST JSON body into query params and retries the match as GET.
6 tasks
koala73
pushed a commit
that referenced
this pull request
Mar 1, 2026
* feat: convert 52 API endpoints from POST to GET for edge caching Convert all cacheable sebuf RPC endpoints to HTTP GET with query/path parameters, enabling CDN edge caching to reduce costs. Flatten nested request types (TimeRange, PaginationRequest, BoundingBox) into scalar query params. Add path params for resource lookups (GetFredSeries, GetHumanitarianSummary, GetCountryStockIndex, GetCountryIntelBrief, GetAircraftDetails). Rewrite router with hybrid static/dynamic matching for path param support. Kept as POST: SummarizeArticle, ClassifyEvent, RecordBaselineSnapshot, GetAircraftDetailsBatch, RegisterInterest. Generated with sebuf v0.9.0 (protoc-gen-ts-client, protoc-gen-ts-server). Co-Authored-By: Claude Opus 4.6 <[email protected]> * fix: add rate_limited field to market response protos The rateLimited field was hand-patched into generated files on main but never declared in the proto definitions. Regenerating wiped it out, breaking the build. Now properly defined in both ListEtfFlowsResponse and ListMarketQuotesResponse protos. Co-Authored-By: Claude Opus 4.6 <[email protected]> * chore: remove accidentally committed .planning files Co-Authored-By: Claude Opus 4.6 <[email protected]> --------- Co-authored-by: Claude Opus 4.6 <[email protected]>
Summary
GetFredSeries/{series_id},GetHumanitarianSummary/{country_code},GetCountryStockIndex/{country_code},GetCountryIntelBrief/{country_code},GetAircraftDetails/{icao24}Kept as POST
SummarizeArticle— AI generationClassifyEvent— AI classificationRecordBaselineSnapshot— write operationGetAircraftDetailsBatch— repeated string payload (up to 20 IDs)RegisterInterest— non-sebuf, already POSTTest plan
test:sidecar— 53/53 passtest:data— 168/173 pass (5 failures are pre-existing: 4 missing fallbackVideoIds, 1 theater posture race condition)tsc --noEmit— only 3 pre-existingrateLimitederrors remain, zero generated code errors🤖 Generated with Claude Code