✨ feat: Serve Scalar API reference from the API server#186
✨ feat: Serve Scalar API reference from the API server#186yeazelm merged 1 commit intopapercomputeco:mainfrom
Conversation
Greptile SummaryThis PR adds a drop-in Scalar API reference viewer served at
Confidence Score: 4/5Safe to merge; the only concern is a non-pinned CDN version that could cause a silent future regression. The change is small, focused, and follows the existing Fiber routing patterns. The sole non-blocking issue is the unversioned CDN script URL — pinning the version (and optionally adding an SRI hash) would make the setup more robust, but it does not block correctness today. api/swagger_middleware.go — CDN script tag should pin a specific @scalar/api-reference version. Important Files Changed
Sequence DiagramsequenceDiagram
participant Browser
participant TapesAPI as Tapes API Server
participant jsDelivr as cdn.jsdelivr.net
Browser->>TapesAPI: GET /swagger
TapesAPI-->>Browser: 200 HTML (scalarHTML shell)
Browser->>jsDelivr: GET /npm/@scalar/api-reference (CDN, latest)
jsDelivr-->>Browser: Scalar viewer JS
Browser->>TapesAPI: GET /swagger/doc.json
TapesAPI->>TapesAPI: swag.ReadDoc()
TapesAPI-->>Browser: 200 OpenAPI JSON spec
Browser->>Browser: Render Scalar API reference UI
Reviews (1): Last reviewed commit: "✨ feat: Serve Scalar API reference from ..." | Re-trigger Greptile |
PR papercomputeco#183 wired up swaggo annotations and generated the OpenAPI spec. This adds a drop-in runtime viewer: /swagger renders Scalar via CDN, so no viewer assets are embedded and the binary only grows by ~1 MB. Spec is served at /swagger/doc.json via swag.ReadDoc. Signed-off-by: Matt Yeazel <matt@papercompute.com>
|
Documentation update created: https://github.com/papercomputeco/tapes.dev/pull/99 This PR adds documentation for the new |
Summary
PR #183 wired up swaggo annotations and generated the OpenAPI spec. This adds a drop-in runtime viewer: /swagger renders Scalar via CDN, so no viewer assets are embedded and the binary only grows by ~1 MB. Spec is served at /swagger/doc.json via swag.ReadDoc.
Testing