框架感知路由

URL 模式 → handler——跨 17 個 framework 的 conventions 都進圖譜
route 節點 · references 邊 · 查 view/controller 的 caller 會帶出 URL 模式

在做什麼

CodeGraph 偵測 web framework 的路由檔案,產出 route 節點,用 references 邊連結到對應的 handler class / 函式。你查某個 view / controller 的 callers 時,會順帶看到綁定它的 URL 模式——「這支 API 誰在呼叫?」變成「這支 API 對應哪條 URL、被誰呼叫」一次回答。

17 個框架一覽

Framework認得的寫法
Djangopath()re_path()url()include() in urls.py(CBV .as_view()、dotted paths)
Flask@app.route('/path', methods=[...])、blueprint routes
FastAPI@app.get(...)@router.post(...)、所有標準 methods
Expressapp.get(...)router.post(...) 帶 middleware chain
NestJS@Controller + @Get/@Post/…、GraphQL @Resolver + @Query/@Mutation@MessagePattern/@EventPattern@SubscribeMessage
LaravelRoute::get()Route::resource()Controller@action、tuple syntax
Drupal*.routing.yml routes(_controller_form、entity handlers);hook_*.module/.theme/.install/.inc
Railsget '/x', to: 'users#index'、hash-rocket => syntax
Spring@GetMapping@PostMapping@RequestMapping on methods
PlayGET/POST/… verb routes in conf/routesController.method actions(Scala + Java)
Gin / chi / gorilla / muxr.GET(...)router.HandleFunc(...)
Axum / actix / Rocket.route("/x", get(handler))
ASP.NET[HttpGet("/x")] attributes on action methods
Vaporapp.get("x", use: handler)
React Router / SvelteKitRoute component nodes
Vue Router / Nuxtpages/ file-based routes、server/api/ endpoints、route middleware
Astrosrc/pages/ file-based routes(.astro pages + .ts endpoints、[param]/[...rest] syntax)

實測驗證

官方在每個框架的 canonical app 上驗證過路由解析覆蓋率:Express 100%、FastAPI 98%、Flask 100%、NestJS 96.8%、Gin 96.5%、Axum 100%、Rocket 93.8%、Vapor 100%、Laravel 92%、Rails 89.6%、React Router 100%;convention/reflection 較重的則誠實停在靜態分析天花板:ASP.NET 83.9%、Spring 83.3%、Drupal 78.9%、Play 76.3%、Django 74.1%。SvelteKit / Vue / Nuxt / Astro 用 file-based routing,頁面/端點覆蓋率就是該語言本身的分數。

本站實測

codegraph 自己的 repo 就有 16 個 route 節點(codegraph status 的 Nodes by Kind 顯示 route 16)——它在自己身上也偵測到了框架路由。

看完這頁你應該能說出:route 節點如何產生(references 邊)、兩個你熟悉框架的認得寫法、以及為什麼 convention-heavy 框架(Spring/ASP.NET/Django)的覆蓋率較低是「誠實的靜態分析天花板」。