fix parsing
This commit is contained in:
38
goal-examples/webapp/main.bl
Normal file
38
goal-examples/webapp/main.bl
Normal file
@@ -0,0 +1,38 @@
|
||||
import net.http as http;
|
||||
import logging as logging;
|
||||
import json as json;
|
||||
|
||||
|
||||
type ExampleResponse struct {
|
||||
pub id: i32;
|
||||
pub name: str;
|
||||
pub email: str;
|
||||
}
|
||||
|
||||
type Router struct {
|
||||
logger: logging::Logger;
|
||||
|
||||
pub fn new(logger: logging::Logger): Router {
|
||||
return Self{logger: logger};
|
||||
}
|
||||
|
||||
pub fn get_user_data(self: Self, req: http.Request): IO[Result[http::Response, http::Error]] {
|
||||
let response_data = ExampleResponse{
|
||||
id: 4,
|
||||
name: "Andrew",
|
||||
email: "andrew@boringlang.com",
|
||||
};
|
||||
self.logger.info("getting user data")?;
|
||||
return ok(http::Response::ok(json::dumps(response_data)?));
|
||||
}
|
||||
}
|
||||
|
||||
pub fn main(args: List[String], os: OS): IO[i32] {
|
||||
let logger = logging::ConsoleLogger::new(os.console.stdout());
|
||||
let router = Router::new(logger);
|
||||
let app = http::Router::new("").add_route("/myroute", router.get_user_data);
|
||||
let http_server = http::Server::new(os.net(), "localhost", 8080, app);
|
||||
let err = http_server.serve_forever()?;
|
||||
logger.info("error serving: ", err)?;
|
||||
return 1;
|
||||
}
|
||||
Reference in New Issue
Block a user