← Files NightVisionARCHIVED FILE
skills/api-discovery/references/framework-support.md
3.93 KB · Sep 30, 2026 · 23:13 UTC
# Framework Support Matrix Detailed component coverage per language and framework for NightVision API Discovery. ## Python (`--lang python`) ### Django - `django.urls`: `path`, `re_path`, `include` - `django.views.generic.View` — class-based views - `django.http.QueryDict`, `HttpRequest` ### Django REST Framework - Generic views: `CreateAPIView`, `ListAPIView`, `RetrieveAPIView`, `DestroyAPIView`, `ListCreateAPIView`, `RetrieveUpdateAPIView`, `RetrieveUpdateDestroyAPIView` - `APIView`, `GenericAPIView` - Mixins: `CreateModelMixin`, `DestroyModelMixin`, `ListModelMixin`, `RetrieveModelMixin`, `UpdateModelMixin` - `ModelViewSet`, `ReadOnlyModelViewSet` - `Serializer`, `Field` classes - `ExtendedDefaultRouter`, `ExtendedSimpleRouter` ### Flask - `flask.Flask`, `flask.Blueprint` - `flask.request` (args, cookies, files, form, headers) - `flask.views.View`, `MethodView` ### Flask-RESTful - `flask_restful.Api`, `flask_restful.Resource` ### FastAPI - `fastapi.FastAPI`, `fastapi.APIRouter` - `pydantic.BaseModel` for request/response models - `fastapi.Response`, `HTTPException` - `fastapi.Header`, `fastapi.Cookie` - `fastapi.status` ## Java (`--lang java`) ### Spring Boot - `@RestController`, `@Controller` - `@GetMapping`, `@PostMapping`, `@PutMapping`, `@DeleteMapping`, `@PatchMapping` - `@RequestMapping`, `@PathVariable`, `@ResponseBody` - `@RepositoryRestResource` — auto-generated CRUD routes - `@RestResource` ### JAX-RS / Jersey - `@GET`, `@POST`, `@PUT`, `@DELETE`, `@HEAD`, `@OPTIONS` - `@Path`, `@PathParam`, `@QueryParam`, `@FormParam` - `@ApplicationPath` - `MediaType`, `@Context` ### Micronaut - `@Controller` - `@Get`, `@Post`, `@Put`, `@Delete`, `@Patch`, `@Head`, `@Options`, `@Trace` - `@PathVariable`, `@QueryValue`, `@Header`, `@CookieValue`, `@Body`, `@Part` - `@Consumes`, `@Produces` - `@Secured`, `SecurityRule` ### Java EE / Jakarta EE - `HttpServletRequest`, `HttpServletResponse` - `@DenyAll`, `@PermitAll`, `@RolesAllowed` ## JavaScript (`--lang js`) ### Express - `express.Router()`, `app.use()`, `app.route()` - HTTP verbs: `get`, `post`, `put`, `patch`, `delete`, `all` - `req.params`, `req.body`, `req.query` - `app.listen()` ### NestJS - `@nestjs/common`: `Controller`, `Module`, `Injectable` - `@nestjs/core`: `DynamicModule`, `NestFactory.create`, `RouterModule.register` - `setGlobalPrefix`, `listen` ### Fastify - `@fastify.autoload` - HTTP verbs: `get`, `head`, `post`, `put`, `delete`, `options`, `patch` - `fastify.route`, `fastify.register` - `fastify.listen`, `fastify.ready` ## C# (`--lang dotnet`) ### ASP.NET Core - **Controllers**: `ApiController`, `Controller`, `ControllerBase` - **HTTP attributes**: `HttpGet`, `HttpPost`, `HttpPut`, `HttpDelete`, `HttpPatch`, `HttpHead`, `HttpOptions` - **Parameter binding**: `FromBody`, `FromHeader`, `FromQuery`, `FromRoute` - **Minimal APIs**: `IEndpointRouteBuilder`, `MapControllers()`, `MapGroup()` - **Auth**: `AddJwtBearer`, `AddCookie`, `AddOAuth`, `AddOpenIdConnect`, `Authorize`, `AllowAnonymous` - **Config**: `WebApplication`, `WebApplicationBuilder`, `UseEndpoints()`, `UsePathBase()` ## Go (`--lang go`) — Experimental ### Gin - `gin.New()`, `gin.Default()` - Route groups: `GET`, `POST`, `PUT`, `DELETE`, `PATCH`, `HEAD`, `OPTIONS`, `ANY`, `Handle`, `Group` - Binding: `BindJSON`, `ShouldBind`, `ShouldBindJSON` - Parameters: `Query`, `Param`, `PostForm`, `Cookie` ### httprouter - `httprouter.New()` - `GET`, `POST`, `PUT`, `DELETE`, `PATCH`, `OPTIONS` ### net/http (standard library) - `http.Request`: `FormValue`, `PostFormValue`, `Cookie` - `http.ResponseWriter` - `http.Server`, `ListenAndServe` ## Ruby (`--lang ruby`) ### Rails - `ActionController::Base` - Routing: `resources`, `resource`, `namespace`, `member`, `collection` - HTTP verbs: `get`, `post`, `put`, `patch`, `delete` - Strong parameters via `ActionController::Parameters` ### Grape - `Grape::DSL::Routing` - `resource`, `namespace`, `get`, `post`, `put`, `patch`, `delete` - `mount`, `version`, `params`, `prefix`
SHA-256: 2cb83507fc8e9dea9249c2910abb5c5e3b681f12f925c68380ab42e3fcfea640