Microframework

A microframework is a term used to refer to minimalistic web application frameworks. It is contrasted with full-stack frameworks.

It lacks most of the functionality which is common to expect in a full-fledged web application framework, such as:

  • Accounts, authentication, authorization, roles
  • Database abstraction via an object-relational mapping
  • Input validation and input sanitation
  • Web template engine

Typically, a microframework facilitates receiving an HTTP request, routing the HTTP request to the appropriate controller, dispatching the controller, and returning an HTTP response. Microframeworks are often specifically designed for building the APIs for another service or application. [1] For example, Lumen microframework is designed for Microservices development and API development.

Pseudocode example

require "foo.php";

foo::get("/hello/{name}", function($name) {
    return "Hello $name!";
});

Microframeworks

  • Bottle for Python
  • Camping for Ruby
  • Express.js for Node.js
  • Falcon for Python
  • Flask for Python
  • Scalatra for Scala
  • Lumen for PHP
  • Slim for PHP
  • Silex for PHP
  • Sinatra for Ruby
  • Spark for Java
  • Jooby for Java
  • Javalin for Java
  • Jodd for Java
  • Helidon for Java
  • Pippo for Java
  • Rapidoid for Java
  • Armeria for Java
  • Akka HTTP for Java
  • Ratpack for Java
  • Ktor for Kotlin
  • Toolatra for Tcl
gollark: Is this some weird implementation thing or is Lua actually defined/specified to work like this?!
gollark: Apparently `function(...) return (fn(...)) end` behaves differently to `function(...) return fn(...) end`. WHAT IS HAPPENING.
gollark: It doesn't look like it, though, as the code really only does much if an error occurs.
gollark: So I remembered recently that potatOS embeds some sort of stack trace thing based on one in MBS, and it might actually somehow be *that* doing this.
gollark: I'm not sure about infinitely, but IIRC there's no per-computer limit.

References

This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.