webart 0.3.0 copy "webart: ^0.3.0" to clipboard
webart: ^0.3.0 copied to clipboard

A relax, simple lightweight non-sync web framework for dart, based on shelf.Just write down your art.

example/example.dart

import 'dart:async' show Future;
import "package:webart/web.dart";


main(){
    var app = new Application(
        new Config(<String, dynamic>{
            'debug': false,
            "routes":<String,RequestHandler>{
                "hello/{name}": helloPage,
                "query{?q}": queryPage,
                "json{?key,lang}": getJsonPage,
                "class":new MyRequestHandler(),
                "class2": (new MyRequestHandler()).handler,
                "": homePage,
            }
        })
    );
    app.start("127.0.0.1", 8088);
}

Future homePage(Request request) async{
    request.res.ok("This is home");
}

Future helloPage(Request request) async{
    String name = request.context("urlparam")["name"];
    request.res.ok("Hello, $name");
}

Future queryPage(Request request) async{
    if (request.only(["get"])){
        String qstr = request.context("urlparam")["q"];
        request.res.ok("You are finding $qstr");
    }
}

Future getJsonPage(Request request) async{
    Map data = {
        "data1": {
            "zh": "你好",
            "en": "Hello",
        },
        "data2": {
            "zh": "再见",
            "en": "Godbye",
        }
    };
    Map<String, String> param = request.context("urlparam");
    await request.on("get",(_) async => request.res.ok({ "result": data[param["key"]][param["lang"]]}));
}

class MyRequestHandler extends RequestHandlerBase{
    String data = "OK";

    Future get(Request request) async{
        logger.info("GET FROM MYREQUESTHANDLER");
        request.res.ok(data);
    }

    Future post(Request request) async{
        data = await request.body;
        logger.info("POST TO MYREQUESTHANDLER");
        request.res.ok(data);
    }
}
0
likes
40
pub points
0%
popularity

Publisher

unverified uploader

A relax, simple lightweight non-sync web framework for dart, based on shelf.Just write down your art.

Repository (GitLab)
View/report issues

License

Apache-2.0 (LICENSE)

Dependencies

logging, shelf, uri_template_r

More

Packages that depend on webart