https://github.com/ire4ever1190/mike
The new and improved mikero web framework
https://github.com/ire4ever1190/mike
hacktoberfest nim web-framework
Last synced: about 1 month ago
JSON representation
The new and improved mikero web framework
- Host: GitHub
- URL: https://github.com/ire4ever1190/mike
- Owner: ire4ever1190
- Created: 2021-04-18T03:52:20.000Z (about 4 years ago)
- Default Branch: master
- Last Pushed: 2025-02-27T11:02:54.000Z (3 months ago)
- Last Synced: 2025-04-09T16:18:06.430Z (about 1 month ago)
- Topics: hacktoberfest, nim, web-framework
- Language: Nim
- Homepage:
- Size: 258 KB
- Stars: 38
- Watchers: 1
- Forks: 1
- Open Issues: 3
-
Metadata Files:
- Readme: readme.md
- Changelog: changelog.md
Awesome Lists containing this project
README

[Docs](https://ire4ever1190.github.io/mike/mike.html)
Simple framework that I use for all my personal projects. Mostly used for writing small API's and website
### Quick overview
Routing is done via path $\rightarrow$ verb syntax like so
```nim
"/home" -> get:
ctx.send "hello"
"/mike" -> post:
ctx.send("Teapot", Http427)
```You can specify before/after handlers by prefixing the verb
```nim
"/^path" -> beforeGet:
# Log all requests that happen
echo ctx.pathParams["path"]
```Has seen in the examples the `ctx` variable is used which is an implicit variable that allows you to
access everything about the request and specify what the response will be.### Context hooks
A nice feature of Mike that sets it apart from other Nim frameworks is support for context hooks
that allow you to add parameters to your routes that get information for you and handle if its missing```nim
"/some/route" -> post(x: Header[string], data: Json[SomeObject], page: Query[int]) ->
# Do stuff with parameters here
```You can make your own context hooks to do anything from load some json to getting a database connection from a pool